Skip to content

feat: support channel syntax in package slices file - #323

Open
upils wants to merge 7 commits into
canonical:mainfrom
upils:channel-sdf
Open

feat: support channel syntax in package slices file#323
upils wants to merge 7 commits into
canonical:mainfrom
upils:channel-sdf

Conversation

@upils

@upils upils commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator
  • Have you signed the CLA?

Adds a channel field to slice definition files, so a single definition can describe content that differs across the channels of a store package. Values are <track>/<risk> patterns where the risk part accepts * (any risk), !<risk> (any but that one) and <risk>,<risk> (only those); a list is a union, and a track may appear at most once. The field is accepted on contents paths and on essential entries, requires store and format v3+, and behaves like arch throughout: non-matching entries are silently skipped, conflict validation and the manifest ignore it.

Motivation: a store holds one bin per channel, but a chisel-release has a single SDF per package, so until now there was no way to say "this path exists only in a given track". Patterns are kept as written and interpreted on each match — the structure strdist uses for globs — and validated when the release is read, so malformed values fail on ReadRelease rather than on cut.

Two aspects worth noting for reviewers. First, channels are resolved from each package's default-track with the stable risk, before dependency ordering, because ordering itself gates channel-specific essentials — a package pulled in only through essential must already know its channel. Second, without CLI channel selection (follow-up PR) the resolved channel is constant per package, so the field is currently dormant: the grammar, validation and filtering machinery are in place and exercised by tests, and Selection.Channels is ready for the CLI and store-fetch work to activate.

@upils upils changed the title Channel sdf feat: support channel syntax in package slices file Sep 3, 2026
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