Skip to content

1.0.0: default mcp feature, MCP Registry publishing, private lib#37

Merged
cuihtlauac merged 2 commits into
mainfrom
release/v1.0.0
Jun 19, 2026
Merged

1.0.0: default mcp feature, MCP Registry publishing, private lib#37
cuihtlauac merged 2 commits into
mainfrom
release/v1.0.0

Conversation

@cuihtlauac

Copy link
Copy Markdown
Member

Prepares sudo-proxy for the official MCP Registry and a 1.0 release.

Why

The crate is public on crates.io but two things block a clean MCP Registry listing, and the project is mature enough to commit to a stable contract:

  1. The MCP binary was gated behind a non-default feature. sudo-proxy-mcp requires --features mcp, but the registry's cargo install path runs cargo install sudo-proxy with no extra flags — so it would not install the advertised binary.
  2. Cargo ownership was unproven. The registry verifies ownership by reading a visible mcp-name: marker from the crate's README on crates.io.

Changes

  • mcp is now a default featurecargo install sudo-proxy builds all four binaries incl. sudo-proxy-mcp. Core-only build is --no-default-features.
  • Library marked #![doc(hidden)] with a disclaimer: it is an internal implementation detail, not a stable public API. The versioned contract is the MCP tools + wire protocol + CLI — so 1.0.0 promises stability of that surface while internals stay free to change.
  • server.json (name io.github.tarides/sudo-proxy, cargo package) + visible mcp-name: README marker for ownership verification.
  • publish.yml — on a v* tag: crates.io Trusted Publishing (OIDC, no stored token) → wait for crate → MCP Registry publish via GitHub Actions OIDC.
  • ci.yml / release.yml — core-only guards use --no-default-features; redundant --features mcp dropped from docs and build/test commands.
  • Version → 1.0.0.

Verification

  • cargo build --release → all 4 binaries incl. sudo-proxy-mcp
  • cargo build --release --no-default-features → 3 core binaries only
  • cargo test -- --skip burst_connections_above_cap_get_busy_response → green

Release steps (after merge)

  1. git tag v1.0.0 && git push origin v1.0.0 → fires publish.yml + release.yml.
  2. Confirm crates.io serves 1.0.0 and the registry lists io.github.tarides/sudo-proxy.
  3. Enable "require trusted publishing" on crates.io once the first publish is green.

Note: the crates.io Trusted Publisher is already registered (repo + publish.yml), enforcement left off until the first green run.

🤖 Generated with Claude Code

cuihtlauac and others added 2 commits June 18, 2026 18:15
Markdown (Marp) deck covering the problem, context/constraints, how the
trusted-gate role determines the architecture, and the assurance-ladder
verification effort. Speaker notes inline.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Prepare sudo-proxy for the official MCP Registry and a 1.0 release.

- Make `mcp` a default Cargo feature so `cargo install sudo-proxy` builds the
  `sudo-proxy-mcp` binary (the registry's cargo install path uses no extra
  flags). Build core-only binaries with `--no-default-features`.
- Mark the Rust library `#![doc(hidden)]` with a disclaimer: it is an internal
  implementation detail, not a stable public API. The versioned contract is the
  MCP tools, the JSON-line wire protocol, and the CLI — which lets 1.0.0 promise
  stability of that surface without freezing the Rust types.
- Add server.json (name io.github.tarides/sudo-proxy, cargo package) and a
  visible `mcp-name:` ownership marker in the README so the registry can verify
  crate ownership.
- Add publish.yml: on a `v*` tag, publish to crates.io via Trusted Publishing
  (OIDC, no stored token), wait for the crate to be served, then register the
  server in the MCP Registry via GitHub Actions OIDC.
- Update ci.yml/release.yml core-only guards to `--no-default-features`; drop
  now-redundant `--features mcp` from build/test/install commands in docs.
- Bump version to 1.0.0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cuihtlauac cuihtlauac merged commit e26d570 into main Jun 19, 2026
16 checks passed
@cuihtlauac cuihtlauac deleted the release/v1.0.0 branch June 19, 2026 17:45
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.

1 participant