Signed-off-by: Christina Sørensen <christina@cafkafk.com>
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:
- Semantic Versioning for version bumps.
- Conventional Commits for commit summaries.
- REUSE for license complicance.
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