Skill de Publicação de Crates
Estrutura de projeto e releases do crates.io - uma Skill do Agente para publicação em Rust 1.97.0 e workspaces.
O Que Esta Skill Faz
Cria esqueletos de crates de biblioteca com lib.rs, examples/, tests/, README.md, LICENSE e metadados do Cargo.toml (description, repository, keywords, categories, rust-version). Executa cargo publish --dry-run e validação de testes de documentação.
Quando Invocar
- Open-sourcing de crate de utilidade interna
- Preparando a primeira publicação
0.1.0 - Revisando PR de publicação para metadados e semver
- Dividindo um módulo de um monólito em um crate independente
Entradas
| Entrada | Por quê |
|---|---|
| Nome do Crate | Disponibilidade no crates.io |
| Licença | Identificador SPDX |
| MSRV | Campo rust-version |
| Escopo da API pública | Minimização da superfície pub |
Saídas
Cargo.tomlcom dependências prontas para workspacesrc/lib.rscom documentação em nível de crateexamples/basic.rs- Stub do
CHANGELOG.md - Comandos da lista de verificação de publicação
Guardrails
cargo publish --dry-rundeve passar antes da publicação real.- Sem dependências de caminho/git no manifesto publicado, a menos que versionadas no crates.io.
- Builds do docs.rs - recursos
package.metadata.docs.rsdefinidos. - SemVer em 0.x - documentar a política de quebra de minor.
- Nome do Crate corresponde ao repositório - descoberta e confiança.
Receita
cargo test --all-features
cargo doc --no-deps
cargo publish --dry-run
cargo package --list
# cargo publish quando estiver prontoExemplo de Trabalho
[package]
name = "acme-utils"
version = "0.1.0"
edition = "2024"
rust-version = "1.97"
license = "MIT OR Apache-2.0"
description = "Shared utilities for Acme Rust services"
repository = "https://github.com/acme/acme-utils"FAQs
Ordem de publicação do Workspace?
Publique primeiro as crates de dependência; use cargo release ou release-plz para ordenação.
Incluir binários no crates.io?
Bibliotecas sim; binários de aplicação geralmente são distribuídos via tags git e contêineres, não crates.io.
Política de Yank?
Yank apenas releases quebrados; documente a versão de substituição no README.
Relacionados
- Publicando no crates.io
- Cargo.toml explicado
- Release e versionamento
- Melhores Práticas Essenciais de Crates
Versões da Stack: Esta página foi escrita para Rust 1.97.0 (edition 2024), Tokio 1.x, Axum 0.8, serde 1.0, sqlx 0.8, clap 4, e Polars 0.46+.