Get In Touch: Difference between revisions
imported>Ixxie Added the #nixos-wiki channel to chat listing. |
imported>Ixxie m Fixed headers to standard format. |
||
Line 1: | Line 1: | ||
This article describes how you can get involved in the NixOS ecosystem. Besides this wiki entry there is also the [https://nixos.org/nixos/community.html official Community Information Website of NixOS]. | This article describes how you can get involved in the NixOS ecosystem. Besides this wiki entry there is also the [https://nixos.org/nixos/community.html official Community Information Website of NixOS]. | ||
= Working on the Nixpkgs repository = | == Working on the Nixpkgs repository == | ||
Development in NixOS primarily driven by the work in [https://github.com/nixos/nixpkgs nixpkgs on github]. This repository contains both all packages available in your NixOS channel and all the options you can use for configuring your system with your <code>configuration.nix</code>. To get your text editor to recognize Nix expressions, consider installing a Nix [https://github.com/nixos-users/wiki/wiki/Editor-Modes editor mode]. | Development in NixOS primarily driven by the work in [https://github.com/nixos/nixpkgs nixpkgs on github]. This repository contains both all packages available in your NixOS channel and all the options you can use for configuring your system with your <code>configuration.nix</code>. To get your text editor to recognize Nix expressions, consider installing a Nix [https://github.com/nixos-users/wiki/wiki/Editor-Modes editor mode]. | ||
== Report issues == | === Report issues === | ||
Any issue can be reported in the nixpkgs issue-tracker [https://github.com/nixos/nixpkgs/issues on github]. Keep in mind that all work on nixpkgs is being done by volunteers and you cannot expect a quick response and solution for all problems you may face. In general Pull-Requests have a much shorter round-trip-time. | Any issue can be reported in the nixpkgs issue-tracker [https://github.com/nixos/nixpkgs/issues on github]. Keep in mind that all work on nixpkgs is being done by volunteers and you cannot expect a quick response and solution for all problems you may face. In general Pull-Requests have a much shorter round-trip-time. | ||
== Create pull requests == | === Create pull requests === | ||
If you want to see your package being provided by a channel, creating an issue will most likely not enough. It is up to you to create a [[Contributing to Nixpkgs|nix package description]] in Nixpkgs and create a pull request in the Nixpkgs repository. Pull requests are a way to tell a github project that you've created some changes, which maintainers can easily review, comment on and, and finally merge into the repository. | If you want to see your package being provided by a channel, creating an issue will most likely not enough. It is up to you to create a [[Contributing to Nixpkgs|nix package description]] in Nixpkgs and create a pull request in the Nixpkgs repository. Pull requests are a way to tell a github project that you've created some changes, which maintainers can easily review, comment on and, and finally merge into the repository. | ||
Line 15: | Line 15: | ||
Here's how to create a pull request on GitHub: | Here's how to create a pull request on GitHub: | ||
=== Fork Nixpkgs on Github === | ==== Fork Nixpkgs on Github ==== | ||
Create a GitHub account and fork nixpkgs/nixos/... repository. | Create a GitHub account and fork nixpkgs/nixos/... repository. | ||
=== Add a remote === | ==== Add a remote ==== | ||
On your host, create a new remote location: | On your host, create a new remote location: | ||
Line 28: | Line 28: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Commit your change locally === | ==== Commit your change locally ==== | ||
Commit your change to your local clone of the repository: | Commit your change to your local clone of the repository: | ||
Line 35: | Line 35: | ||
git commit | git commit | ||
=== Check status === | ==== Check status ==== | ||
Verify everything is ok - no unexpected dangling files git does not know about yet: | Verify everything is ok - no unexpected dangling files git does not know about yet: | ||
Line 41: | Line 41: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Push to your remote repository === | ==== Push to your remote repository ==== | ||
Submitting your change, push to your repository: | Submitting your change, push to your repository: | ||
Line 56: | Line 56: | ||
You can always switch back to master by <code>git checkout master</code>. | You can always switch back to master by <code>git checkout master</code>. | ||
=== Create a pull request on GitHub === | ==== 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. | 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. | ||
== Becoming a Nixpkgs maintainer == | === Becoming a Nixpkgs maintainer === | ||
There are two types of maintainer: Members of the NixOS organization and package/module maintainer. | There are two types of maintainer: Members of the NixOS organization and package/module maintainer. | ||
Line 80: | Line 80: | ||
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. | 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. | ||
= Communication = | == Communication == | ||
== Join the mailinglist == | === Join the mailinglist === | ||
There is currently only one official Mailinglist related to NixOS, [https://groups.google.com/forum/#!forum/nix-devel nix-devel]. You don't need to be a developer to use nix-devel. | There is currently only one official Mailinglist related to NixOS, [https://groups.google.com/forum/#!forum/nix-devel nix-devel]. You don't need to be a developer to use nix-devel. | ||
== Join the chat == | === Join the chat === | ||
The official NixOS channel resides on [https://webchat.freenode.net/ irc.freenode.org] in <code>#nixos</code> ([https://botbot.me/freenode/nixos/ searchable Log]) and the wiki channel is at <code>#nixos-wiki</code>. | The official NixOS channel resides on [https://webchat.freenode.net/ irc.freenode.org] in <code>#nixos</code> ([https://botbot.me/freenode/nixos/ searchable Log]) and the wiki channel is at <code>#nixos-wiki</code>. | ||
Line 92: | Line 92: | ||
In addition to that there is also the unofficial [https://riot.im/app/#/room/#nix:matrix.org NixOS matrix channel] | In addition to that there is also the unofficial [https://riot.im/app/#/room/#nix:matrix.org NixOS matrix channel] | ||
== Join the forums == | === Join the forums === | ||
Check out the [https://www.reddit.com/r/NixOS/ NixOS Reddit channel] and help answering questions on Stack Overflow for [https://stackoverflow.com/questions/tagged/nixos NixOS] and [https://stackoverflow.com/questions/tagged/nix nix]. | Check out the [https://www.reddit.com/r/NixOS/ NixOS Reddit channel] and help answering questions on Stack Overflow for [https://stackoverflow.com/questions/tagged/nixos NixOS] and [https://stackoverflow.com/questions/tagged/nix nix]. |
Revision as of 17:28, 6 October 2017
This article describes how you can get involved in the NixOS ecosystem. Besides this wiki entry there is also the official Community Information Website of NixOS.
Working on the Nixpkgs repository
Development in NixOS primarily driven by the work in nixpkgs on github. This repository contains both all packages available in your NixOS channel and all the options you can use for configuring your system with your configuration.nix
. To get your text editor to recognize Nix expressions, consider installing a Nix editor mode.
Report issues
Any issue can be reported in the nixpkgs issue-tracker on github. Keep in mind that all work on nixpkgs is being done by volunteers and you cannot expect a quick response and solution for all problems you may face. In general Pull-Requests have a much shorter round-trip-time.
Create pull requests
If you want to see your package being provided by a channel, creating an issue will most likely not enough. It is up to you to create a nix package description in Nixpkgs and create a pull request in the Nixpkgs repository. Pull requests are a way to tell a github project that you've created some changes, which maintainers can easily review, comment on and, and finally merge into the repository.
Here's how to create a pull request on GitHub:
Fork Nixpkgs on Github
Create a GitHub account and fork nixpkgs/nixos/... repository.
Add a remote
On your host, create a new remote location:
# add your github clone as remote location:
YOUR_GITHUB_NAME=fill-in
git remote add $YOUR_GITHUB_NAME git@github.com:$YOUR_GITHUB_NAME/nixpkgs.git
Commit your change locally
Commit your change to your local clone of the repository:
git add FILE_LIST # eventually use git add --patch
git commit
==== Check status ====
Verify everything is ok - no unexpected dangling files git does not know about yet:
git status
Push to your remote repository
Submitting your change, push to your repository:
# 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
Why create your own branch? You can follow upstream (master) by running git merge master
.
You can git commit --amend
fixes and git push -f
your branch.
You can always switch back to master by git checkout master
.
Create a pull request on GitHub
Go to the Nixpkgs repository and push the create pull request button. Add a description of your work and submit.
Becoming a Nixpkgs maintainer
There are two types of maintainer: Members of the NixOS organization and package/module maintainer.
Members of the NixOS organization have direct access to the nixpkgs and can therefor can merge pull requests.
Everybody can become a package maintainer by adding to maintainers
attribute in the meta section of a package. First add your nick handle (preferable your GitHub username) to lib/maintainer.nix and reference the said handle within the package:
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
name = "hello-2.10";
# ....
meta = with stdenv.lib; {
# ...
maintainers = with maintainers; [ eelco your-nick ]; # replace your-nick with your real nick
platforms = platforms.all;
};
}
There can be multiple maintainers per package. Maintainers will receive emails from 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.
Communication
Join the mailinglist
There is currently only one official Mailinglist related to NixOS, nix-devel. You don't need to be a developer to use nix-devel.
Join the chat
The official NixOS channel resides on irc.freenode.org in #nixos
(searchable Log) and the wiki channel is at #nixos-wiki
.
In addition to that there is also the unofficial NixOS matrix channel
Join the forums
Check out the NixOS Reddit channel and help answering questions on Stack Overflow for NixOS and nix.