Skip to content

feat: release v2.1.0 - #106

Merged
succinctli merged 3 commits into
mainfrom
release-prepare-v2.1.0
Jul 24, 2026
Merged

feat: release v2.1.0#106
succinctli merged 3 commits into
mainfrom
release-prepare-v2.1.0

Conversation

@kaiwei-0

Copy link
Copy Markdown
Contributor

Prepares the v2.1.0 release.

kaiwei-0 and others added 3 commits July 23, 2026 21:59
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@kaiwei-0
kaiwei-0 requested a review from succinctli July 23, 2026 15:07

@succinctli succinctli left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@succinctli
succinctli merged commit f9986aa into main Jul 24, 2026
6 checks passed
@succinctli
succinctli deleted the release-prepare-v2.1.0 branch July 24, 2026 08:57
kaiwei-0 added a commit that referenced this pull request Jul 29, 2026
`cargo install --git https://github.com/brevis-network/pico pico-cli` fails on
v2.1.0:

    error: package `.../examples/aot_common/Cargo.toml` is a member of the
           wrong workspace
    expected: .../Cargo.toml
    actual:   .../examples/Cargo.toml

`perf` is a member of the root workspace, but it path-depended on
`examples/aot_common`, which is a declared member of the nested `examples`
workspace. A git source enumerates the whole repository to find the requested
package, so it loads both workspaces and rejects the conflicting membership.
v2.0.0 installs fine; the dependency came in with #106.

`perf` only ever used one symbol from that crate -- `register_with_vm()`. So it
now carries its own `src/aot_glue.rs` and depends on the generated
`pico-aot-dispatch` directly, which is nobody's declared workspace member and
therefore fine to path-depend on.

This is the pattern already used elsewhere: `cargo pico new` ships the same
file as `prover/src/aot_glue.rs`, and the AOT examples keep their own copy. The
glue has to name the *generated* dispatch crate, and that crate is regenerated
per guest ELF, so a shared library crate cannot hold it -- `aot-runtime` would
form a dependency cycle, since `aot-generated` already depends on it.

`examples/aot_common` is left untouched and stays example-only, which is what
it was for. No root-workspace crate depends on it any more, so the workspace
conflict is gone without touching any AOT execution path: the example binaries
still call `run_aot` as a compile-time symbol and need no registration.

Also drop references to internal branch and repository names from comments
(vm/src/emulator/aot.rs, vm/src/proverchain/riscv.rs,
aot-runtime/src/emulator/memory.rs, aot-codegen/src/compiler.rs) and point
sdk/sdk's AOT note at the generated project's aot_glue.rs.

Verified: `cargo install --git file://<repo> --branch <this>` now passes package
selection (the only path that reproduces the bug -- cargo metadata and CI are
green even on the broken tree); fmt, `cargo metadata --all-features`, the
examples workspace, the CI clippy gate, `cargo check -p pico-perf --features
aot` and the fibonacci AOT example all clean.
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