Get In Touch: Difference between revisions

From NixOS Wiki
imported>Ixxie
Added Hack Nixpkgs section
Fix: Add "References" Heading
 
(109 intermediate revisions by 41 users not shown)
Line 1: Line 1:
Next to the [https://nixos.org/nixos/community.html ''Contributing to NixOS'' section at the ''NixOS community'' page on the official NixOS website] we want to additionally describe how you can get involved in the NixOS ecosystem.
This article extends [https://nixos.org/community.html nixos.org/community] for how to get in touch and lists additional platforms to meet community members.


== Working on the Nixpkgs repository ==
See the [[Nix Community]] article to learn more about who we are.


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].
== Official Spaces ==
These are spaces are moderated by the [https://nixos.org/community/teams/moderation/ NixOS Moderation Team]


=== Report issues ===
=== Events ===
See the [[Events]] page for past and upcoming events!


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.
See also the [https://conf.tube/accounts/nixcon/video-channels NixCon Fediverse] or [https://www.youtube.com/results?search_query=nixos YouTube] sites for past NixCon recordings.


=== Create pull requests ===
=== Github ===


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.
* [https://github.com/NixOS/ NixOS] - Official Nix Org
** Contribute packages on [https://github.com/NixOS/nixpkgs nixpkgs]
** Develop the [https://github.com/NixOS/nix nix language]
** Participate in [https://github.com/NixOS/rfcs RFC discussions]
* [https://github.com/nix-community/ Nix-Community] - Explore community projects!


Here's how to create a pull request on GitHub:
=== Forums ===
* [https://discourse.nixos.org/ Official Discourse forum] - Ask for help here!


==== Fork Nixpkgs on Github ====
=== Chats ===


Create a GitHub account and fork nixpkgs/nixos/... repository.
==== Matrix ====


==== Add a remote ====
The official [https://matrix.to/#/#community:nixos.org NixOS Community Space] has rooms on many Nix topics.
* [https://matrix.to/#/#users:nixos.org #users:nixos.org] - Main Room
* [https://matrix.to/#/#wiki:nixos.org #wiki:nixos.org] - Wiki Contributors


On your host, create a new remote location:
Note: If your client doesn't support [https://matrix.org/ecosystem/clients/ Matrix Spaces], see the [[MatrixRooms]] page for list of all rooms.
<syntaxhighlight lang="bash">
# 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
</syntaxhighlight>


==== Hack Nixpkgs ====
==== Zulip ====


Make any modifications you want to your local copy of the repository. To test the changes on a NixOS machine, rebuild the system using your newly hacked Nixpkgs by executing:
* [https://nixpkgs.zulipchat.com/#recent NixOS Governance Discussion]  - Ongoing NixOS Governance discussions occurring here. Requires contribution to nixpkgs to participate.


<syntaxhighlight lang="bash">
==== Jitsi ====
sudo nixos-rebuild switch -I nixpkgs=/path/to/local/nixpkgs
* [https://meet.jit.si/NixOfficeHours OfficeHours] - Weekly Nix Office Hours (1600-2000 UTC Fridays, more times as mentors are available)
</syntaxhighlight>


==== Commit your change locally ====
== Officially Maintained ==
''Unmoderated'' spaces maintained by the moderation team.


Commit your change to your local clone of the repository:
==== [https://chaos.social/@nixos_org Mastodon] ====
<syntaxhighlight lang="bash">
git add FILE_LIST # eventually use git add --patch
git commit


==== Check status ====
==== [https://twitter.com/nixos_org Twitter] ====


Verify everything is ok - no unexpected dangling files git does not know about yet:
==== [https://www.linkedin.com/company/nixos-foundation/ LinkedIn] ====
git status
</syntaxhighlight>


==== Push to your remote repository ====
== Unofficial Spaces ==
Spaces maintained by members of the community.


Submitting your change, push to your repository:
=== Forums ===


<syntaxhighlight lang="bash">
* [https://www.reddit.com/r/NixOS/ r/NixOS] on Reddit (>25k members)
# 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>.
* [https://programming.dev/c/nix !nix@programming.dev] on Lemmy (>1k subscribers)
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 ====
* [https://stackoverflow.com/questions/tagged/nixos+or+nix+or+nixops+or+nixpkgs Stack Overflow] (>1k questions answered)
* [https://unix.stackexchange.com/questions/tagged/nixos+or+nix+or+nixops+or+nixpkgs Unix & Linux Stack Exchange] (>400 questions answered)


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.
=== Chats ===


=== Becoming a Nixpkgs maintainer ===
==== Discord ====


There are two types of maintainer: Members of the NixOS organization and package/module maintainer.
* [https://discord.gg/Vs4SWzFnWz Nix/NixOS (Unoffical)]
* [https://discord.gg/zaz3H6UsYk Nix/NixOS Community]<ref>https://discourse.nixos.org/t/new-discord-to-discuss-nix-nixos-and-the-wider-ecosystem/51953</ref>


Members of the NixOS organization have direct access to the [https://github.com/Nixos/nixpkgs nixpkgs] and can therefor can merge [[Create-pull-requests|pull requests]].
==== IRC ====
Previously hosted on Freenode but was switched to libera.chat. There are [https://logs.nix.samueldr.com/ public logs] from the Freenode versions of these channels.


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/lib/maintainers.nix#L3 lib/maintainer.nix] and reference the said handle within the package:
* [ircs://irc.libera.chat:6697/nixos #nixos] - General NixOS and Nix help
* [ircs://irc.libera.chat:6697/nixos/nix-darwin #nix-darwin] - Nix on macOS
* [ircs://irc.libera.chat:6697/nixos-chat #nixos-chat] - Informal chit-chat channel when going off-topic in the main channel
* [ircs://irc.libera.chat:6697/nixos-dev #nixos-dev] - Nix and NixOS development (#nixos for questions)
* [ircs://irc.libera.chat:6697/nixos-emacs #nixos-emacs] - Nix Emacs discussion


<syntaxhighlight lang="nix">{ stdenv, fetchurl }:
===== Regional IRC =====
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;
  };
}</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.


== Communication ==
* [ircs://irc.libera.chat:6697/nixos-cs #nixos-cs] - Czech and Slovak NixOS community
* [ircs://irc.libera.chat:6697/nixos-fr #nixos-fr] - French NixOS community
* [irc://irc.hackint.org/nixos #nixos] - German NixOS community on [https://hackint.org hackint.org] ([https://webirc.hackint.org webchat])


=== Join the mailinglist ===
==== Regional Telegram ====
There are some regional Telegram groups dedicated to NixOS:


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.
* [https://t.me/NixOS_zhcn @NixOS_zhcn] - Chinese, English
* [https://t.me/ru_nixos @ru_nixos] - Russian, English
* [https://t.me/nixos_en @nixos_en] - English
* [https://t.me/nixosbr @nixosbr] - Portuguese
* [https://t.me/nixosita @nixosita] - Italian


=== Join the chat ===
== References ==
 
[[Category:Community]]
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>.
 
In addition to that there is also the unofficial [https://riot.im/app/#/room/#nix:matrix.org NixOS matrix channel]
 
=== 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].

Latest revision as of 01:00, 14 September 2024

This article extends nixos.org/community for how to get in touch and lists additional platforms to meet community members.

See the Nix Community article to learn more about who we are.

Official Spaces

These are spaces are moderated by the NixOS Moderation Team

Events

See the Events page for past and upcoming events!

See also the NixCon Fediverse or YouTube sites for past NixCon recordings.

Github

Forums

Chats

Matrix

The official NixOS Community Space has rooms on many Nix topics.

Note: If your client doesn't support Matrix Spaces, see the MatrixRooms page for list of all rooms.

Zulip

Jitsi

  • OfficeHours - Weekly Nix Office Hours (1600-2000 UTC Fridays, more times as mentors are available)

Officially Maintained

Unmoderated spaces maintained by the moderation team.

Mastodon

Twitter

LinkedIn

Unofficial Spaces

Spaces maintained by members of the community.

Forums

Chats

Discord

IRC

Previously hosted on Freenode but was switched to libera.chat. There are public logs from the Freenode versions of these channels.

Regional IRC

Regional Telegram

There are some regional Telegram groups dedicated to NixOS:

References