Skip to content

feat(certified-assets): publish v0.1.0#30

Draft
lwshang wants to merge 1 commit into
mainfrom
certified-assets-v0.1.0
Draft

feat(certified-assets): publish v0.1.0#30
lwshang wants to merge 1 commit into
mainfrom
certified-assets-v0.1.0

Conversation

@lwshang

@lwshang lwshang commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Publishes the certified-assets recipe at v0.1.0, pinning the canister and sync-plugin wasm from dfinity/certified-assets's v0.1.0 release.

After merge, tag certified-assets-v0.1.0 in this repo to cut the recipe release.

@lwshang lwshang requested a review from a team as a code owner June 16, 2026 15:01
lwshang added a commit to dfinity/certified-assets that referenced this pull request Jun 16, 2026
Most users consume this repo through an **icp-cli recipe** rather than
the raw wasm bundle. This adds the infrastructure to **produce, test,
and publish** a new `@dfinity/certified-assets` recipe.

## What's here

**Produce — one source, two variants** (`crates/recipe-gen/`)
- `src/recipe.hbs.in` is the single template. The user-facing `{{ }}`
handlebars directives survive verbatim because the generator only swaps
two non-handlebars sentinels (`@@CANISTER_SOURCE@@` /
`@@PLUGIN_SOURCE@@`) via plain string substitution.
- `render_recipe(WasmSource::{Local,Release})` emits either a local-path
variant (for in-repo testing) or a release-URL + sha256 variant (for
publishing).
- Config fields: `dir` (singular — sync-core enforces exactly one
directory), `build`, `metadata`. No user `version` field: the recipe
release itself pins a matched canister+plugin pair.
- `make recipe-local` / `make recipe-release` wire it into the build.

**Test**
- 5 `recipe-gen` unit tests render every config combo through the same
`handlebars`/`serde_yaml` versions icp-cli uses and assert valid icp-cli
build/sync YAML (+ missing-`dir` errors, + release URL/sha pinning).
- 3 e2e tests (`crates/e2e/tests/recipe.rs`) deploy through the real
`icp` CLI via `file://` recipes pinning the freshly built wasm:
`recipe_basic`, `recipe_build_step`, `recipe_metadata`.
- `ci.yml` now installs `ic-wasm` (pinned `0.9.11`) so the metadata
recipe test runs ungated.

**Publish** — `scripts/publish-recipe.sh`
- Generates the release recipe (pinning the exact published `.sha256`),
prepares a branch in a sibling `icp-cli-recipes` clone, and opens the
PR. Idempotent prepare/push phases, non-destructive (dirty-tree guard,
fresh branch off `origin/main`, no auto-push without `--push`).

## Recipe PR

The companion recipe was published to the registry with this script:
**dfinity/icp-cli-recipes#30**.

## Notes

- New recipe name `certified-assets` (v1.x.y line), leaving the old
SDK-based `asset-canister` recipe untouched.
- After a `v<version>` release of this repo exists, run
`scripts/publish-recipe.sh v<version> --push`; after that PR merges, tag
`certified-assets-v<version>` in icp-cli-recipes to cut the recipe
release.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@raymondk raymondk marked this pull request as draft June 19, 2026 16:02
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