Skip to content

Publish updated gp-* crates for newer Wasmtime #5485

Description

@ark0f

Problem

The crates.io publisher rewrites Gear's forked Substrate dependencies to Gear-owned crates such as gp-wasm-interface and gp-runtime-interface. The current pins still point to the historical crates published from gear-tech/substrate branch cl/v1.1.x-crates-io:

  • sp-allocator -> gp-allocator 4.1.2
  • sp-wasm-interface -> gp-wasm-interface 15.0.0
  • sp-wasm-interface-common -> 15.0.0
  • sp-runtime-interface -> gp-runtime-interface 18.0.0

gp-wasm-interface 15.0.0 depends on wasmtime 8.0.1, while the workspace has moved to newer Wasmtime through the Gear Substrate fork. This makes crates.io publish simulation fragile: Gear crates can build locally against the fork, then fail during crates.io verification after dependency rewriting pulls the old gp-* stack.

Proposed solution

Publish a refreshed set of Gear-owned Substrate crates from a new crates.io branch of the Gear Substrate fork, following the earlier cl/v1.0.x-crates-io and cl/v1.1.x-crates-io pattern.

At minimum, publish versions aligned with the current fork for:

  • gp-wasm-interface
  • sp-wasm-interface-common
  • gp-runtime-interface
  • gp-runtime-interface-proc-macro, if required by the runtime-interface version
  • gp-allocator, if its dependency versions need to move with the interface crates

After publishing, update utils/crates-io/src/handler.rs in Gear to rewrite sp-wasm-interface, sp-wasm-interface-common, and sp-runtime-interface to the new published versions.

Validation should include:

  • cargo +stable run --release -p crates-io publish --simulate --registry-path /tmp/cargo-http-registry
  • crates.io verification of gear-sandbox-interface, because it uses sp-runtime-interface and currently exposes the old Wasmtime API mismatch

Alternatives

Keep compatibility shims in Gear crates for the old gp-wasm-interface 15.0.0 API. That can unblock CI temporarily, but it leaves crates.io publication pinned to Wasmtime 8 and makes future Wasmtime migration work harder to reason about.

Metadata

Metadata

Labels

priority: importantHigh priority, should be addressed soonscope: gearGear protocoltype: featNew functionality or user-visible improvement

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions