diff options
author | Silas Schöffel <sils@sils.li> | 2024-12-24 18:39:23 +0100 |
---|---|---|
committer | Silas Schöffel <sils@sils.li> | 2024-12-24 18:39:23 +0100 |
commit | 051046070400a3e3f3ea5e9675830386e1919a0d (patch) | |
tree | ddc3009d93352a6d9dead967c7ca68e636c46803 /CONTRIBUTING.md | |
parent | [WIP] (diff) | |
download | nixos-server-051046070400a3e3f3ea5e9675830386e1919a0d.tar.gz nixos-server-051046070400a3e3f3ea5e9675830386e1919a0d.zip |
--wip-- [skip ci]
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r-- | CONTRIBUTING.md | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 330cbeb..70760ae 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,16 +1,25 @@ # Branches + Following branches are used: + ## develop + This contains all upcoming changes for the next pull request to `main`. All feature branches should merge into this branch. + ## feature branches + These branches are created on a per-feature basis and will be merged into `develop`. This merge happens without ci testing and prior review, but a pull request should be opened to trigger a notification. + ## main + Changes in this branch trigger an automatic rebuild on the server, so all merges should be peer-reviewed and tested. However, exceptions can be made for changes, which close security vulnerabilities. The only branch able to be merged into `main` is `develop`. # Development process + If adding a new feature you should follow this loose guide: + 1. Clone the repository 1. Allow the `.envrc`: `direnv allow` (see [development environment](#development-environment), if you don't know what this does) 1. Checkout your feature branch from develop: `git checkout -b <feature branch name> develop` @@ -19,6 +28,7 @@ If adding a new feature you should follow this loose guide: 1. Push your change and open a pull request to `develop`: `git push --set-upstream origin <feature branch name>` # Development environment + All required tools should be specified in the `devShells` output of the flake. This is because we use [Direnv](https://github.com/direnv/direnv) in combination with [Nix integration](https://github.com/direnv/direnv/wiki/Nix) — in this case [Nix-direnv](https://github.com/nix-community/nix-direnv) — to enforce reliable development environments (and some uncluttering of PATH). Setting it up is rather easy, just see [Nix-direnv's install instructions](https://github.com/nix-community/nix-direnv#installation). |