2024 Summer of Nix program updates

Hello everyone, and welcome to Summer of Nix 2024!

My name is Valentin, and together with @mightyiam I organise the fourth edition of the northern-hemisphere summer program on behalf of the NixOS Foundation. Summer of Nix is a coordinated effort to support selected free and open source software (FOSS) projects, by making them available as Nix packages or NixOS service modules. It is funded by the European Commission’s Next Generation Internet (NGI) initiative through the NLNet Foundation and the NixOS Foundation, this year with 135 000 EUR available for development.

Our mission is, as codified in our latest grant agreement with the European Commission:

Cross-platform reproducible packaging & distribution (NixOS)

To onboard new developers, service providers and end users, projects need both an up-to-date development & testing environment as well as turn-key software packages for deployment. We are unique in providing a common packaging solution based on Nix - across all previous and ongoing NGI Zero programmes and available to all other NGI programmes courtesy of the ongoing CSA NGI Zero Review. Nix is the next-generation vendor-agnostic package solution - one shared and reliable way of delivering software for Linux, Mac OS X and other Unix systems. Nix makes package management not only portable, transparent and reproducible – it has in fact more software packaged than any other software distribution in the world. We package all funded projects in a declarative, transparent and verifiable way. NGI Zero and the Nix community will also help organise three editions of the Summer of Nix. With Nix packaging applied horizontally across all NGI Zero programmes, this common packaging approach offers a smooth and efficient pathway to deployment.

More information on Summer of Nix and its role in the European Commission’s NGI program as well as last year’s proceedings can be found in the 2023 Summer of Nix thread. You can browse the reports from 2021, 2022, and 2023 and this year’s call for participants for details if you’re curious.

Goals

In the following months we’ll pursue the following goals:

Team

The application process has concluded mid May, with each team lead receiving around 70 applications. Thanks to everyone who got in touch, we had many more great candidates than could be accommodated!

This year’s team leads @Janik @jleightcap @JulienMalka selected a total of 12 participants from across the globe, who will soon get together to work on getting ever more software to run on a whim, and share knowledge on disciplined software development with Nix. @mightyiam has already been at it for a month with another 6 people working in two groups. In the past weeks, @lorenzleutgeb @erethon @wegank have been taking care of infrastructure, code organisation, and contributor documentation, to make it a smooth experience for this year’s participants and future contributors. I’ll be around to answer questions, support the group on administrative matters, and provide technical direction where needed.

Stay up to date

I will post (roughly) monthly updates in this thread. If you have any questions, feel free to ask them here or contact me in private messages.

Have a great Summer of Nix!

14 Likes

Next week, Thursday 2023-06-13 12:00 UTC, @mightyiam and mob “cake” will stream an open mob programming session to give an impression of what’s happening on the technical side of Summer of Nix. This may be particularly interesting if you would like to:

  • learn more about remote mob programming
  • get a taste of disciplined software development with Nix and NixOS
  • peek behind the curtains of cutting-edge free and open source software
5 Likes

Another update on Summer of Nix:

Thank you everyone for digging into the details!

We’re very sad to see @Janik leave the team. Thank you very much for your invaluable work on everything Nix!

9 Likes

Updates from Summer of Nix in July 2024:

The teams are continuously adding more packages and modules with support from our mentors.

  • @ron from the NixOS Foundation board approved using part of the NGI operational budget for developing our documentation infrastructure. @getpsyched will pick up work on the Nixpkgs and NixOS manuals to display them as multiple smaller pages and port over facilities for testing examples automatically from NGIpkgs. We hope this will improve the experience for all NixOS users and also ease discoverability of the work done for our NGI collaboration.
  • @eljamm merged naja into Nixpkgs with reviews by @opna2608. Naja is described by its authors as an Electronic Design Automation (EDA) project that provides open source data structures and APIs for the development of post logic synthesis EDA algorithms such as: netlist simplification (constant and dead logic propagation), logic replication, netlist partitioning, ASIC and FPGA place and route, …
  • @eljamm and @Atemu continued work on GNU Taler, extending the NixOS VM tests to ensure the workflow is covered end-to-end. The tests now register an exchange and make a withdrawal, and are factored into separate steps to ease debugging. A Merchant is also running without issue. The next step will be setting up Nexus.
  • @opna2608 picked up Libervia and built a service module for the backend. Getting the GUI to run is still facing some obstacles.
  • @infinidoge made some progress on getting PeerTube plugins installation to work offline (and is still fighting against Yarn), which would eventually enable upstreaming the recent work on providing plugins to Nixpkgs.
  • @feathecutie packaged inko, a programming language for building concurrent software, and a service module for Misskey, a microblogging platform.
  • @supinie packaged aerogramme, standards-compliant open-source Rust IMAP server with server-side encryption.
  • @erictapen migrated Weblate from the flake created for Summer of Nix 2021 into Nixpkgs. Thanks @Radvendii for additional reviews!
  • @wegank kept fixing up breakages that occurred with automatic updates, and reviewed numerous pull requests.
  • @aynish and @albertchae slowly continued making service modules for Atomic Data
  • @matthewcroughan improved testing of the SCION module
  • I’ve met with the NGI0 communications working group to discuss the open letter to the European Commission, and also spent time with various past and present contributors to plan ahead for next year.

Thank you everyone for the great work! Stay tuned for more updates.

10 Likes

I didn’t get to publish updates because of conflicting priorities, but rest assured that Summer of Nix participants were busy making more software run reliably on a whim. There’s more to say about how things are going, but for now I’ll just drop our key performance indicator: completeness of packaging.

A package is not just a package. Some projects map to more than one derivation, some need NixOS service modules to be usable. And since services are custom downstream code, they not only need testing but also documentation in the form of examples (ideally tested themselves).

The following chart is programmatically generated from the NGIpkgs repository, and shows which components are readily available for each project. The bar segments are scaled to the relative effort of completion, which we estimated based on accounting history.

Thanks a lot @wamirez for digging through the reams of data the program produced this year and helping with structuring it.

We’ll soon publish the full report on Summer of Nix 2024.

4 Likes