tools: add a manifest reconciliation tool to refresh the manifest after hook changes#444
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR introduces a post-hook reconciliation step to ensure Chisel’s manifest.wall matches the final rootfs contents after hooks remove files (notably around hidden Python), preventing Snapcraft from seeing packages/libraries that are no longer present.
Changes:
- Add
tools/refresh-manifest.pyto prune stalemanifest.wallentries based on actual rootfs contents, with an option to exclude Python-related entries. - Invoke the reconciliation tool from the
hooksMakefile target after hook execution. - Add
zstdas a build dependency (currently in thechisel-libspart).
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| tools/refresh-manifest.py | New reconciliation tool that filters manifest.wall based on rootfs existence and optional Python exclusion. |
| Makefile | Runs the reconciliation tool after hooks to keep the manifest aligned with the shipped rootfs. |
| snapcraft.yaml | Adds zstd build dependency (needed for zstdcat/zstd used by the reconciliation tool). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…ry, couple of styling changes, additionally we must update the entry count in the manifest header, this was missing
valentindavid
approved these changes
May 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Snapcraft uses the chisel manifest to detect packages installed, and due to the hooks trimming packages, including the python hiding, the manifest unfortunately defines packages/libraries that are simply not available. This breaks snap builds against core26.
Overall the script does two things;
SNAPDENG-36930