Skip to content

feat: Introduce icp:sync-plugin@0.2.0 - #719

Open
adamspofford-dfinity wants to merge 4 commits into
mainfrom
spofford/plugin-multi-versioning
Open

feat: Introduce icp:sync-plugin@0.2.0#719
adamspofford-dfinity wants to merge 4 commits into
mainfrom
spofford/plugin-multi-versioning

Conversation

@adamspofford-dfinity

Copy link
Copy Markdown
Contributor

Update the sync plugin interface to 0.2.0. Both versions are supported side-by-side depending on what version the plugin imports (based on actual version metadata, not probing for e.g. field names).


Stack created with GitHub Stacks CLIGive Feedback 💬

Copilot AI balanced review requested due to automatic review settings August 20, 2026 16:12

Copilot AI 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.

Pull request overview

Introduces sync-plugin ABI v0.2.0 while preserving compatibility with v0.1.x plugins through metadata-based runtime dispatch.

Changes:

  • Adds parallel v1/v2 WIT bindings and ABI detection.
  • Adds a legacy plugin fixture and compatibility test.
  • Updates dependencies and documentation.

Reviewed changes

Copilot reviewed 10 out of 12 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
docs/concepts/sync-plugins.md Documents interface versioning.
crates/icp-sync-plugin/tests/fixtures/test-plugin-v1/src/lib.rs Implements legacy test plugin.
crates/icp-sync-plugin/tests/fixtures/test-plugin-v1/Cargo.toml Configures legacy fixture.
crates/icp-sync-plugin/tests/fixtures/test-plugin-v1/Cargo.lock Locks fixture dependencies.
crates/icp-sync-plugin/tests/fixtures/test-plugin-v1/build.rs Tracks legacy WIT changes.
crates/icp-sync-plugin/sync-plugin.wit Advances current ABI to v0.2.0.
crates/icp-sync-plugin/sync-plugin-v1.wit Preserves the v0.1.0 contract.
crates/icp-sync-plugin/src/runtime.rs Detects and dispatches ABI versions.
crates/icp-sync-plugin/DESIGN.md Documents parallel ABI handling.
crates/icp-sync-plugin/Cargo.toml Adds semver dependency.
crates/icp-sync-plugin/build.rs Builds both test fixtures.
Cargo.lock Records the dependency update.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread crates/icp-sync-plugin/DESIGN.md
@adamspofford-dfinity
adamspofford-dfinity marked this pull request as ready for review August 21, 2026 18:40
@adamspofford-dfinity
adamspofford-dfinity requested a review from a team as a code owner August 21, 2026 18:40
@adamspofford-dfinity
adamspofford-dfinity force-pushed the spofford/plugin-multi-versioning branch from 35b3f24 to db63f13 Compare August 24, 2026 16:43
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