3.2 KiB
3.2 KiB
How to contribute
Opening issues
- Make sure you have a GitHub account
- Submit an issue - assuming one does not already exist.
- Clearly describe the issue including steps to reproduce when it is a bug.
- Include information what version of nixpkgs and Nix are you using (nixos-version or git revision).
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 packages from binary cache.-
For example:
nixos-versionreturns15.05.git.0998212 (Dingo). So you can do:git checkout 0998212 git checkout -b 'fix/pkg-name-update'
-
- Please avoid working directly on the
masterbranch.
- You can make branch from a commit of your local
-
Make commits of logical units.
- If you removed pkgs, made some major NixOS changes etc., write about them in
nixos/doc/manual/release-notes/rl-unstable.xml.
- If you removed pkgs, made some major NixOS changes etc., write about them in
-
Check for unnecessary whitespace with
git diff --checkbefore committing. -
Format the commit in a following way:
``` (pkg-name | service-name): (from -> to | init at version | refactor | etc) Additional information. ```- Examples:
nginx: init at 2.0.1firefox: 3.0 -> 3.1.1hydra service: add bazBaz optionnginx 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.nixand check results in the folderresult. It will appear in the same directory where you didnix-build.
- If you did
nix-env -i pkg-nameyou can donix-env -e pkg-nameto uninstall it from your system.
- update pkg ->
- NixOS and its modules:
- You can add new module to your 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 your NixOS configuration file (usually it's
- 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 about your motivation.
- 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, do
git rebase -igit push --forceto your branch.