Skip to content

Record the package config and the namespaces of each configuration - #130

Merged
clhodapp merged 2 commits into
mainfrom
feat/namespaces-and-pkgset-record
Oct 24, 2026
Merged

clhodapp merged 2 commits into
mainfrom
feat/namespaces-and-pkgset-record

Conversation

@clhodapp

@clhodapp clhodapp commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Builds on nix-caisson/caisson-core#55, merged, which publishes namePathOf. The locks pin caisson-core main at its merge commit, c2f690e.

This is item 5 of what topside needs from the record. It feeds topside pkgsets and topside namespace (design section 15).

  • pkgSet (lib.caisson.integrations.pkgSetAccountOf): every configuration records { name; level; }. name is the package config whose set the selection in force returns. It is read from the selection applied to the available sets tagged with their names, so it is null where a selection builds its set in another way. level is the name path of the configuration that made the selection: the configuration itself for its own defaultPkgs, or the nearest configuration above that selected with defaultPkgs or caisson.forChildren.defaultPkgs. With no selection it records default and a null level. A configuration evaluated once for every system, such as a structural configuration or a flake, records the level alone.
  • namespaces (namespacesOf): every configuration records the attribute names of each lib.caisson.<integration> and of lib.caisson-core for the lib it runs on. Names only, so nothing is forced past the keys.

Tests: a configuration records the package config it runs on and who selected it covers each channel of a selection: a structural configuration's own defaultPkgs, a configuration beneath that selects again, a host's caisson.forChildren.defaultPkgs, and a configuration with no selection, plus the namespaces. The full nix flake check passes, VM tests included.

🤖 Generated with Claude Code

…ach configuration

Every configuration records pkgSet: the name of the package config
whose set it runs on, read from the selection in force applied to the
sets tagged with their names, and the name path of the configuration
that made the selection. A configuration evaluated once for every
system records the level alone. Every configuration also records
namespaces, the attribute names of lib.caisson and lib.caisson-core
of the lib it runs on, names only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@clhodapp
clhodapp merged commit b99e8cd into main Oct 24, 2026
9 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