You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Prepare rmcp-template's Rust release/build tooling for multiple public crates instead of a single template component.
This is the Rust crate publication infrastructure issue. It should stay standalone from release-please workflow adoption (#72) and Node/npm distribution (#73), while providing the Rust crate metadata and package checks those issues may consume.
Scope
This issue covers shared crates.io publishing infrastructure, not the implementation of any one crate and not npm/npx distribution. It should support future publication of auth, codemode, traces, contracts-core, gateway/proxy/server crates, and any Rust facade package.
Required capabilities
Independent release components per public Rust crate.
Crate metadata checks for repository, readme/docs, license, keywords/categories, and publish policy.
cargo package / dry-run publish gates.
Consumer fixture tests proving each public crate works outside product runtime crates.
Changelog/version sync that can handle multiple Rust crates without forcing every push to bump every crate.
CI gates that distinguish docs/template-only changes from public crate changes.
/home/jmagar/workspace/rmcp-template/release/components.toml:1 — current single-component release configuration.
/home/jmagar/workspace/rmcp-template/docs/adr/0008-versioning-and-distribution.md:47 — release manifest is the source of truth and public publishing waits for stable boundaries.
/home/jmagar/workspace/rmcp-template/crates/rtemplate-contracts/Cargo.toml:1 — example of current crate with publish = false/thin public metadata.
/home/jmagar/workspace/lab/crates/labby-auth/Cargo.toml:1 — Lab donor crates currently set publish = false.
Implementation sequence
Audit current Rust crate publication state.
Identify which crates are template-only, publishable candidates, or internal support crates.
Goal
Prepare rmcp-template's Rust release/build tooling for multiple public crates instead of a single template component.
This is the Rust crate publication infrastructure issue. It should stay standalone from release-please workflow adoption (#72) and Node/npm distribution (#73), while providing the Rust crate metadata and package checks those issues may consume.
Scope
This issue covers shared crates.io publishing infrastructure, not the implementation of any one crate and not npm/npx distribution. It should support future publication of auth, codemode, traces, contracts-core, gateway/proxy/server crates, and any Rust facade package.
Required capabilities
publishpolicy.cargo package/ dry-run publish gates.Alignment with related issues
release/components.tomland release-please manifests aligned until one source of truth is chosen.Non-goals
npxlaunch behavior here.Acceptance criteria
templatecomponent for Rust crates.cargo packagechecks on public crates.Sources
/home/jmagar/workspace/rmcp-template/release/components.toml:1— current single-component release configuration./home/jmagar/workspace/rmcp-template/docs/adr/0008-versioning-and-distribution.md:47— release manifest is the source of truth and public publishing waits for stable boundaries./home/jmagar/workspace/rmcp-template/crates/rtemplate-contracts/Cargo.toml:1— example of current crate withpublish = false/thin public metadata./home/jmagar/workspace/lab/crates/labby-auth/Cargo.toml:1— Lab donor crates currently setpublish = false.Implementation sequence
Audit current Rust crate publication state.
publish = false, metadata completeness, dependency graph, and release component ownership.Extend release component modeling.
Add package validation.
cargo package, workspace dependency policies, and consumer fixtures.Document publishing workflow.
Local files likely touched
release/components.tomlCargo.tomlandCargo.lockCargo.tomlfiles undercrates/*xtask/src/*version*,xtask/src/*release*, or new package-check commands.github/workflows/*docs/*release*,docs/*publishing*, or ADRsRisks
release/components.toml, Cargo metadata, and release-please manifests from Implement release-please across template release surfaces #72.