GitHub CI action for Haskell projects that does Nixpkgs integration test¶
Checks the compatibility between project release and Nixpkg repository. Allows the team that makes a project release to know ahead of the time is the project compatible with Nixpkgs as is, or the project's derivation requires overrides in the NixOS/nixpkgs: pkgs/development/haskell-modules/configuration-common.nix
.
Details on Nixpkgs Haskell integration (as I know them):
* Nixpkgs Haskell infrastructure has semi-automatic integration of Hackage Packages.
* Packages which compatibility is covered by Stackage LTS - version updates happen every midnight automatically.
* Hackage package updates, particular crucial/fragile package updates and all merge requests target and happen in haskell-updates
branch. They get managed by the team, updates get consolidated together with crucial updates, and tested on Fridays during live streams which end in merge into the main branch.
* Nixpkgs design declares default package versions and uses them for pure builds by default. As expected those defaults sometimes not compatible with project Hackage dependencies, and so - the derivation requires adjustments, - and this is what this action automatically tests and reports on preemptively.
GitHub CI action для проектов Haskell, которое выполняет интеграционный тест Nixpkgs¶
Автоматически проверяет совместимость между проектом и репозиторием Nixpkgs. Позволяет команде, которая создает выпуск проекта, заблаговременно узнать, совместим ли проект с Nixpkgs как есть, или для создания проекта требуется переопределение в файле NixOS / nixpkgs: pkgs / development / haskell-modules / configuration-common.nix
.
URL https://github.com/marketplace/actions/automatic-haskell-project-integration-test-to-nixpkgs
Подробности интеграции Nixpkgs Haskell (насколько я их знаю): * Инфраструктура Nixpkgs Haskell имеет полуавтоматическую интеграцию пакетов Hackage. * Пакеты, совместимость которых покрывается Stackage LTS - обновления версий происходят автоматически каждую полночь. * Обновления пакетов Hackage, особенно важные / хрупкие обновления пакетов и все запросы на мерж происходят в ветке haskell-updates. Процесс управляется командой, обновления объединяются вместе с важными обновлениями и тестируются по пятницам во время прямых трансляций, которые заканчиваются мержем в основную ветку. * Дизайн Nixpkgs декларирует 1 версию пакетов которая используется для сборок по умолчанию. Как ожидается от такой системы, эти версии по умолчанию иногда несовместимы с зависимостями проекта, который имеет диапазоны, и поэтому - деривация требует корректировок, - и это то, что это действие автоматически проверяет и результат сообщает заранее.