Hello Nixers! Some news from the Tweag Nix team since the previous update.
Berfore anything else, we’re sad to announce that @solene is leaving Tweag, and wish her the best of success with her new endeavors.
Thank you very much for your dedicated work in open source. In your short time with us you made the Nix ecosystem a better place for everyone.
Nickel-Nix
A (relatively) big focus of the team has been the work on Nickel-Nix.
With the release of Nickel 1.0, we’ve started looking more deeply into this experiment, and see how far we could push it.
- The first part of that work (thanks to @YorikSar) was to try and port a non-trivial generic shell environments (the Haskell one from this blog post) and see how well we could express it with the current framework.
As expected, the result was mixed: Writing the definition was a bit more painful than Nix (and some things couldn’t be implemented at all), but using it is quite nicer, and (although that doesn’t show in this example) much more flexible. - @balsoft also started looking into generating Github action files straight from the Nickel shell declaration to reduce boilerplate.
- Most of the rest of the work has been cleaning (thanks @YorikSar and @balsoft) up the codebase which was very quickly crammed together before last FOSDEM, so not much to show there.
An interesting refactoring was #79 which went through some clever hops to remove the need for--impure
on Nickel-Nix powered shells. - Trying to look into the future, @thufschmitt opened #82 which documents the (hopefully) future state of the project.
Nix
-
@fricklerhandwerk and @thufschmitt continued working with the Nix maintenance team to keep the project healthy, triaging and reviewing a number of different pull-requests and issues.
-
@fricklerhandwerk, at the intersection with the documentation effort, collaborated closely with Nix maintainers @Ericson2314 (Obsidian Systems) and @roberth (Hercules CI) to get reference documentation closer to source code, documenting core concepts, and improving readability and discoverability.
A few highlights
- https://github.com/NixOS/nix/pull/8330
- reword description of how realisation works by fricklerhandwerk · Pull Request #7592 · NixOS/nix · GitHub
- add information on the system type string by fricklerhandwerk · Pull Request #8315 · NixOS/nix · GitHub
- split nix.conf man page into sections by fricklerhandwerk · Pull Request #8532 · NixOS/nix · GitHub
- Add description for file system objects by fricklerhandwerk · Pull Request #8500 · NixOS/nix · GitHub
-
@balsoft reworked his pull-request allowing partial garbage collection.
-
One very late (but still better than never) fix by @thufschmitt also got merged with #4282 which fixes a soundness issue with the hashing of CA paths with references (CA-derivations in particular).
- This accidentally broke the i686 builds, so @thufschmitt wrote #8525 to fix it.
-
Following a review by the Nix team, @thufschmitt added some tests for Add an owner check when searching for the flake root by thufschmitt · Pull Request #6464 · NixOS/nix · GitHub
-
@thufschmitt also updated his (old) pull-request allowing the GC to run as a non-root user, and @alexShabalin gave it a (useful) security review.
-
@thufschmitt and @infinisil pursued their work as shepherds for RFC 136 on the Nix experimental features stabilisation.
The shepherd committee now asked for this RFC to enter FCP to either get more eyeballs or get accepted. -
@fricklerhandwerk and @yorickvP continued developing RFC 137 on versioning the Nix language and incorporated lots of helpful comments (in particular by @pennae, @sternenseemann and @piegamesde – thank you very much!). There is still more work to do, as new considerations and alternatives are unearthed.
Nixpkgs
- Funded by Antithesis (and with help from @roberth), @infinisil and @fricklerhandwerk have been continuing the work on file set combinators (mainly on [WIP] File set combinators by infinisil · Pull Request #222981 · NixOS/nixpkgs · GitHub).
-
@infinisil also kept leading the Nixpkgs architecture team. In particular:
- Working on RFC 140, he asked to move it out of FCP as some interesting new ideas got bounced around during that period, warranting giving it another pass.
The RFC then went into FCP again after these got resolved.
- Working on RFC 140, he asked to move it out of FCP as some interesting new ideas got bounced around during that period, warranting giving it another pass.
- @infinisil held a meeting with the author and other shepherds of RCF 127 to wrap it up and send it for FCP.
CUDA
A few months ago @ConnorBaker to improve the state of the CUDA ecosystem packaging in Nixpkgs in his free time.
This caught the attention of a few others, so that PDT Partners decided to help Tweag kickstart funding for his work in order to give him time to coordinate the effort around this.
The CUDA team roadmap announcement sums up the past and future work, which sets a example in terms of community initiative.
Teaching and documentation
- @infinisil and @YorikSar released yet a few extra issues of the Nix hour
- @fricklerhandwerk and @infinisil worked with the documentation team and the dedicated Learning Journey Working Group on the first phase of the documentation project that was successfully funded through Open Collective (thanks a lot to @zmitchell, @pennae, @roberth, @henrik-ch, @proofconstruction, @j-k and all the others who keep at it tirelessly!). Due to unfortunate personal circumstances, the pace is slower than expected and a slight shift of focus was necessary. But we are well within budget (also thanks to extraordinary volunteer contributions) and on track to deliver significant improvements to organisation and discoverability of documentation relevant for common use cases.
Community work
@fricklerhandwerk was appointed NGI project manager for the NixOS Foundation as an indepentent contractor, and already started working on the relevant items.
@thufschmitt has been working with the foundation board to finalize the contract.
And that’s all, folks.