mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-25 07:00:43 +00:00
3 KiB
3 KiB
How to contribute
Opening issues
- Make sure you have a GitHub account
- Submit a ticket for your issue, assuming one does not already exist.
- Clearly describe the issue including steps to reproduce when it is a bug.
Making patches
-
Fork the repository on GitHub.
-
Create a branch for your future fix.
- You can make branch from a commit of your local
nixos-version
. That will help you to avoid additional local compilations. Because you will recieve some packages from cache server.-
For example:
nixos-version
returns15.05.git.0998212 (Dingo)
. So you can do:git checkout 0998212 git checkout -b 'fix/pkg-name-update'
-
- Please avoid working directly on the
master
branch.
- You can make branch from a commit of your local
-
Make commits of logical units.
- If you removed pkgs, made some major changes etc., write about them in
nixos/doc/manual/release-notes/rl-unstable.xml
.
- If you removed pkgs, made some major changes etc., write about them in
-
Check for unnecessary whitespace with
git diff --check
before committing. -
Format the commit in a following way:
``` (pkg-name | service-name): (update from -> to | init at version | refactor | etc) Additional information. ```
- Examples:
foo-pkg: init at 2.0.1
bar-pkg: update 3.0 -> 3.1.1
lala-service: add bazBaz option
tata-service: refactor config generation
- Examples:
-
Test your changes. If you work with
- nixpkgs
- update pkg ->
nix-env -i pkg-name -f <path to your local nixpkgs folder>
- add pkg ->
- Make sure it's in
pkgs/top-level/all-packages.nix
nix-env -i pkg-name -f <path to your local nixpkgs folder>
- Make sure it's in
- If you don't want to install pkg in you profile.
nix-build -A pkg-attribute-name <path to your local nixpkgs folder>/default.nix
and check results in the folderresult
. It will appear in the same directory where you didnix-build
.
- If you did
nix-env -i pkg-name
you can donix-env -e pkg-name
to uninstall it from your system.
- update pkg ->
- nixos and its modules
- You can add new module to you
nixos-configuration file
(usually it's/etc/nixos/configuration.nix
.
And dosudo nixos-rebuild test -I nixpkgs=<path to your local nixpkgs folder> --fast
- You can add new module to you
- nixpkgs
-
If you have commits
pkg-name: oh, forgot to insert whitespace
: squash commits in this case. Usegit rebase -i
. -
Rebase you branch against current
master
.
Submitting changes
- Push your changes to your fork of nixpkgs.
- Create pull request.
- Write the title in format
(pkg-name | service): improvement
- If you update the pkg, write versions
from -> to
- If you update the pkg, write versions
- Write in comment if you have tested your patch. Do not rely much on
TravisCI
. - If you make an improvement, write why is it good.
- Notify maintainers of the package. For example add to the message:
cc @jagajaga @domenkozar
- Write the title in format
Hotfixing pull requests
- Make the appropriate changes in you branch.
- Don't create additional commits.
git rebase
git push --force
to your branch.