Skip to content

Build the standard environment packages from the stable Nixpkgs - #98

Merged
thomasjm merged 3 commits into
mainfrom
stable-nixpkgs-for-standard-packages
Aug 27, 2026
Merged

Build the standard environment packages from the stable Nixpkgs#98
thomasjm merged 3 commits into
mainfrom
stable-nixpkgs-for-standard-packages

Conversation

@thomasjm

@thomasjm thomasjm commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

The Bash kernel, both spellchecker language servers, and the two testing packages were all built
from pkgsMaster. Each one forces the master Nixpkgs tree to be fetched and realised, which costs
466 MB and ~90k filesystem entries in every sandboxed package store that evaluates them.

None of them needed master:

  • testing.builds-forever / testing.builder-uid take only runCommand. (Their module versions
    already used config.pkgs; only the top-level attrs in codedown.nix were on master.)
  • The spellcheckers need nodehun, nodejs-slim, hunspell, hunspellDicts and unixtools, all
    present in stable. Fixed in both places that build them: the top-level spellchecker attr that
    packageSearch includes, and the module that environments resolve
    language-servers.spellchecker to.
  • The Bash kernel moved to master in 52196ee because bash_kernel's test suite failed on macOS on
    release-25.05. Stable is now release-25.11 and it builds cleanly there, so it goes back to
    config.pkgs and the stale note about the workaround comes out.

With these, the whole standard package set -- kernels.bash, kernels.python3,
language-servers.spellchecker, shells.bash, shells.zsh -- no longer touches master.

Testing

Evaluated every affected package with pkgsMaster = throw "MASTER FORCED", so any remaining
reference fails loudly; all come back clean, including the standard package set as a whole.

Built on both platforms:

  • kernels.bash on x86_64-linux and on aarch64-darwin (bash_kernel-0.10.0 through
    pythonImportsCheckPhase)
  • both spellcheckers, and each answers an LSP initialize over stdio with its capabilities, so the
    nodehun native module loads

./.aliases/dev-verify-default-nix passes.

Related

The pypy3 kernel work that was originally on this branch is now #100, and the pylint test flake is
#99. Both are independent of this change.

Note that nix flake check fails on main today, on lspProbeEnvs, for a reason unrelated to this
PR; #100 is what fixes that.

@thomasjm
thomasjm force-pushed the stable-nixpkgs-for-standard-packages branch from b3f6441 to 0e69992 Compare August 27, 2026 10:14
@thomasjm
thomasjm merged commit 6b0487f into main Aug 27, 2026
51 of 60 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant