nix-weather/CONTRIBUTING.md
Christina Sørensen c6823129e6
Some checks failed
Conventional Commits / Conventional Commits (pull_request) Has been cancelled
docs: add CONTRIBUTING.md
Signed-off-by: Christina Sørensen <christina@cafkafk.com>
2024-09-05 10:07:11 +02:00

3.5 KiB

Contributing to Nix Weather

Nix Weather is a NixOs adjacent project, and expects contributors to have at least a local installation of Nix or Lix on their development machine.

DevShell

Currently, nix-weather is developed against Lix main branch. We also make use of experimental features, including ones still in RFC stage, such as RFC 0148: pipe-operators.

The devShell in the flake takes care of setting this up for you, so as long as you can run that, you shouldn't have to worry.

Further, the devShell includes formatting through nix fmt, and testing through nix flake check, as well as pre-commit-hooks, that ensure any PR is up to standard before being submitted.

We stronly advice working and commiting from inside the devShell. To make this easier, use the provided direnv configuration by installing direnv and running direnv allow in the repository root.

Code Standards

We make use of several standards, including:

We also make use of code formatters, as well as rust related tooling for auditing dependencies have licenses that are compliant with the EUPL-1.2.

Take note that contributions will be legally considered under the EUPL-1.2 Article 6 "Chain of Authorship" section, essentially a developer certificate of origin.

6.Chain of Authorship

The original Licensor warrants that the copyright in the Original Work granted hereunder is owned by him/her or licensed to him/her and that he/she has the power and authority to grant the Licence.

Each Contributor warrants that the copyright in the modifications he/she brings to the Work are owned by him/her or licensed to him/her and that he/she has the power and authority to grant the Licence.

Each time You accept the Licence, the original Licensor and subsequent Contributors grant You a licence to their contributions to the Work, under the terms of this Licence.

Pull-Requests

We currently expect that all commits are functional against nix flake check and don't introduce any regressions. Further we prohibit merge branch updates, and expect all pull requests to have been rebased against the main branch before being merged.

Long chains of commits should be divided into separate PRs, specially if introducing multiple features that will all need separate review. Ideally, a stacked workflow is preferred.

Formatting changes of code created in the PR should be rebased into the commit introducing the codebase, not be it's own separate commit.

Treewide changes should be added to a .git-blame-ignore-revs.

Code of Conduct

The project is moderated according to the Contributor Covenant Code of Conduct. We expect all contributions, issues, and other project communications made in spaces related to the project to live up to the standards set in the code of conduct, and it will be enforced according to the Enforcement Guidelines it describes.

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at:

matrix: @cafkafk:gitter.im