Skip to content

Record the names of the sources defaultEcosystemSrc selects - #54

Merged
clhodapp merged 1 commit into
mainfrom
feat/ecosystems-record
Oct 24, 2026
Merged

clhodapp merged 1 commit into
mainfrom
feat/ecosystems-record

Conversation

@clhodapp

Copy link
Copy Markdown
Contributor

The lib manifest gains defaultEcosystemSrcNames. For each ecosystem the tree's defaultEcosystemSrc returns a source for, it holds the name of that source among the pinned sources, or null where the selection builds the value in another way, such as a directory inside a source.

The names are read from the selection applied to a copy of sources in which each source carries its name (resolve/source-names.nix). So recording them forces no source the selection does not read, and every source is not fetched to compare it. caisson-core.selectedSourceName gives the same reading for any selection; caisson uses it for the ecosystemSrc of a configuration.

This is the caisson-core half of the ecosystems record, nix-caisson/caisson#129, which names the source of each part of the stack an evaluation used.

Tests: lifecycleDefaultEcosystemSrcNamesNameTheSelection (a named source, a built value recording null, and an unread source that throws if forced) and resolveSelectedSourceName. All 131 tests and nix flake check pass.

🤖 Generated with Claude Code

…selects

The lib manifest gains defaultEcosystemSrcNames: for each ecosystem the
tree's defaultEcosystemSrc returns a source for, the name of that
source among the pinned sources, or null where the selection builds
the value in another way. The names are read from the selection
applied to a copy of the sources in which each source carries its
name, so recording them forces no source the selection does not read.
selectedSourceName gives the same reading for any selection, such as
the ecosystemSrc of a configuration.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@clhodapp clhodapp self-assigned this Oct 24, 2026
@clhodapp
clhodapp merged commit 68fe584 into main Oct 24, 2026
2 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