Skip to content

Mark conformance helper crates as non-publishable implementation tooling #15

Description

@Teakowa

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions