Goal
Publish v0.32.0 of the user-facing crate set to crates.io after the §50.4 cascade landed. Currently `aprender-rag` v0.32.0 is published (PR #1512); the rest of the user-facing crates (12+) are still at 0.31.2 on crates.io despite local main being at v0.32.0.
Scope
User-facing crates that need v0.32.0 publish:
- aprender (root facade)
- apr-cli (CLI logic)
- aprender-core (`use aprender::*`)
- aprender-compute (was `trueno`)
- aprender-train (was `entrenar`)
- aprender-serve (was `realizar`)
- aprender-contracts (was `provable-contracts`)
- aprender-contracts-cli (was `pv`)
- aprender-contracts-macros
- aprender-graph (was `trueno-graph`)
- aprender-data (was `alimentar`)
- aprender-mcp
- aprender-zram-core (was `trueno-zram-core`)
Already done: aprender-rag v0.32.0 ✓
Blockers identified during dry-run
-
Path-only dev-dep audit needed: `aprender-core`'s dev-deps include `entrenar = { workspace = true }` (= aprender-train), which has a workspace version pin of 0.32.0. cargo publish complains because aprender-train@0.32.0 isn't on crates.io. Same class likely affects 3-5 other publishable crates with internal-dev-deps.
-
Documented architectural cycle: `crates/aprender-core/Cargo.toml` lines 122-124 + 150-153 explicitly note:
- `renacer depends on aprender, so it cannot be a runtime dep` (dev-only currently)
- `realizar optionally depends on aprender. Resolution requires creating a separate quantization crate. See docs/specifications/qwen2.5-coder-showcase-demo.md Section E.7`
The realizar/aprender cycle is documented as architectural — partial fix possible without the separate quantization crate.
-
Topological cargo publish: 13 crates need publishing in dependency order. Each cargo publish has a ~30s upload + ~1-2min crates.io index propagation delay. Total wall: ~30-60 minutes minimum.
-
Pre-existing release policy: `crates/aprender-orchestrate/CLAUDE.md` requires clean-room build green BEFORE any publish (HARD GATE). v0.31.1 was YANKED per `feedback_post_publish_qa_required.md` for skipping this.
Acceptance criteria
Five Whys
- Why didn't the cascade work first try? Multiple workspace-internal cycles (some dev-dep-only, some architectural) prevent cargo from resolving the published dep graph; each cargo publish exposes the next missing 0.32.0 version.
- Why are there workspace-internal cycles in the first place? Renacer/realizar depend on aprender at architectural boundaries; full decomposition requires separate quantization/loader crates that don't exist yet.
- Why publish all 13 instead of just aprender-rag? The §50.4 cascade landed user-facing features (apr pretrain --init, apr tokenize import-hf, polymorphic preflight, pv lint --strict-test-binding) that operators consume via the published binaries. Stopping at one crate leaves the rest stale.
- Why aren't published 0.31.2 versions sufficient? They predate the 297 commits since the last release — including the entire SHIP-TWO-001 §50.4 cascade and the drift-sweep + lint-hardening work.
- Why open a tracking issue rather than just doing it? Per `crates/aprender-orchestrate/CLAUDE.md` HARD GATE policy: cascade publishes need clean-room + CI green + provable-contracts version pins verified. Each gate is its own decision; making them visible via an issue keeps the release-cut auditable.
Plan
- PR-A: workspace publish hygiene (path-only dev-deps for cycle-free publishability).
- Run `make clean-room-aprender` on intel — must exit 0.
- Topological cargo publish (~13 crates × ~1-2 min each = ~30 min wall).
- Post-publish QA + CHANGELOG entry.
- Close this issue when `cargo install aprender --force` pulls v0.32.0 cleanly.
🤖 Generated with Claude Code
Goal
Publish v0.32.0 of the user-facing crate set to crates.io after the §50.4 cascade landed. Currently `aprender-rag` v0.32.0 is published (PR #1512); the rest of the user-facing crates (12+) are still at 0.31.2 on crates.io despite local main being at v0.32.0.
Scope
User-facing crates that need v0.32.0 publish:
Already done: aprender-rag v0.32.0 ✓
Blockers identified during dry-run
Path-only dev-dep audit needed: `aprender-core`'s dev-deps include `entrenar = { workspace = true }` (= aprender-train), which has a workspace version pin of 0.32.0. cargo publish complains because aprender-train@0.32.0 isn't on crates.io. Same class likely affects 3-5 other publishable crates with internal-dev-deps.
Documented architectural cycle: `crates/aprender-core/Cargo.toml` lines 122-124 + 150-153 explicitly note:
The realizar/aprender cycle is documented as architectural — partial fix possible without the separate quantization crate.
Topological cargo publish: 13 crates need publishing in dependency order. Each cargo publish has a ~30s upload + ~1-2min crates.io index propagation delay. Total wall: ~30-60 minutes minimum.
Pre-existing release policy: `crates/aprender-orchestrate/CLAUDE.md` requires clean-room build green BEFORE any publish (HARD GATE). v0.31.1 was YANKED per `feedback_post_publish_qa_required.md` for skipping this.
Acceptance criteria
Five Whys
Plan
🤖 Generated with Claude Code