The road to Nix, a functional package manager to rule them all


Daily progress update:

  • Fixed iOS build, all PR builds are now green.
  • Merged yesterday’s spin-off PR.
  • Testing other workflows to see if nothing was broken by PR branch.


Daily progress update:

  • Started looking into migrating from node2nix to yarn2nix for mobile builds. node2nix was initially used for the Reproducible Builds branch due to perceived better extensibility and sophistication. However, now that hindsight is 20/20 and we’re aware of all the pitfalls, I’ve confirmed that yarn2nix is enough for our needs, and brings the following advantages:
    • we get to keep the mobile_files/yarn.lock file everyone is already used to;
    • yarn2nix doesn’t require the generation of a nix expression from the package.json file. It is smart enough to generate it on-the-fly for a yarn.lock file (which is already deterministic anyway), so it greatly simplifies ongoing maintenance;
    • we don’t need to add special patching for realm, since all the yarn2nix does is leverage yarn’s offline cache support.

With this in mind, I’ll bring the yarn2nix work into the fold of the upcoming PR, even if that causes 1-2 days of extra work.


The Reproducible Android builds PR is now ready for review:


The Reproducible Android builds PR has now been merged. We officially have reproducible Android builds! :tada: