refactor(deps): migrate internal provable-contracts → aprender-contracts (#895)#896
Merged
noahgift merged 4 commits intoApr 22, 2026
Merged
Conversation
…e `aprender-contracts` (#895) KAIZEN-0091 — switch 9 internal sub-crates + workspace root from the deprecated crates.io `provable-contracts = "0.2"/"0.3"` to the canonical path-based `aprender-contracts`/`aprender-contracts-macros` workspace members. Zero Rust source edits: `aprender-contracts` keeps `[lib] name = "provable_contracts"` (and `provable_contracts_macros`), so every existing `use provable_contracts::*` / `#[contract]` call site continues to compile unchanged. Migrated Cargo.toml files: - Cargo.toml (workspace root — drop crates.io deps) - crates/apr-cli/Cargo.toml - crates/aprender-compute/Cargo.toml - crates/aprender-core/Cargo.toml (main + dev-dep) - crates/aprender-orchestrate/Cargo.toml (optional deps + `agents-contracts` feature list) - crates/aprender-present-core/Cargo.toml - crates/aprender-present-lib/Cargo.toml (dev-dep) - crates/aprender-serve/Cargo.toml (main + dev-dep) - crates/aprender-simulate/Cargo.toml (main + dev-dep) - crates/aprender-train/Cargo.toml (main + dev-dep) Verification: - `cargo check --workspace --all-targets` — clean (only pre-existing `aprender-verify-ml` bench error, unrelated to this migration) - `cargo test -p aprender-core --lib` — 13,031 passed / 0 failed - `cargo tree -p aprender-core --duplicates` — no `aprender-contracts*` duplication - `grep -rn 'provable-contracts' crates/*/Cargo.toml Cargo.toml` — only the `package = "aprender-contracts*"` rename inside the `aprender-contracts` crate's own self-plumbing plus two clippy-lint comments (expected) The residual crates.io `provable-contracts-macros v0.2.2/v0.3.1` that still appears in `cargo tree` is pulled transitively by the crates.io published versions of trueno / renacer / aprender-profile@0.29 / etc. Those are external deps outside this repo's control and are cleared by the ongoing APR-MONO consolidation in its usual lane — not a blocker for this ticket, which only targets *internal* deps per the issue text. Unblocks ~8 downstream paiml repos (bashrs, forjar, batuta, entrenar, copia, manzana, organizational-intelligence-plugin, pmat's ecosystem) that are still on the legacy crate. Refs: #895, KAIZEN-0091, paiml-mcp-agent-toolkit#337 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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.
Closes #895 — KAIZEN-0091.
Summary
Migrates 9 internal aprender sub-crates + workspace root from the deprecated crates.io
provable-contracts = "0.2"/"0.3"to the canonical path-based workspace membersaprender-contracts/aprender-contracts-macros.Zero Rust source edits.
aprender-contractskeeps[lib] name = "provable_contracts"(andprovable_contracts_macros), so every existinguse provable_contracts::*/#[contract]call site continues to compile unchanged.What changed
Cargo.tomlprovable-contracts = "0.3"+provable-contracts-macros = "0.3"from[workspace.dependencies]crates/apr-cli/Cargo.tomlprovable-contracts-macros→aprender-contracts-macros = { workspace = true }crates/aprender-compute/Cargo.tomlcrates/aprender-core/Cargo.tomlcrates/aprender-orchestrate/Cargo.tomlagents-contractsfeature list renamedcrates/aprender-present-core/Cargo.tomlcrates/aprender-present-lib/Cargo.tomlcrates/aprender-serve/Cargo.tomlcrates/aprender-simulate/Cargo.tomlcrates/aprender-train/Cargo.tomlNet diff: +29 / −59 across 11 Cargo files + Cargo.lock.
Acceptance criteria
grep -rn 'provable-contracts' crates/*/Cargo.toml Cargo.tomlreturns only thepackage = \"aprender-contracts*\"rename insideaprender-contracts's own self-plumbing plus 2 clippy-lint comments (expected).cargo check --workspace --all-targets— clean. (Pre-existingaprender-verify-mlbench error is unrelated — verified by stashing this PR's changes.)cargo test -p aprender-core --lib— 13,031 passed / 0 failed.cargo tree -p aprender-core --duplicates— noaprender-contracts*duplication.Residual transitive pulls
cargo tree --invert provable-contracts-macrosstill showsv0.2.2/v0.3.1from crates.io, but these are pulled by the externally published versions oftrueno v0.17.5/renacer v0.11.0/aprender-profile v0.29.0/ etc. Those are out of scope for this ticket — issue #895 targets internal deps, and the external cascade is handled by the existing APR-MONO consolidation lane.Risk
Low. Cargo.toml-only, preserves the exact
provable_contracts/provable_contracts_macroslib names that Rust source code imports. Rollback: revert this single commit.Unblocks
~8 downstream paiml repos (bashrs, forjar, batuta, entrenar, copia, manzana, organizational-intelligence-plugin, pmat) still on the legacy crate — each can now adopt the same pattern against the aprender workspace.
Test plan
cargo check --workspace --all-targetscargo test -p aprender-core --libcargo test -p aprender-{serve,train,compute,orchestrate,simulate,present-core,present-lib} --lib --no-runcargo test -p apr-cli --lib --no-runcargo tree -p aprender-core --duplicates— no new duplicates introducedci / gate+workspace-testgreen (set by branch protection)🤖 Generated with Claude Code