Компиляция для различных платформ
Из-за особенностей Компилируемых программ их способ доставки Пользователям отличается от Интерпритируемых. Чтобы конечному Пользователю не приходилось постоянно компилировать исходный код, для получения бинарного файла, в хостингах 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-amd64win64macosRelease 1.1.0-linux-amd64win64macosRelease 1.2.0-linux-amd64win64
Рассмотрим логику 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.0macos-oneRelease 1.0.1-linux-amd64-1.0.1win64-and-x86macos-twoRelease 1.1.0-linux-amd64-1.1.0win64macos-threeRelease 1.2.0-linux-amd64-1.2.0win64-and-x68
В данном случае Pepeunit не сможет автоматически обновлять Unit. Корректно будет работать только ручное обновление, платформу для каждой версии придётся скачивать вручную.