Nixpkgs: Difference between revisions

From NixOS Wiki
imported>Makefu
init
m link to on-wiki foundation page
 
(39 intermediate revisions by 20 users not shown)
Line 1: Line 1:
{{Expansion|This article is a stub.}}
'''Nixpkgs''' is the largest repository of [[Nix]] packages and [[NixOS]] modules. The repository is [https://github.com/nixos/nixpkgs hosted on GitHub] and maintained by the community, with official backing from the [[NixOS Foundation]].


'''nixpkgs''' is the community maintained code repository for package descriptions as well as module descriptions for [[NixOS]]. The repository is maintained in https://github.com/nixos/nixpkgs and a number of core maintainers update nix expressions and module definitions.
To search among available packages and options, see [[Searching packages]].


== Channels ==
As highlighted in [https://nixos.org/blog/announcements.html#21.05  the announcement] of the NixOS 21.05 release, ''"NixOS is already known as [https://repology.org/repositories/statistics/newest the most up to date distribution] and is [https://repology.org/repositories/statistics/total in the top three by total number of packages]."'' This is thanks to the community's continued dedication to making Nixpkgs the preeminent Linux package repository.
Channels in the Nix Ecosystem are tagged and tested revisions inside the nixpkgs repository. Every push of code towards the repository will be built by the official [https://nixos.org/hydra/manual/#idm140737315980672 nixos.org hydra] deployment. The [[Nix Channels]] article provides an overview of the official channels which are currently available.


== Pull Requests ==
== Subpages ==
Pull Requests are the primary way to get your changes into NixOS and nixpkgs. Pull Requests generally contain package updates or changes in the NixOS module system.
 
Use [[Get Involved#Create pull requests|Getting Involved ->Create pull requests]] as a Guide on how to create your first PR, all you need is a Github account.
There are a number of articles especially related to working with <tt>nixpkgs</tt>:
{{Special:PrefixIndex/{{FULLPAGENAME}}/ |hideredirects=1 |stripprefix=1}}
 
== Releases ==
 
{{main|Channel branches}}
 
The packages and modules hosted on Nixpkgs are distributed through various [[channel branches]] intended for particular use-cases. In practice they are differentiated by the level of testing updates must pass on the official [https://nixos.org/hydra/manual/#idm140737315980672 nixos.org Hydra instance] and the number of updates they receive.
 
For [[NixOS]] users, <code>nixos-unstable</code> channel branch is the rolling release, where packages pass build tests and integration tests on a VM, and are tested from the perspective of being an operative system (this means things like the X server, KDE, various servers, and lower level details like installing bootloaders and runnning the NixOS installation steps are also tested).
 
For standalone [[Nix]] users, <code>nixpkgs-unstable</code> channel branch is the rolling release, where packages pass only basic build tests and are upgraded continuously.
 
Both [[NixOS]] and [[Nix]] users can use stable channel branches - the latest being {{nixos:latest}} - to receive only conservative updates for fixing critical bugs and security vulnerabilities. Stable channel branches are released bi-annually at the end of May and the end of November.
 
Using stable channels on NixOS is comparable to the user experience on other Linux distributions.  


== Alternatives ==
== Alternatives ==
Due to the fact that nixpkgs is ''only'' a nix expression it is possible to extend or replace the logic with your own sources.
In fact, there are a number of extensions as well as complete replacements for '''Nixpkgs''', see the [[Alternative Package Sets]] article.


Due to the fact that Nixpkgs is ''only'' a Nix expression, it is possible to extend or replace the logic with your own sources.
In fact, there are a number of extensions as well as complete replacements for Nixpkgs, see the [[Alternative Package Sets]] article.


[[Category:Discussion]]
[[Category:Pedias]]
[[Category:Nixpkgs]]
[[Category:Nixpkgs]]
[[Category:Incomplete]]
[[Category:Nix]]
[[Category:Software]]

Latest revision as of 21:00, 22 June 2024

Nixpkgs is the largest repository of Nix packages and NixOS modules. The repository is hosted on GitHub and maintained by the community, with official backing from the NixOS Foundation.

To search among available packages and options, see Searching packages.

As highlighted in the announcement of the NixOS 21.05 release, "NixOS is already known as the most up to date distribution and is in the top three by total number of packages." This is thanks to the community's continued dedication to making Nixpkgs the preeminent Linux package repository.

Subpages

There are a number of articles especially related to working with nixpkgs:

Releases

Main article: Channel branches

The packages and modules hosted on Nixpkgs are distributed through various channel branches intended for particular use-cases. In practice they are differentiated by the level of testing updates must pass on the official nixos.org Hydra instance and the number of updates they receive.

For NixOS users, nixos-unstable channel branch is the rolling release, where packages pass build tests and integration tests on a VM, and are tested from the perspective of being an operative system (this means things like the X server, KDE, various servers, and lower level details like installing bootloaders and runnning the NixOS installation steps are also tested).

For standalone Nix users, nixpkgs-unstable channel branch is the rolling release, where packages pass only basic build tests and are upgraded continuously.

Both NixOS and Nix users can use stable channel branches - the latest being nixos-23.11 - to receive only conservative updates for fixing critical bugs and security vulnerabilities. Stable channel branches are released bi-annually at the end of May and the end of November.

Using stable channels on NixOS is comparable to the user experience on other Linux distributions.

Alternatives

Due to the fact that Nixpkgs is only a Nix expression, it is possible to extend or replace the logic with your own sources. In fact, there are a number of extensions as well as complete replacements for Nixpkgs, see the Alternative Package Sets article.