Jump to content

Nixpkgs/Contributing: Difference between revisions

Link to nixpkgs and remove things mentioned in CONTRIBUTING.md
imported>Artturin
(xlibsWrapper doesn't exist anymore)
imported>Artturin
(Link to nixpkgs and remove things mentioned in CONTRIBUTING.md)
Line 94: Line 94:
}
}
</pre>
</pre>
=== Push to your remote repository ===
Submitting your change, push to your repository:
<syntaxhighlight lang="bash">
# recommended: create a topic branch, so that this change
# can be submitted independently from other patches:
git checkout -tb submit/your-topic-name
git push $YOUR_GITHUB_NAME submit/your-topic-name
</syntaxhighlight>
Why create your own branch? You can follow upstream (master) by running <code>git merge master</code>.
You can <code>git commit --amend</code> fixes and <code>git push -f</code> your branch.
You can always switch back to master by <code>git checkout master</code>.
=== Create a pull request on GitHub ===
Go to [https://github.com/nixos/nixpkgs the Nixpkgs repository] and push the ''create pull request'' button. Add a description of your work and submit.


=== Manage your local repository ===
=== Manage your local repository ===
Line 120: Line 101:
== Becoming a Nixpkgs maintainer ==
== Becoming a Nixpkgs maintainer ==


There are two types of maintainer: Members of the NixOS organization and package/module maintainer.
See [https://github.com/NixOS/nixpkgs/tree/master/maintainers maintainers] in nixpkgs
 
Members of the NixOS organization have direct access to the [https://github.com/Nixos/nixpkgs nixpkgs] and therefore can merge [[Create-pull-requests|pull requests]].
 
Everybody can become a package maintainer by adding to <code>maintainers</code> attribute in the meta section of a package. First add your nick handle (preferable your GitHub username) to [https://github.com/NixOS/nixpkgs/blob/master/maintainers/maintainer-list.nix maintainer-list.nix] and reference the said handle within the package:
 
<syntaxhighlight lang="nix">{ stdenv, lib, fetchurl }:
stdenv.mkDerivation rec {
  name = "hello-2.10";
  # ....
  meta = with lib; {
    # ...
    maintainers = with maintainers; [ eelco your-nick ]; # replace your-nick with your real nick
    platforms = platforms.all;
  };
}</syntaxhighlight>
There can be multiple maintainers per package. Maintainers will receive emails from [[Hydra|Hydra]] when package builds enters a failed state. They do not have special privileges as everybody can suggest updates and modifications to any package. However they might be consulted by NixOS members for testing and as a domain experts, when somebody else make a change to a package.


=== Building all of the packages you maintain ===
=== Building all of the packages you maintain ===
Anonymous user