From c5711820ad102e329a2f7f88f97280cfe7c8e68e Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Tue, 21 Sep 2021 21:13:46 +0200 Subject: [PATCH] haskell: document branch-off procedure for maintainers Initial documentation of the branch-off procedure with the changes in #138407 which are yet to be forward-ported. --- pkgs/development/haskell-modules/HACKING.md | 36 +++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/pkgs/development/haskell-modules/HACKING.md b/pkgs/development/haskell-modules/HACKING.md index 51b0abb155243..f2acc5d07ceeb 100644 --- a/pkgs/development/haskell-modules/HACKING.md +++ b/pkgs/development/haskell-modules/HACKING.md @@ -274,6 +274,42 @@ version in NixOS for every individual package. To do this you run script for how to provide credentials. Once you have configured credentials, running this takes only a few seconds. +## Things to do after branch-off + +Twice a year a stable release branch is branched off from `master` to form +a stable NixOS release. These releases don't benefit from our regular +`haskell-updates` workflow since they *forbid breaking changes* which +becomes unfeasible to manage at the scale of our package set. Instead +we mostly rely on stable users spotting needed changes and proposing +them as a PR. + +General information on the release process can be found in the +[NixOS Releaes Wiki](https://nixos.github.io/release-wiki/Release-Process-Walkthrough.html). + +The main objective for `haskellPackages` in the context of stable release +should be supporting packaged “end-user” software (pandoc, niv, ...), so +Haskell maintainers should look out for changes to these packages and +consider backporting them (especially bug fix and security-related releases). +For a stable `haskellPackages` experience for development etc., a pinned +revision of nixpkgs `master` is recommended. + +The following is a list of things to do and/or consider at branch-off: + +* On `master` and the release branch, update the `NEXT_NIXOS_RELEASE` + variable in `maintainers/scripts/haskell/regenerate-hackage-packages.sh`: + This value should always be the same as what the `.version` file at the + repository root of the `master` branch contains. + +* On the release branch, run `maintainers/scripts/haskell/freeze-packages.sh` + and delete `pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml` + which is no longer needed. + +* Make sure `maintainers/scripts/haskell/regenerate-hackage-packages.sh` works correctly. + +* Make sure the references to the stable release in the documentation are accurate. + +* Document any steps forgotten here! + ## Additional Info Here are some additional tips that didn't fit in above.