# Tweag + Nix Dev Update #5

**URL:** https://discourse.nixos.org/t/tweag-nix-dev-update-5/10560
**Category:** Development
**Created:** [December 17, 2020, 3:10pm UTC](https://discourse.nixos.org/t/tweag-nix-dev-update-5/10560 "2020-12-17T15:10:58Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Infinisil](https://discourse.nixos.org/user_avatar/discourse.nixos.org/infinisil/32/26523_2.png) [@Infinisil](https://discourse.nixos.org/u/Infinisil)
#### Post date: [December 17, 2020, 3:10pm UTC](https://discourse.nixos.org/t/tweag-nix-dev-update-5/10560/1 "2020-12-17T15:10:58Z")

</div>

Here’s what Tweag has been working on relating to Nix since the [last update](https://discourse.nixos.org/t/tweag-nix-dev-update-4/9862)!

## Nix: UX improvements

The `nix` command is currently an experimental replacement for the existing `nix-*` commands. It’s intended to give Nix a user interface for the 2020s. This includes a consistent command line interface, completion for all widely used shells, suggestions for new users, useful error messages, and a good progress indicator. Since the last update, we’ve been working on [a draft Nix CLI guidelines document](https://github.com/NixOS/nix/pull/4302) and [a replacement for the current progress bar](https://github.com/NixOS/nix/pull/4296).

[![asciicast](https://asciinema.org/a/379797.svg)](https://asciinema.org/a/379797)

## Nix: [nixos.org](http://nixos.org) Features page

Continuing with the redesign of [https://nixos.org](https://nixos.org), the Explore/Features page got a nice rework by @garbas, with some furry graphics, [check it out](https://nixos.org/explore.html)!

 ![](https://discourse.nixos.org/uploads/default/original/2X/3/3a0c1c3070b766b6fb720ea2b7e5968e99aaf871.png)

## Nix: Content-addressed derivations

@thufschmitt continues his efforts towards content-addressed derivations. Just recently, he successfully built a fully content-addressed Firefox and graphviz! There’s still some parts missing though, check the [ca-derivations label](https://github.com/NixOS/nix/issues?q=label%3Aca-derivations+) in the issue tracker for seeing the progress. He recently also wrote [a blog post](https://www.tweag.io/blog/2020-11-18-nix-cas-self-references/) about how self-references work with CA derivations if you’re interested in some details. In addition, for the audiophiles out there, you can listen to [a podcast episode](https://www.compositional.fm/content-addressable-nix-1) on this topic!

## Nickel

@yannham continues his work on the [Nickel language](https://www.tweag.io/blog/2020-10-22-nickel-open-sourcing/):

- It now has a structopt-based command line parser, with a number of subcommands.
- It can now serialize to JSON and raw strings using `nickel export`.
- It gained a subcommand for querying individual fields in records, similar to `nixos-option`.
- The syntax for static type annotations is [now just](https://github.com/tweag/nickel/pull/219) [a colon](https://github.com/tweag/nickel/pull/219) (`:`).
- The syntax for interpolated strings was changed from `${` to variable-length `#{`. Multiline interpolated strings only interpolate the corresponding number of `#`'s:

```auto
  m#"
  #{"this is" + "interpolated"}
  ##{"this isn't"}
  "#m

```

- Initial work on [open record contracts](https://github.com/tweag/nickel/pull/217), which are similar to Nix’s ellipses (`…`) in function arguments, checking presence/conformity of some fields, while also allowing additional ones.

## “Top secret” project: Trustix

Last update teased this already, but now we can finally tell you about it. In short, Trustix implements distributed trust and reproducibility tracking for binary caches, which is really exciting for the decentralization of Nix! It is developed by @adisbladis. For more info, check out [the blogpost](https://www.tweag.io/blog/2020-12-16-trustix-announcement/) for it!

## Nix: Misc

- @adisbladis made [a performance improvement](https://github.com/NixOS/nixpkgs/pull/104744) to nixpkgs `lib.unique`, which in turn allowed the evaluation of `pkgs.texlive` to [use 2.6 times less memory](https://github.com/NixOS/nixpkgs/pull/104773)!
- @edolstra has continued work on [optimizing Nix function calls](https://github.com/NixOS/nix/pull/3718)
- Adam is continuing maintenance of [poetry2nix](https://github.com/nix-community/poetry2nix)[.](https://github.com/nix-community/poetry2nix)
- @guibou has started some efforts for improving Nix’s evaluation performance by improving the memory layout. Initial tests reveal a potential reduction of memory usage by 5%!
- @edolstra made some changes to [project-local `nix.conf`](https://github.com/NixOS/nix/pull/4189) [settings](https://github.com/NixOS/nix/pull/4189): Nix now [interactively asks](https://github.com/NixOS/nix/commit/0287f8305790a87b128ce09d7d3fa0de7104673c) before using such values and [stores the result](https://github.com/NixOS/nix/commit/9a586e34ac3ae37bfd18f4e82af26df938ab9d96).
- [RFC 67 meeting #1](https://github.com/NixOS/rfcs/pull/67#issuecomment-729051585) was held with @Infinisil as the shepherd leader. A change in this RFC’s direction has great potential at improving nixpkgs overriding.
- Another [RFC 42 meeting](https://github.com/NixOS/rfcs/pull/42#issuecomment-730490213) was held with @Infinisil being the author. Not much is needed for it to be accepted.
- The [nix-serve](https://github.com/edolstra/nix-serve) command has seen some love, including a bug fix for “hash mismatch” errors on the client side.
- @Infinisil has continued working on [a nixpkgs PR](https://github.com/NixOS/nixpkgs/pull/97023) that improves module system assertions and warnings, allowing them to be disabled/changed, and makes them usable in submodules as well (meaning `mkRenamedOptionModule` and co. work in submodules too!)

---

<div class="post-metadata">

### Author: ![blaggacao](https://discourse.nixos.org/letter_avatar_proxy/v4/letter/b/8edcca/32.png) [@blaggacao](https://discourse.nixos.org/u/blaggacao)
#### Post date: [December 17, 2020, 9:15pm UTC](https://discourse.nixos.org/t/tweag-nix-dev-update-5/10560/2 "2020-12-17T21:15:56Z")

</div>

lovely. for not to say: exciting. investing trust into the nix ecosystem has been a good choice.

---

<div class="post-metadata">

### Author: ![fintohaps](https://discourse.nixos.org/user_avatar/discourse.nixos.org/fintohaps/32/3263_2.png) [@fintohaps](https://discourse.nixos.org/u/fintohaps)
#### Post date: [December 21, 2020, 7:29pm UTC](https://discourse.nixos.org/t/tweag-nix-dev-update-5/10560/3 "2020-12-21T19:29:20Z")

</div>

> [@Infinisil](#):
>
> “Top secret” project: Trustix

This sounds super cool! I’ll be looking forward to seeing how this project progresses 😁 I’m currently one of the developers on [radicle.xyz](https://radicle.xyz/), and I feel like the desires here are related 🙂

---

<div class="post-metadata">

### Author: ![paralin](https://discourse.nixos.org/user_avatar/discourse.nixos.org/paralin/32/3508_2.png) [@paralin](https://discourse.nixos.org/u/paralin)
#### Post date: [December 30, 2020, 2:26am UTC](https://discourse.nixos.org/t/tweag-nix-dev-update-5/10560/4 "2020-12-30T02:26:51Z")

</div>

That progress bar is AWESOME. Massive improvement.
