Skip to content
Agentmart
Submit a tool

release-cargo-package

Release or configure a public Rust crate on crates.io with native Cargo and GitHub tooling.

Skill by dravengarden

IndexedApache-2.0
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/dravengarden-release-cargo-package

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Release or configure a public Rust crate on crates.io with native Cargo and GitHub tooling. Use for first token-authenticated publication, crates.io Trusted Publisher setup, OIDC workflows, workspace package selection, .crate inspection, publish=false boundaries, token retirement, checksum comparison, or fresh cargo install acceptance.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/release-cargo-package

What's inside

Skill name
release-cargo-package
Description
Release or configure a public Rust crate on crates.io with native Cargo and GitHub tooling. Use for first token-authenticated publication, crates.io Trusted Publisher setup, OIDC workflows, workspace package selection, .crate inspection, publish=false boundaries, token retirement, checksum comparison, or fresh cargo install acceptance.
License
Apache-2.0
Instructions
66 lines in SKILL.md · view on GitHub

Files (2)

  • SKILL.md
  • openai.yaml · agents/

SKILL.md (first lines)

# Release a crates.io package

Keep versioning, builds, tests, release notes, artifacts, workflows, and
acceptance in the owning project. The bundled helper only prepares the
one-time crates.io Trusted Publisher fields and opens native settings pages.

## Select the public package explicitly

Read the workspace guidance and manifests. Identify the public crate, installed
binaries, MSRV, features, system dependencies, supported platforms, README,
and release notes. Keep internal workspace crates `publish = false` unless the
project explicitly intends to support them as public API. Do not publish a
workspace merely because its members compile.

Verify the target version is absent and agrees across source, lockfile policy,
tag, `.crate` filename, changelog, and GitHub Release. Preserve locally built
artifact boundaries when the project requires exact byte identity.

## Handle first publication separately

crates.io cannot use Trusted Publishing to create a crate. The account needs a
verified email and a narrowly scoped bootstrap API token for the first version.
Inspect and package first:

```bash
cargo package --package CRATE --locked --list
cargo publish --package CRATE --locked --dry-run
```

Use `--no-verify` only when the project documents and independently tests a
specific packaging constraint. After the first version appears, run the bundled
[setup helper](../../scripts/setup-trusted-publisher) with `--print`, review the
owner, repository, workflow, environment, and crate, then apply only after user
authorization.

The routine workflow must grant job-level `id-token: write`, obtain a
short-lived token with `rust-lang/crates-io-auth-action`, and pass that token to
native `cargo publish`. Pin actions and the Rust toolchain according to project
policy. Do not store Cargo credentials or invoke Lasso in the publish job.

After OIDC succeeds, run `cargo logout` to remove local credentials and revoke
the bootstrap token on crates.io. These are separate operations. Where crates.io
offers Trusted Publishing enforcement, enable it only after the binding has
been proven.

## Publish and accept

Run the project gate, inspect `cargo package --list` and the generated `.crate`,
then publish only the named public package. A publish timeout can occur after a
successful upload, so query registry state before retrying.

For a binary crate, use fresh Cargo homes and installation roots to avoid local
cache evidence:

```bash
cargo info CRATE@VERSION --registry crates-io
cargo install CRATE --version VERSION --locked --root TEMP_ROOT
TEMP_ROOT/bin/COMMAND --version
```

Compare the crates.io checksum with the released `.crate` when the project
promises byte identity. Verify the installed binary set, not only compilation.
Report upload, index visibility, checksum equality, fresh installation, and
execution separately.

From dravengarden/lasso, Apache-2.0.

More from dravengarden/lasso

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Aug 24, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from dravengarden

Cite this page

release-cargo-package skill. Agent Mart. https://agentmart.dev/skills/dravengarden-release-cargo-package (last updated 2026-10-24)