Tweag + Nix dev update #6

A bit more than one month after our last update, here are some highlights of the work of the Tweag Nix team:

Trustix

Adam has been quite busy on the Trustix front:

  • Trustix now has its own webpage at https://build-transparency.org/. Also showing a demo of it in action:

    trustix

  • A lot of work has been put on the frontend. There’s not much to show yet, but it’s progressing

  • The db format has been massaged to make it easier to consume in real-time and muuuuch faster

Nix UX

@edolstra has put a significant effort into the new-style commands, to

  • significantly extend the nix help command, making it display the full man-page when relevant (#4336). Manpages are now in markdown to make the content easily resuable elsewhere.
  • reorganize them to make their usage more consistent (d33eca, 29007f, …)
  • Add several missing ones (#4429)

The CLI guidelines that @garbas wrote have also been merged.

Content-addressed derivations

An experimental branch of hydra now supports building content-addressed derivations. While this probably won’t make it to hydra.nixos.org for some time, it will be tremendously useful to test things at scale.

The Nix implementation also keeps going with some ongoing work to handle signatures of content-addressed derivations.

Nixos.org redesign

@garbas is still doing an herculean work on the website, namely:

Misc.

  • @infinisil has been doing some internal refactorings on the Nix evaluator as a preparation for his work on lazy attribute names
  • @infinisil opened and closed an RFC, leading to some discussions on the design and usage of fixed-output derivations
  • Adam noticed some incorrect 301 redirects in channels.nixos.org leading to people seeing outdated results because of browsers caches
  • @edolstra removed the last bits preventing a statically-linked Nix to work, meaning that it’s now possible to fetch a statically-linked Nix and run ./nix --store ~/my-nix without having to install anything.

Nickel

Although Nickel is technically not a Nix project, it is heavily Nix-inspired and might be of interest to some. So a few words on the awesome work that @yannham is doing on it:

  • There’s a new query subcommand to retrieve the metadata associated to values from the command-line
  • There’s ongoing work for adding a nice REPL (here, here, here and here). Most of this work should also be reusable as the backend for a coming LSP server
  • The project is also getting a new CI setup (thanks to @garbas) to test it against several versions of the rust compiler and make IDE tooling usable in nix-shell or lorri.
22 Likes

is there a reason why pytorchWithCuda is not in the search but pytorchWithoutCuda is?

nix-env -qaP .\*pytorch.\*
nixos.python37Packages.pytorchWithCuda          python3.7-pytorch-1.6.0
nixos.python37Packages.pytorchWithoutCuda       python3.7-pytorch-1.6.0
1 Like

I suspect cuda is unfree.

2 Likes

https://search.nixos.org/packages?channel=20.09&from=0&size=50&sort=relevance&query=google-chrome

pkgs = import <nixpkgs> {} 
pkgs.vscode.meta.license
pkgs.google-chrome.meta.license

There are unfree packages in the search results (but the here mentioned have free = false as a direct attribute - which is not the case e.g. for pytorchWithCuda)

1 Like

Maybe it does not evaluate because cuda need requireFile? (wild guess)

Absolutely loving the new search interface @garbas, amazing work!

@igel Initially I only copied how things were indexed before. I think I only extended it a bit so that we recurse to more package sets. At that point I just opened an issue to improve on this in the future. Since then the plans changed a bit and this will be fixed while switching to flakes, since nix show/info/search command will provide us with all the information needed to import into the elasticsearch.

@teh thank you! Very much appreciated.