···11+# TODO: Move to top-level via staging PR
22+[*.js]
33+indent_style = space
44+indent_size = 2
+29
ci/README.md
···20202121- `BASE_BRANCH`: The base branch to use, e.g. master or release-24.05
2222- `REPOSITORY`: The repository from which to fetch the base branch. Defaults to <https://github.com/NixOS/nixpkgs.git>.
2323+2424+# Branch classification
2525+2626+For the purposes of CI, branches in the NixOS/nixpkgs repository are classified as follows:
2727+2828+- **Channel** branches
2929+ - `nixos-` or `nixpkgs-` prefix
3030+ - Are only updated from `master` or `release-` branches, when hydra passes.
3131+ - Otherwise not worked on, Pull Requests are not allowed.
3232+ - Long-lived, no deletion, no force push.
3333+- **Primary development** branches
3434+ - `release-` prefix and `master`
3535+ - Pull Requests required.
3636+ - Long-lived, no deletion, no force push.
3737+- **Secondary development** branches
3838+ - `staging-` prefix, `haskell-updates` and `python-updates`
3939+ - Pull Requests normally required, except when merging development branches into each other.
4040+ - Long-lived, no deletion, no force push.
4141+- **Work-In-Progress** branches
4242+ - `backport-`, `revert-` and `wip-` prefixes.
4343+ - Deprecated: All other branches, not matched by channel/development.
4444+ - Pull Requests are optional.
4545+ - Short-lived, force push allowed, deleted after merge.
4646+4747+Some branches also have a version component, which is either `unstable` or `YY.MM`.
4848+4949+`ci/supportedBranches.js` is a script imported by CI to classify the base and head branches of a Pull Request.
5050+This classification will then be used to skip certain jobs.
5151+This script can also be run locally to print basic test cases.