Компиляция для различных платформ
Из-за особенностей Компилируемых программ их способ доставки Пользователям отличается от Интерпритируемых. Чтобы конечному Пользователю не приходилось постоянно компилировать исходный код, для получения бинарного файла, в хостингах Git репозиториев Gitlab и Github предусмотренна система релизов.
В каждый релиз можно добавить бинарные файлы, с определённым названием - такие пары обычно называют assets
. Gitlab и Github позволяют через свои API получать соответствие названия assets
и ссылки на бинарный файл.
INFO
На основе данной механики Pepeunit имеет возможность обновлять Компилируемые репозитории в автоматическом режимие. Единственное условие, названия assets
должны быть сквозными между различными релизами.
WARNING
Соответственно если разработчик Компилируемого Unit хочет добавить поддержку автоматического обновления в Pepeunit, ему придётся скомпилировать и загрузить в Gitlab или Github версии своей программы для каждой платформы. При этом название для одной и той же платформы в разных релизах должно быть одинаковым.
Пример хорошего наименования assets между релизами
Release 1.0.0
-linux-amd64
macos
Release 1.0.1
-linux-amd64
win64
macos
Release 1.1.0
-linux-amd64
win64
macos
Release 1.2.0
-linux-amd64
win64
Рассмотрим логику Pepeunit в этом сценарии для каждой из платформ linux-amd64
, win64
и macos
:
- для
linux-amd64
- Unit будет штатно обновлять все версии - для
win64
- Unit можно будет создать начиная с версии1.0.1
, далее обновления будут идти штатно - для
macos
- Unit будет шататно обновляться до версии1.1.0
, далее автоматическое обновление будет прервано
Пример плохого наименования assets между релизами
Release 1.0.0
-linux-amd64-1.0.0
macos-one
Release 1.0.1
-linux-amd64-1.0.1
win64-and-x86
macos-two
Release 1.1.0
-linux-amd64-1.1.0
win64
macos-three
Release 1.2.0
-linux-amd64-1.2.0
win64-and-x68
В данном случае Pepeunit не сможет автоматически обновлять Unit. Корректно будет работать только ручное обновление, платформу для каждой версии придётся скачивать вручную.