Skip to content

refactor(deps): migrate internal provable-contracts → aprender-contracts (#895)#896

Merged
noahgift merged 4 commits into
mainfrom
feat/migrate-provable-contracts-to-aprender-contracts
Apr 22, 2026
Merged

refactor(deps): migrate internal provable-contracts → aprender-contracts (#895)#896
noahgift merged 4 commits into
mainfrom
feat/migrate-provable-contracts-to-aprender-contracts

Conversation

@noahgift

Copy link
Copy Markdown
Contributor

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 members aprender-contracts / aprender-contracts-macros.

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.

What changed

File Change
Cargo.toml Drop provable-contracts = "0.3" + provable-contracts-macros = "0.3" from [workspace.dependencies]
crates/apr-cli/Cargo.toml provable-contracts-macrosaprender-contracts-macros = { workspace = true }
crates/aprender-compute/Cargo.toml same
crates/aprender-core/Cargo.toml main dep + dev-dep both repointed
crates/aprender-orchestrate/Cargo.toml optional deps + agents-contracts feature list renamed
crates/aprender-present-core/Cargo.toml same
crates/aprender-present-lib/Cargo.toml dev-dep repointed
crates/aprender-serve/Cargo.toml main dep + dev-dep both repointed
crates/aprender-simulate/Cargo.toml same
crates/aprender-train/Cargo.toml same

Net diff: +29 / −59 across 11 Cargo files + Cargo.lock.

Acceptance criteria

  • grep -rn 'provable-contracts' crates/*/Cargo.toml Cargo.toml returns only the package = \"aprender-contracts*\" rename inside aprender-contracts's own self-plumbing plus 2 clippy-lint comments (expected).
  • cargo check --workspace --all-targets — clean. (Pre-existing aprender-verify-ml bench 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 — no aprender-contracts* duplication.
  • All 9 migrated sub-crates compile their test binaries cleanly.

Residual transitive pulls

cargo tree --invert provable-contracts-macros still shows v0.2.2 / v0.3.1 from crates.io, but these are pulled by the externally published versions of trueno 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_macros lib 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-targets
  • cargo test -p aprender-core --lib
  • cargo test -p aprender-{serve,train,compute,orchestrate,simulate,present-core,present-lib} --lib --no-run
  • cargo test -p apr-cli --lib --no-run
  • cargo tree -p aprender-core --duplicates — no new duplicates introduced
  • GitHub CI ci / gate + workspace-test green (set by branch protection)

🤖 Generated with Claude Code

noahgift and others added 2 commits April 18, 2026 19:21
…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>
@noahgift noahgift enabled auto-merge (squash) April 22, 2026 09:12
@noahgift noahgift merged commit 371a403 into main Apr 22, 2026
10 checks passed
@noahgift noahgift deleted the feat/migrate-provable-contracts-to-aprender-contracts branch April 22, 2026 14:39
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.

Migrate internal deps from deprecated provable-contracts crate to aprender-contracts (6 sub-crates + workspace root)

1 participant