Skip to content

docs: support for stores and bins#72

Draft
upils wants to merge 6 commits into
canonical:mainfrom
upils:bin-slices
Draft

docs: support for stores and bins#72
upils wants to merge 6 commits into
canonical:mainfrom
upils:bin-slices

Conversation

@upils

@upils upils commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

This PR documents

  • the new format v4
  • the new stores section in chisel.yaml and the store/default-track fields in slice definitions.

It also updates the explanation and mode-of-operation pages to reflect that packages can now be sourced from stores in addition to Debian archives.

⚠️ This PR must not be merged until the full feature is available in a new release of Chisel.

Signed-off-by: Paul Mars <paul.mars@canonical.com>
@upils
upils requested review from asanvaq and cjdcordeiro July 1, 2026 12:04
Signed-off-by: Paul Mars <paul.mars@canonical.com>
@cjdcordeiro
cjdcordeiro marked this pull request as draft July 1, 2026 12:55
upils added 2 commits July 15, 2026 09:01
Signed-off-by: Paul Mars <paul.mars@canonical.com>
Signed-off-by: Paul Mars <paul.mars@canonical.com>
@upils

upils commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator Author

As the parsing of the new fields is merged in main in Chisel, this PR is ready for a first review. It should probably not be merged yet though, as the whole feature is not done yet in Chisel.

+-----------------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------------------+---------------------------------------------------------------------+
| `26.04 <https://github.com/canonical/chisel-releases/tree/ubuntu-26.04>`_ | x | x | >= `v1.4.0 <https://github.com/canonical/chisel/releases/v1.4.0>`_ | x |
+-----------------------------------------------------------------------------+-------------------------------------------------------+--------------------------------------------------------------------+--------------------------------------------------------------------+---------------------------------------------------------------------+
| `26.10 <https://github.com/canonical/chisel-releases/tree/ubuntu-26.10>`_ | x | x | x | >= `v1.5.0 <https://github.com/canonical/chisel/releases/v1.5.0>`_ |

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Note to reviewer]: I did this under the assumption the next minor version will be cut to release the whole feature supporting bins.

myst:
html_meta:
description: "Explanation of how Chisel works: reading chisel-releases, fetching packages from Ubuntu archives, and extracting selected files into a root file system."
description: "Explanation of how Chisel works: reading chisel-releases, fetching packages from Ubuntu archives and stores, and extracting selected files into a root file system."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Metadata should be max. 160 characters long. This updated increased it to 163, so I propose the following:

Suggested change
description: "Explanation of how Chisel works: reading chisel-releases, fetching packages from Ubuntu archives and stores, and extracting selected files into a root file system."
description: "Explanation of how Chisel works: reading chisel-releases, fetching packages from Ubuntu archives and stores, and extracting files into a root file system."

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should keep the "selected" term as this is an important concept in Chisel. Using slices is doing a selection of files from packages. Chisel only extract the selected files.

Packages are typically fetched from {ref}`archives<chisel_yaml_format_spec_archives>`,
which are Debian archives Chisel talks to directly by fetching, validating and
parsing their `InRelease` files. Packages may also be fetched from
{ref}`stores<chisel_yaml_format_spec_stores>`, which serve packages via a store

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to decide on the capitalisation of "stores" and use it throughout. Here it is lowercase, while in the reference it is capitalised. Is it a particular store, or a store in general?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is "store in general", so it should be lowercase. This will also be consistent with how we use "archive" throughout the docs.

Comment thread docs/explanation/slices.md
Comment thread docs/reference/chisel-releases/chisel.yaml.md Outdated
Comment thread docs/reference/chisel-releases/chisel.yaml.md
Signed-off-by: Paul Mars <paul.mars@canonical.com>
@upils
upils requested a review from asanvaq July 17, 2026 06:34
Comment on lines +92 to +97
```{note}
The `archive` field and the {ref}`store<slice_definitions_format_store>`
field are mutually exclusive: a package must be fetched from either an
archive or a store, but not both.
```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For consistency with L111-113, I recommend putting this directly in the text and not in an admonition. I think we should reserve admonitions for things such as breaking changes or version compatibility statements, which is what is being done in the rest of this PR.

package.

This field is required when {ref}`store<slice_definitions_format_store>` is
set, and must not be set when `store` is not set.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small nit, the word "set" is used a lot in a very short sentence, I propose replacing one of them.

Suggested change
set, and must not be set when `store` is not set.
set, and must not be included when `store` is not set.

@asanvaq asanvaq left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for applying the changes for the first part. Overall, this looks great, thank you very much!

I have left some more comments on the remaining parts.

Signed-off-by: Paul Mars <paul.mars@canonical.com>
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.

2 participants