GitOrigin-RevId: 2c3273caa153ee8eb5786bc8141b85b859e7efd7
2.8 KiB
How to contribute
Note: contributing implies licensing those contributions under the terms of COPYING, which is an MIT-like license.
Opening issues
- Make sure you have a GitHub account
- Make sure there is no open issue on the topic
- Submit a new issue by choosing the kind of topic and fill out the template
Submitting changes
-
Format the commit messages in the following way:
(pkg-name | nixos/<module>): (from -> to | init at version | refactor | etc) (Motivation for change. Additional information.)
For consistency, there should not be a period at the end of the commit message's summary line (the first line of the commit message).
Examples:
-
nginx: init at 2.0.1
-
firefox: 54.0.1 -> 55.0
-
nixos/hydra: add bazBaz option
Dual baz behavior is needed to do foo.
-
nixos/nginx: refactor config generation
The old config generation system used impure shell scripts and could break in specific circumstances (see #1234).
-
-
meta.description
should:- Be capitalized.
- Not start with the package name.
- Not have a period at the end.
-
meta.license
must be set and fit the upstream license.- If there is no upstream license,
meta.license
should default tostdenv.lib.licenses.unfree
.
- If there is no upstream license,
-
meta.maintainers
must be set.
See the nixpkgs manual for more details on standard meta-attributes and on how to submit changes to nixpkgs.
Writing good commit messages
In addition to writing properly formatted commit messages, it's important to include relevant information so other developers can later understand why a change was made. While this information usually can be found by digging code, mailing list/Discourse archives, pull request discussions or upstream changes, it may require a lot of work.
For package version upgrades and such a one-line commit message is usually sufficient.
Backporting changes
To backport a change into a release branch:
- Take note of the commit in which the change was introduced into
master
. - Check out the target release branch, e.g.
release-20.03
. Do not use a channel branch likenixos-20.03
ornixpkgs-20.03
. - Use
git cherry-pick -x <original commit>
. - Open your backport PR. Make sure to select the release branch (e.g.
release-20.03
) as the target branch of the PR, and link to the PR in which the original change was made tomaster
.
Reviewing contributions
See the nixpkgs manual for more details on how to Review contributions.