+====
Шеймлес плаг:
GitHub CI action для проектов Haskell, которое выполняет интеграционный тест Nixpkgs
Автоматически проверяет совместимость между проектом и репозиторием Nixpkgs. Позволяет команде, которая создает выпуск проекта, заблаговременно узнать, совместим ли проект с Nixpkgs как есть, или для проекта требуются overrides в файле
NixOS/nixpkgs: pkgs/development/haskell-modules/configuration-common.nix
.
https://github.com/marketplace/actions/automatic-haskell-project-integration-test-to-nixpkgsПодробности интеграции Nixpkgs Haskell (насколько я их знаю):
* Инфраструктура Nixpkgs Haskell имеет полуавтоматическую интеграцию пакетов Hackage.
* Пакеты, совместимость которых покрывается Stackage LTS - обновления версий происходят автоматически каждую полночь.
* Обновления пакетов Hackage, особенно важные / хрупкие обновления пакетов и все запросы на мерж происходят в ветке
haskell-updates
. Процесс управляется командой, обновления объединяются вместе с важными обновлениями и тестируются по пятницам во время прямых трансляций, которые заканчиваются мержем в основную ветку.
* Дизайн Nixpkgs декларирует 1 версию пакетов которая используется для сборок по умолчанию. Как ожидается от такой системы, эти версии по умолчанию иногда несовместимы с зависимостями проекта, который имеет диапазоны, и поэтому - деривация требует корректировок, - и это то, что это действие автоматически проверяет и результат сообщает заранее.
Естественно особенно рекомендую использовать для тех кто озабочен или хочет чтобы проект не ломался в Nixpkgs / не ломал дерево в Nixpkgs, или чтобы знать о поломке не тогда когда она произошла в системе Nixpkgs - а заранее отправить патч.
Рекомендую действие настроить по триггеру на релиз проекта - по очевидным причинам.