Goal
Make the Language Provider Protocol repository's Cargo package intent explicit so conformance-only helper crates cannot accidentally become public crates.io contracts.
Context
The Rust workspace currently contains lpp-mock-provider and lpp-conformance-runner. They exist to exercise the process/wire protocol and conformance fixtures, not as reusable protocol library packages. Neither package currently declares publish = false, so Cargo treats them as publishable by default even though the repository has no crates.io release workflow today.
The durable public contract of this repository is the language-provider process/wire protocol and its conformance behavior, not the internal Rust packaging used to test it.
Scope
- Mark conformance-only Cargo packages as non-publishable.
- Apply the same explicit policy to future test/fixture/helper Cargo packages in this repository unless a separately reviewed public Rust package contract is introduced.
- Keep conformance binaries runnable from the workspace and CI exactly as needed for protocol verification.
- Document the distinction only where necessary to keep package intent clear to maintainers.
Non-goals
- Creating a new public Rust SDK or protocol crate.
- Changing LPP wire semantics, fixtures, or conformance behavior.
- Reorganizing the conformance harness for style reasons.
- Adding crates.io release automation.
Acceptance criteria
lpp-mock-provider and lpp-conformance-runner are explicitly non-publishable Cargo packages.
- Existing workspace builds, tests, and conformance execution remain unchanged.
- No public package/API contract is implied by the Rust helper-crate decomposition.
Ownership
language-provider-protocol owns the process/wire contract and its conformance harness. A future public Rust SDK, if justified, must be introduced as an explicit separately reviewed contract rather than by publishing a conformance helper.
Goal
Make the Language Provider Protocol repository's Cargo package intent explicit so conformance-only helper crates cannot accidentally become public crates.io contracts.
Context
The Rust workspace currently contains
lpp-mock-providerandlpp-conformance-runner. They exist to exercise the process/wire protocol and conformance fixtures, not as reusable protocol library packages. Neither package currently declarespublish = false, so Cargo treats them as publishable by default even though the repository has no crates.io release workflow today.The durable public contract of this repository is the language-provider process/wire protocol and its conformance behavior, not the internal Rust packaging used to test it.
Scope
Non-goals
Acceptance criteria
lpp-mock-providerandlpp-conformance-runnerare explicitly non-publishable Cargo packages.Ownership
language-provider-protocolowns the process/wire contract and its conformance harness. A future public Rust SDK, if justified, must be introduced as an explicit separately reviewed contract rather than by publishing a conformance helper.