Компиляция для различных платформ
Из-за особенностей Компилируемых программ, их способ доставки Пользователям отличается от Интерпретируемых. Чтобы конечному Пользователю не приходилось постоянно компилировать исходный код, для получения бинарного файла в хостингах Git репозиториев GitLab и GitHub предусмотренна система релизов.
В каждый релиз можно добавить бинарные файлы с определённым названием, такие пары обычно называют assets. GitLab и GitHub позволяют через свои API получать соответствие названия assets и ссылки на бинарный файл.
INFO
На основе данной механики Pepeunit имеет возможность обновлять Компилируемые репозитории в автоматическом режимие. Единственное условие: названия assets должны быть сквозными между различными релизами.
WARNING
Если Разработчик Компилируемого Unit хочет добавить поддержку автоматического обновления в Pepeunit, ему придётся скомпилировать и загрузить в GitLab или GitHub версии своей программы для каждой платформы. При этом название для одной и той же платформы в разных релизах должно быть одинаковым.
Пример хорошего наименования assets между релизами
Release 1.0.0-linux-amd64macosRelease 1.0.1-linux-amd64esp8266-genericmacosRelease 1.1.0-linux-amd64esp8266-genericmacosRelease 1.2.0-linux-amd64esp8266-genericRelease 1.3.0-linux-amd64esp8266-genericmacos
Рассмотрим логику Pepeunit в этом сценарии для каждой из платформ linux-amd64, esp8266-generic и macos:
- для
linux-amd64- Unit будет штатно обновлять все версии - для
esp8266-generic- Unit можно будет создать начиная с версии1.0.1, далее обновления будут идти штатно - для
macos- Unit будет штатно обновляться до версии1.1.0, далее автоматическое обновление будет прервано, но возобновится начиная с версии1.3.0
Пример плохого наименования assets между релизами
Release 1.0.0-linux-amd64-1.0.0macos-oneRelease 1.0.1-linux-amd64-1.0.1esp8266-and-esp8266-genericmacos-twoRelease 1.1.0-linux-amd64-1.1.0esp8266-genericmacos-threeRelease 1.2.0-linux-amd64-1.2.0esp8266-and-esp8266-generic
В данном случае Pepeunit не сможет автоматически обновлять Unit. Корректно будет работать только ручное обновление, платформу для каждой версии придётся скачивать вручную.