feat: Allow specifying sync steps in conjunction with recipes - #731
Open
adamspofford-dfinity wants to merge 3 commits into
Open
feat: Allow specifying sync steps in conjunction with recipes#731adamspofford-dfinity wants to merge 3 commits into
adamspofford-dfinity wants to merge 3 commits into
Conversation
adamspofford-dfinity
force-pushed
the
spofford/multi-sync
branch
from
August 26, 2026 17:53
39494f2 to
1e715d1
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
Enables canisters using recipes to append custom sync steps after recipe-provided steps.
Changes:
- Extends recipe manifests and consolidation logic with optional sync steps.
- Updates schemas and documentation.
- Adds unit and CLI integration tests.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
CHANGELOG.md |
Records the feature. |
crates/icp/src/manifest/canister.rs |
Parses recipe sync configuration. |
crates/icp/src/project.rs |
Appends manifest sync steps after recipe steps. |
crates/icp-cli/tests/recipe_tests.rs |
Tests effective sync ordering. |
docs/schemas/icp-yaml-schema.json |
Updates project schema. |
docs/schemas/canister-yaml-schema.json |
Updates canister schema. |
docs/reference/configuration.md |
Documents configuration syntax. |
docs/guides/using-recipes.md |
Adds usage guidance. |
docs/concepts/recipes.md |
Clarifies recipe and sync semantics. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
adamspofford-dfinity
force-pushed
the
spofford/multi-sync
branch
3 times, most recently
from
September 1, 2026 18:21
1454886 to
91e4f7e
Compare
adamspofford-dfinity
force-pushed
the
spofford/multi-sync
branch
from
September 2, 2026 16:37
91e4f7e to
1439e99
Compare
adamspofford-dfinity
marked this pull request as ready for review
September 3, 2026 15:31
raymondk
force-pushed
the
spofford/multi-sync
branch
from
September 3, 2026 17:17
f1d9584 to
8014f94
Compare
adamspofford-dfinity
force-pushed
the
spofford/multi-sync
branch
from
September 3, 2026 18:08
8014f94 to
fafce44
Compare
adamspofford-dfinity
force-pushed
the
spofford/multi-sync
branch
from
September 3, 2026 19:41
fafce44 to
c6cf777
Compare
adamspofford-dfinity
force-pushed
the
spofford/multi-sync
branch
from
September 3, 2026 21:18
c6cf777 to
b4a407f
Compare
adamspofford-dfinity
force-pushed
the
spofford/multi-sync
branch
from
September 4, 2026 10:41
b4a407f to
c690882
Compare
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
adamspofford-dfinity
force-pushed
the
spofford/multi-sync
branch
from
September 4, 2026 10:42
c690882 to
57436ca
Compare
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.
Currently you can either specify
build:andsync:or a recipe. But while a build owns the WASM module end-to-end as part of a toolchain, syncing is part of the canister rather than the toolchain, so projects should be able to define sync steps without restructuring their configuration. This PR makes it so that you can addsync:even if you are already using a recipe.Stack created with GitHub Stacks CLI • Give Feedback 💬