diff options
author | (cdep)illabout <cdep.illabout@gmail.com> | 2021-05-12 22:39:50 +0900 |
---|---|---|
committer | (cdep)illabout <cdep.illabout@gmail.com> | 2021-05-12 22:39:50 +0900 |
commit | 3e84cfad8ecc78b4a0b2849a07a52c7894123e29 (patch) | |
tree | a2d61310186d04d845fba70a7b56eb954f9bccc7 /pkgs/development/haskell-modules/HACKING.md | |
parent | 6773b45e147653a56f15f26d7174d41f031b31ab (diff) | |
download | nixpkgs-3e84cfad8ecc78b4a0b2849a07a52c7894123e29.tar nixpkgs-3e84cfad8ecc78b4a0b2849a07a52c7894123e29.tar.gz nixpkgs-3e84cfad8ecc78b4a0b2849a07a52c7894123e29.tar.bz2 nixpkgs-3e84cfad8ecc78b4a0b2849a07a52c7894123e29.tar.lz nixpkgs-3e84cfad8ecc78b4a0b2849a07a52c7894123e29.tar.xz nixpkgs-3e84cfad8ecc78b4a0b2849a07a52c7894123e29.tar.zst nixpkgs-3e84cfad8ecc78b4a0b2849a07a52c7894123e29.zip |
haskell-updates: add documentation for workflow
Diffstat (limited to 'pkgs/development/haskell-modules/HACKING.md')
-rw-r--r-- | pkgs/development/haskell-modules/HACKING.md | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/pkgs/development/haskell-modules/HACKING.md b/pkgs/development/haskell-modules/HACKING.md new file mode 100644 index 00000000000..669be5394e2 --- /dev/null +++ b/pkgs/development/haskell-modules/HACKING.md @@ -0,0 +1,90 @@ + +## Maintainer Workflow + +This is the documentation for periodically merging the `haskell-updates` branch +into the `master` branch. This workflow is performed by members in the +[@NixOS/haskell](https://github.com/orgs/NixOS/teams/haskell) team. +Each member of the team takes a two week period where they much merge the +`haskell-updates` branch into `master`. + +The goal of this workflow is to regularly merge the `haskell-updates` branch +into the `master` branch, while making sure there are no evaluation errors or +build errors that get into `master`. + +The workflow generally proceeds in three main steps: + +1. create the initial `haskell-updates` PR +1. wait for contributors to fix newly broken Haskell packages +1. merge `haskell-updates` into `master` + +We describe each of these steps in a separate section. + +### Initial `haskell-updates` PR + +In this section we create the PR for merging `haskell-updates` into `master`. + +1. Make sure the `haskell-updates` branch is up-to-date with `master`. + +1. Update the Stackage Nightly resolver used by Nixpkgs and create a commit: + + ```console + $ maintainers/scripts/haskell/update-stackage.sh --do-commit + ``` + +1. Update the Hackage package set used by Nixpkgs and create a commit: + + ```console + $ maintainers/scripts/haskell/update-hackage.sh --do-commit + ``` + +1. Regenerate the Haskell package set used in Nixpkgs and create a commit: + + ```console + $ maintainers/scripts/haskell/regenerate-hackage-packages.sh --do-commit + ``` + +1. Push these commits to the Nixpkgs repo. + +1. Open a PR on Nixpkgs merging `haskell-updates` into `master`. + +Use the following message body: + +```markdown +### This Merge + +This PR is the regularly merge of the `haskell-updates` branch into `master`. + +This branch is being continually built and tested by hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates. + +I will aim to merge this PR **by 2021-TODO-TODO**. If I can merge it earlier, there might be successor PRs in that time window. As part of our rotation @TODO will continue these merges from 2021-TODO-TODO to 2021-TODO-TODO. + +### haskellPackages Workflow Summary + +Our workflow is currently described at `pkgs/development/haskell-modules/HACKING.md`. + +The short version is this: +* We regularly update the stackage and hackage pins on `haskell-updates` (normally at the beginning of a merge window). +* The community fixes builds of Haskell packages on that branch. +* We aim at at least one merge of `haskell-updates` into `master` every two weeks. +* We only do the merge if the `mergeable` job is succeeding on hydra. +* If a maintained package is still broken at the time of merge, we will only merge if the maintainer has been pinged 7 days in advance. (If you care about a Haskell package, become a maintainer!) + +--- + +This is the follow-up to #TODO. +``` + +Make sure to replace all TODO with the actual values. + +### Fix Broken Packages + +(TODO) + +### Merge `haskell-updates` into `master` + +(TODO) + +## Contributor Workflow + +(TODO: this section is to describe the type of workflow for non-comitters to +contribute to `haskell-updates`) |