Skip to content

Commit

Permalink
Contributing branches and reverting (#9577)
Browse files Browse the repository at this point in the history
Co-authored-by: Valentin Gagarin <[email protected]>
  • Loading branch information
roberth and fricklerhandwerk authored Dec 11, 2023
1 parent da58c00 commit 89cf536
Showing 1 changed file with 42 additions and 0 deletions.
42 changes: 42 additions & 0 deletions doc/manual/src/contributing/hacking.md
Original file line number Diff line number Diff line change
Expand Up @@ -282,3 +282,45 @@ See also the [format documentation](https://github.com/haskell/cabal/blob/master

Releases have a precomputed `rl-MAJOR.MINOR.md`, and no `rl-next.md`.
Set `buildUnreleasedNotes = true;` in `flake.nix` to build the release notes on the fly.

## Branches

- [`master`](https://github.com/NixOS/nix/commits/master)

The main development branch. All changes are approved and merged here.
When developing a change, create a branch based on the latest `master`.

Maintainers try to [keep it in a release-worthy state](#reverting).

- [`maintenance-*.*`](https://github.com/NixOS/nix/branches/all?query=maintenance)

These branches are the subject of backports only, and are
also [kept](#reverting) in a release-worthy state.

See [`maintainers/backporting.md`](https://github.com/NixOS/nix/blob/master/maintainers/backporting.md)

- [`latest-release`](https://github.com/NixOS/nix/tree/latest-release)

The latest patch release of the latest minor version.

See [`maintainers/release-process.md`](https://github.com/NixOS/nix/blob/master/maintainers/release-process.md)

- [`backport-*-to-*`](https://github.com/NixOS/nix/branches/all?query=backport)

Generally branches created by the backport action.

See [`maintainers/backporting.md`](https://github.com/NixOS/nix/blob/master/maintainers/backporting.md)

- [_other_](https://github.com/NixOS/nix/branches/all)

Branches that do not conform to the above patterns should be feature branches.

## Reverting

If a change turns out to be merged by mistake, or contain a regression, it may be reverted.
A revert is not a rejection of the contribution, but merely part of an effective development process.
It makes sure that development keeps running smoothly, with minimal uncertainty, and less overhead.
If maintainers have to worry too much about avoiding reverts, they would not be able to merge as much.
By embracing reverts as a good part of the development process, everyone wins.

However, taking a step back may be frustrating, so maintainers will be extra supportive on the next try.

0 comments on commit 89cf536

Please sign in to comment.