Blog
NixOS 22.05 released
— Published onHey everyone, I'm Janne Heß, the release manager for 22.05. As promised, the latest stable release is here: NixOS 22.05 “Quokka”.
The 22.05 release was possible due to the efforts of 1611 contributors in 46727 commits. We would especially like to thank our top 10 contributors: Fabian Affolter, Sandro Jäckel, Martin Weinelt, Bobby Rong, Mario Rodas, Jonathan Ringer, Jan Tojnar, Jörg Thalheim, sternenseemann, and Robert Schütz.
NixOS is already known as
the most up to date distribution
and is
the distribution with the most packages.
This release saw 9345 new packages and 10666 updated packages.
Removal of unmaintained packages is also important to keep the package set working and secure.
This release removed 5874 packages that were available in 21.11.
nixpkgs also includes a lot of modules that make NixOS what it is. This release brought 89 new modules and removed 27. In that process, the contributors added 1304 options and removed 359.
Nix 2.8
This release brings nix 2.8 as the default nix package. This brings users a lot of fixes, general improvements and increased performance. The main feature that was awaited for a long time is the introduction of experimental features, namely the flakes experimental feature. Users still have to opt into the feature manually (as well as the nix-command feature that was enabled by default in previous nix versions).
Graphical installer
Improving experience for new users is something that the NixOS project has been working on for a long time. After all, NixOS is a very different compared to traditional distributions. To make it easier to get started with a new NixOS system, a graphical installer based on Calamares is now provided. This installer starts by default when launching the GNOME or Plasma ISO and allows for one-time configuration of a new system.
Special Thanks
Thanks to Jörg Thalheim who helped with the changelog as the release editor. Also to Jon Ringer for guiding the release process since NixOS 20.09. Vladimír Čunát and Martin Weinelt for their continued efforts managing and stabilizing staging. More thanks go out to Martin Weinelt for helping me with a lot of questions about the process and some subsystems, your help was greatly appreciated. Also thanks a lot to Graham Christensen for organizing with Equinix Metal to ensure we had enough compute resources and the entire infrastructure team.
Additional thanks go out to Rick van Schijndel for going through all the pain of marking packages that do not build anymore as broken. I hope we can make the process more straightforward in future releases.
Reflections and Closing
This release brought a lot of features and improvements I've been waiting to see in a release channel. It was a great pleasure working with the community and seeing incredible amounts of work being done by the entire community.
Nix 2.8.0 released
— Published onWe're pleased to announce the availability of Nix 2.8.0. It will be available from NixOS - Getting Nix / NixOS.
Here are the release notes:
-
New experimental command:
nix fmt
, which applies a formatter defined by theformatter.<system>
flake output to the Nix expressions in a flake. -
Various Nix commands can now read expressions from standard input
using
--file -
. -
New experimental builtin function
builtins.fetchClosure
that copies a closure from a binary cache at evaluation time and rewrites it to content-addressed form (if it isn’t already). Likebuiltins.storePath
, this allows importing pre-built store paths; the difference is that it doesn’t require the user to configure binary caches and trusted public keys.This function is only available if you enable the experimental feature
fetch-closure
. -
New experimental feature: impure derivations. These are derivations that can produce a different result every time they’re built. Here is an example:
stdenv.mkDerivation { name = "impure"; __impure = true; # marks this derivation as impure buildCommand = "date > $out"; }
Running nix build twice on this expression will build the derivation twice, producing two different content-addressed store paths. Like fixed-output derivations, impure derivations have access to the network. Only fixed-output derivations and impure derivations can depend on an impure derivation.
-
nix store make-content-addressable
has been renamed to nix storemake-content-addressed
. -
The
nixosModule
flake output attribute has been renamed consistent with the.default
renames in Nix 2.7.-
nixosModule
→nixosModules.default
As before, the old output will continue to work, but
nix flake check
will issue a warning about it. -
-
nix run
is now stricter in what it accepts: members of theapps
flake output are now required to be apps (as defined in the manual), and members ofpackages
orlegacyPackages
must be derivations (not apps).
The next release is scheduled for .
Thank you to all the contributors!
Nix 2.7.0 released
— Published onWe're pleased to announce the availability of Nix 2.7.0. It will be available from NixOS - Getting Nix / NixOS.
Here are the release notes:
-
Nix will now make some helpful suggestions when you mistype something
on the command line. For instance, if you type nix build
nixpkgs#thunderbrd
, it will suggestthunderbird
. -
A number of “default” flake output attributes have been renamed. These are:
-
defaultPackage.<system>
→packages.<system>.default
-
defaultApps.<system>
→apps.<system>.default
-
defaultTemplate
→templates.default
-
defaultBundler.<system>
→bundlers.<system>.default
-
overlay
→overlays.default
-
devShell.<system>
→devShells.<system>.default
The old flake output attributes still work, but
nix flake check
will warn about them. -
-
Breaking API change:
nix bundle
now supports bundlers of the formbundler.<system>.<name>= derivation: another-derivation;
. This supports additional functionality to inspect evaluation information during bundling. A new repository 73 has various bundlers implemented. -
nix store ping
now reports the version of the remote Nix daemon. -
nix flake {init,new}
now display information about which files have been created. -
Templates can now define a
welcomeText
attribute, which is printed out bynix flake {init,new} --template <template>
.
The next release 149 is scheduled for . The next release is scheduled for .
Thank you to all the contributors!
NixOS Community Survey 2022
— Published onThe NixOS Marketing Team is pleased to announce the first offical NixOS Community Survey. Please take 5-10 minutes to complete it.
Since the Nix community has been growing faster and larger every month, it's gotten harder to understand who makes up the community and what everyone cares about. So we're conducting this survey to improve our understanding of those questions. We hope to use your responses to develop Nix, NixOS, and Nixpkgs to match your needs and come up with new ideas for growing and serving the community. And we'll publish major findings on Discourse and nixos.org.
All the questions are optional, and all responses are automatically anonymized. We will NOT collect your name, phone number, GitHub handle, IP address, or any other identifying information.
The questions in the survey cover:
- Your background (e.g. What region of the world are you from?)
- The projects you use in the ecosystem (e.g. Are you using NixOS?)
- How you use the projects (e.g. Do you use Nix in production servers?)
- What you like and dislike about the projects (e.g. What do you think is already great about Nix? What do you think contributors should focus on improving?)
This is our first time running a survey like this, so we're also looking for feedback on the survey itself to understand how we can do this better in the future! Thanks!
-Barry @ flox (bpiv400) and the NixOS Marketing Team
Nix 2.6.0 released
— Published onWe're pleased to announce the availability of Nix 2.6.0.
Instructions how to install Nix on different platforms can be found on the download page.
Here are the release notes:
-
New builtin function
builtins.zipAttrsWith
with the same functionality aslib.zipAttrsWith
from Nixpkgs, but much more efficient. -
The Nix CLI now searches for a
flake.nix
up until the root of the current Git repository or a filesystem boundary rather than just in the current directory. -
The TOML parser used by
builtins.fromTOML
has been replaced by a more compliant one. -
Added
:st
/:show-trace
commands to nix repl, which are used to set or toggle display of error traces. -
New command
nix store copy-log
to copy build logs from one store to another. -
The
commit-lockfile-summary
option can be set to a non-empty string to override the commit summary used when commiting an updated lockfile. This may be used in conjunction with thenixConfig
attribute inflake.nix
to better conform to repository conventions. -
docker run -ti nixos/nix:master
will place you in the Docker container with the latest version of Nix from the master branch.
The next release is scheduled for .
Thank you to all the contributors!
NixOS 21.11 released
— Published onHey everyone, we're Timothy DeHerrera and Tom Bereknyei, the release managers for 21.11. As promised, the latest stable release is here: NixOS 21.11 “Porcupine”.
The 21.11 release was possible due to the efforts of 1541 contributors in 41960 commits. We would especially like to thank our top 10 contributors: Sandro Jäckel, Fabian Affolter, Martin Weinelt, figsoda, Artturin, Mario Rodas, Bobby Rong, Jörg Thalheim, Robert Schütz, Michael Weiss.
NixOS is already known as the most up to date distribution and is in the top three by total number of packages and we expect this trend to continue.
Stabilization Contributors
Stabilization of the NixOS happens a month before the planned release. The goal is to have as little as possible continuous integration (Hydra) jobs failing before the release is cut.
Individuals who contributed to stabilizing this release: Fabian Affolter, Sandro Jäckel, figsoda, Sergei Trofimovich, Artturin, Alyssa Ross, Thiago Kenji Okada, Lukas Epple, Tredwell, Bernardo Meurer, and 477 others!
Special Thanks
Thanks to Domen Kožar for revitalizing the Darwin support effort. Jon Ringer for guiding the release process since NixOS 20.09. Vladimír Čunát and Martin Weinelt for their continued efforts managing and stabilizing staging. Thanks to Graham Christensen for organizing with Equinix Metal to ensure we head enough compute resources.
Reflections and Closing
The influx of additional interest in Nix/NixOS is exciting to see. The fairly smooth release cycle is due to the dedication and time of all the volunteers in the community. The continued growth and improvements have been incredible to witness.
NixOS 21.05 released
— Published onHey everyone, I'm Jonathan Ringer, the release manager for 21.05. As promised, the latest stable release is here: NixOS 21.05 “Okapi”.
The 21.05 release was possible due to the efforts of 1745 contributors in 33474 commits. We would especially like to thank our top 10 contributors: Fabian Affolter, Frederik Rietdijk, Sandro Jäckel, Tim Steinbach, Jonathan Ringer, Martin Weinelt, Mario Rodas, Robert Schütz, Jan Tojnar, Sterni.
NixOS is already known as the most up to date distribution and is in the top three by total number of packages.
This didn't stop us. In the last six months:
- 12985 packages were added
- 14109 packages were removed
- 16768 packages were updated
Likewise, our NixOS module system got bigger and better:
- 1527 options were added
- 290 options removed
- 400 options were updated
Stabilization Contributors
Stabilization of the NixOS happens a month before the planned release. The goal is to have as little as possible continuous integration (Hydra) jobs failing before the release is cut.
Individuals who contributed to stabilizing this release: Fabian Affolter, Sterni, Stéphan Kochen, Robert Schütz, Martin Weinelt, Jonathan Ringer, Alyssa Ross, Andrew Childs, Thomas Tuegel, Malte Brandy, and 431 others!
Special Thanks
I would like to give a special thanks to Jan Tojnar and others for the Gnome 40 stabilization effort. Another special thanks should be given to Thomas Tuegel and many others for bringing Plasma 5.21 to NixOS.
Reflections and Closing
I think the RFC80 and RFC85 changes to the release process were successful in limiting risk and making the release more deterministic. This is the first release since 17.03 to have released in the intended month, although the rendered manual and official announcement were delayed a day. In the future, I hope to make the release as "boring" as possible, and have it be a time to improve the quality of nixpkgs' unstable and stable channels.
NixOS 20.09 released
— Published onHey everyone, I'm Jonathan Ringer, one of the release managers for 20.09. As promised, the latest stable release is here: NixOS 20.09 “Nightingale” ✨.
The 20.09 release was possible due to the efforts of 1313 contributors in 31282 commits. We would especially like to thank our top 10 contributors: Mario Rodas, Frederik Rietdijk, Jörg Thalheim, Maximilian Bosch, Jonathan Ringer, Jan Tojnar, Daniël de Kok, WORLDofPEACE, Florian Klink, José Romildo Malaquias, and 1303 others!
NixOS is already known as the most up to date distribution and is in the top three by total number of packages.
This didn't stop us. In the last six months:
- 7349 packages were added
- 8181 packages were removed
- 14442 packages were updated
Likewise, our NixOS module system got bigger and better:
- 1119 options were added (61 new modules)
- 476 options removed
- 118 options were updated
Stabilization Contributors
Stabilization of the NixOS happens a month before planned release. The goal is to have as little as possible continuous integration (Hydra) jobs failing before the release is cut. While we would like to release on time, a high quality release is more important.
Individuals who contributed to stabilizing this release: volth, Robert Scott, Tim Steinbach, WORLDofPEACE, Maximilian Bosch, Thomas Tuegel, Doron Behar, Vladimír Čunát, Jonathan Ringer, Maciej Krüger, and 190 others!
Reflections and Closing
I think that the 20.09 release highlighted a few weak points with our current release schedule. Discussions have already began on how to improve the process from the beginning, to help minimize risk, and set ourselves up for more successes in the future. I want to thank WORLDofPEACE (my co-release-manager) for helping me with release management items, Thomas Tuegel for helping with Qt and Plasma stabilization, as well as Robert Scott for his work with release stabilization.
NixOS 20.03 released
— Published onHey everyone, I am worldofpeace, one of the release managers for 20.03. As promised, the most glittered stable release is here: NixOS 20.03 “Markhor” ✨.
NixOS 20.03 Contributors
We had 1014 people contribute to NixOS 20.03 and 21597 contributions. Thank you soo much, each contribution is valued.
Top 10 ordered by commits
Rank | Name | Commits |
---|---|---|
1 | Frederik Rietdijk | 1573 |
2 | worldofpeace | 1273 |
3 | Mario Rodas | 1256 |
4 | Maximilian Bosch | 720 |
5 | Jan Tojnar | 491 |
6 | Jonathan Ringer | 477 |
7 | Jörg Thalheim | 414 |
8 | Florian Klink | 393 |
9 | Will Dietz | 373 |
10 | volth | 356 |
My Reflections and Closing
Being release manager for 20.03 has been a poignant moment for me in being part of NixOS. I had my goals that I set out before I was appointed, but I was really surprised how respected I am in the community. My primary goal was “work collaboratively with all participants in the NixOS project and being supportive of their efforts”. I feel I ✨ shine best in that dynamic in the project, so this really was perfect for me. I hope releasing NixOS has felt better for those involved. With the seeds I’ve planted it should continue to bloom this way.
I’d like to thank Samuel Leathers, my co-release manager, for his congruent effervescence and guidance; Graham Christensen for his organizational encouragement; and obviously every last person I got to work with. Thanks ✌️
In leisure, pause, and experimental grace. worldofpeace.
NixOS 19.09 released
— Published onNixOS 19.03 released
— Published onNixOS 18.09 released
— Published onFastly supports NixOS
— Published onNix 2.1 released
— Published onNixOS Discourse forum
— Published onNixCon 2018
— Published onNixOS 18.03 released
— Published onNix 2.0 released
— Published onNixOS 17.09 released
— Published onNix-dev mailing list moved
— Published onNixCon 2017
— Published onNixOS 17.03 released
— Published onNixOS 16.09 released
— Published onNixOps 1.4 released
— Published onNixOS 16.03 released
— Published onNix 1.11 released
— Published onNixOS 15.09 released
— Published onNix 1.10 released
— Published onNixCon 2015
— Published onNixOS Foundation
— Published onNix 1.9 released
— Published onNixOS 14.12 released
— Published onNix 1.8 released
— Published onNixOS sprint in Ljubljana
— Published onNixOS 14.04 released
— Published onNixOps 1.2 released
— Published onNix 1.7 released
— Published onHeartbleed vulnerability in OpenSSL
— Published on$ nix-store -qR /run/current-system | grep opensslIf this shows any OpenSSL version prior to 1.0.1g, you may be vulnerable.
FOSDEM talks
— Published onStdenv updates branch merged into master
— Published onNixOS 13.10 released
— Published onNix 1.6.1 released
— Published onNixOS sources merged into Nixpkgs
— Published onNixOps 1.1.1 released
— Published onNix 1.6 released
— Published onNixOps 1.1 released
— Published onNixOS sprint in Slovenia
— Published onNixOps 1.0.1 released
— Published onNixOS presentation at EuroPython
— Published onNixOps 1.0 released
— Published onNix 1.5.3 released
— Published onPhD thesis: A Reference Architecture for Distributed Software Deployment
— Published onNix 1.5.2 released
— Published onNix 1.5.1 released
— Published onNix 1.4 released
— Published onNixOS switched to systemd
— Published onNix 1.3 released
— Published onNix 1.2 released
— Published onNix 1.1 released
— Published onBinary Nix tarballs available
— Published onNix 1.0 released
— Published onPatchELF 0.6 released
— Published onHydra talk at Inria
— Published onMoving to GitHub
— Published onNix-dev mailing list moved
— Published onFOSDEM talk about NixOS
— Published onISSRE paper on NixOS-based system testing
— Published onXfce in NixOS
— Published onNix 0.16 released
— Published onNixOS talk at LSM
— Published onNix 0.15 released
— Published onNix 0.14 released
— Published onNix logo
— Published onNix 0.13 released
— Published onLWN.net article on NixOS
— Published onNixpkgs 0.12 released
— Published onOpenOffice.org 3 in Nixpkgs
— Published onKDE 4.2 in Nixpkgs/NixOS
— Published onHydra
— Published onLinux.com article about Nix
— Published onNix 0.12 released
— Published onDisNix paper accepted at HotSWUp
— Published onThe paper “Atomic Upgrading of Distributed Systems” (by Sander van der Burg, Eelco Dolstra and Merijn de Jonge) has been accepted for presentation at the First ACM Workshop on Hot Topics in Software Upgrades (HotSWUp). A draft of the paper is available. It describes Sander’s master’s thesis research on DisNix, an extension to Nix that allows deployment and upgrading of distributed systems from a single declarative description. We will continue this research in the Jacquard PDS project, which has now started. (We still have an opening for a PhD student or a postdoc; please contact us if you’re interested.)
NixOS paper accepted at ICFP!
— Published onThe paper “NixOS: A Purely Functional Linux Distribution” (by Eelco Dolstra and Andres Löh) has been accepted for presentation at the 2008 International Conference on Functional Programming (ICFP). It describes NixOS in much greater detail than last year’s HotOS paper, and argues why the purely functional style and features such as laziness are important for system configuration management. It also provides some measurements on the actual purity of Nix build actions. A draft of the paper is available.
Website back up
— Published onThe Nix website was down for a few days due to cooling problems in the server room causing the machine to overheat. These should be resolved now. Apologies for the inconvenience.
Website / SVN repositories moved
— Published onThe Nix website has moved to nixos.org (hosted at TU Delft). The Subversion repositories have moved to svn.nixos.org. See this mailing list posting for information about moving existing SVN working copies.
LDTA 2008 paper
— Published onEelco Dolstra presented the paper “Maximal Laziness — An Efficient Interpretation Technique for Purely Functional DSLs” at 8th Workshop on Language Description, Tools and Applications (LDTA 2008). It’s about caching of evaluation results in the Nix expression evaluator as a technique to make a simple term-rewriting evaluator efficient. Slides are here.
Jacquard grant proposal accepted!
— Published onThe Jacquard program of NWO and EZ has granted funding for the Nix-related project “Pull Deployment of Services” (PDS), which is about improving the deployment of software and services in complex heterogenous environments. The grant consists of 368 K€ for a PhD student (4 years) and a postdoc (3 years). If you’re interested in these positions, please have a look at this page, and don’t hesitate to contact Eelco Visser or Eelco Dolstra.
New NixOS ISOs
— Published onNew NixOS installation CD images for i686 and x86_64 are available, which is a good thing as the previous ones were already a few months old. The new images are Nix 0.11-based, contain Memtest86+ as a convenience, should support more SATA drives, and show online help (the NixOS manual) on virtual console 7.
Nix 0.11 released
— Published onNixpkgs 0.11 released
— Published onOpenOffice in Nixpkgs
— Published onOpenOffice is now in Nixpkgs (screenshot of OpenOffice 2.2.1 running under NixOS, and another screenshot). Despite being a rather gigantic package (it takes two hours to compile on an Intel Core 2 6700), OpenOffice had only two “impurities” (references to paths outside of the Nix store) in its build process that had to be resolved — a reference to /bin/bash and one to /usr/lib/libjpeg.so.
Armijn Hemel, Wouter den Breejen and Eelco Dolstra contributed to the Nix expression for OpenOffice.
NixOS progress report
— Published onWine now runs on NixOS! Finally we can run all those legacy applications... Thanks to Michael Raskin for adding Wine and a NPTL-enabled Glibc (which Wine seems to need). This is a nice application of purely functional package composition, by the way: Wine didn’t work with the standard Glibc in Nixpkgs, so we just pass it another Glibc at build time.
In other news, Nix 0.11 and Nixpkgs 0.11 will be released soon.
Commits mailing list
— Published onThere is now a mailing list (nix-commits@cs.uu.nl) that you can subscribe to if you want to receive automatic commit notifications from the Nix Subversion repository.
HotOS paper on NixOS
— Published onEelco Dolstra presented the paper Purely Functional System Configuration Management at the 11th Workshop on Hot Topics in Operating Systems (HotOS XI). It gives an overview of the ideas behind NixOS. The slides are also available.
NixOS progress report
— Published onWe now have KDE running on NixOS (obligatory screenshot). Just kdebase for now (Martin Bravenboer already added kdelibs a long time ago so that we could run the wonderful KCachegrind), but it contains all the important stuff (Konqueror, KDesktop, Kicker, Konsole, Control Center, etc.).
In related news, we can safely say that, rumours to the contrary notwithstanding, NixOS is not an April Fools’ Joke.
NixOS progress report
— Published on- X server with Compiz window manager.
- Emacs and a few terminals showing off the (near) absence of /lib, /bin etc.; everything is in the Nix store.
- Some applications.
NixOS manual
— Published onNixOS for x86_64
— Published onNew build farm hardware at TUD
— Published onTo quote Eelco Visser: new hardware for buildfarm at Delft University of Technology has arrived.
Here’s what we have: 5 Intel Core 2 Duo DualCore machines with 1GB RAM, 2 Mac minis with 1,83-GHz Intel Core Duo-processor, another Core 2 Duo a UPS to deal with spikes in power supply, a console with integrated monitor and keyboard switches, a rack with room for a couple more machines.
Here’s what we’re going to do with the goodies. The five Intel machines and the two MacMinis (also Intel) are going to be used to crank at building hundreds of software packages. Using virtualisation we should be able to run builds on multiple operating system distributions. Read more…