mirror of
https://github.com/astral-sh/ruff.git
synced 2026-10-28 10:45:37 +08:00
## Summary Publish Ruff's production Rust crates to crates.io as part of the existing release workflow. This follows uv's setup: workspace dependencies carry registry-compatible version pins, internal crates receive generated READMEs and an explicit versioning policy, CI dry-runs the full workspace publish, and release jobs publish missing crate versions idempotently through crates.io trusted publishing. The publishing set contains 32 packages: Ruff's CLI, WASM package, server, linter, formatter, parser, and the internal Ruff component crates required by them. It also includes `ty_module_resolver`, `ty_site_packages`, and `ty_static`, because those three crates are part of Ruff's normal dependency closure. The publishing set deliberately excludes: - Test-only crates: `mdtest`, `ruff_mdtest`, `ruff_python_ast_integration_tests`, and `ruff_python_trivia_integration_tests`. - Benchmark and development crates: `ruff_benchmark` and `ruff_dev`. - All remaining `ty_*` crates. These packages retain `publish = false`, so bootstrap, version bumping, README generation, CI dry-runs, and release publishing skip them through Cargo metadata instead of a separate hard-coded allowlist. The crates.io job is intentionally independent of release announcement, so a crates.io outage cannot block the existing binary, PyPI, npm, or GitHub release outputs. A bootstrap script reserves new crate names, configures the release workflow as each crate's trusted publisher, enables trusted-publishing-only releases, and records configured crates for idempotent reruns. The full workspace publish dry-run packages and verifies all 32 selected crates. Closes https://github.com/astral-sh/ruff/issues/43.
26 lines
646 B
TOML
26 lines
646 B
TOML
[package]
|
|
name = "ruff_diagnostics"
|
|
version = "0.0.1"
|
|
description = "This is an internal component crate of Ruff"
|
|
authors = { workspace = true }
|
|
edition = { workspace = true }
|
|
rust-version = { workspace = true }
|
|
homepage = { workspace = true }
|
|
documentation = { workspace = true }
|
|
repository = { workspace = true }
|
|
license = { workspace = true }
|
|
|
|
[lib]
|
|
doctest = false
|
|
test = false
|
|
|
|
[dependencies]
|
|
ruff_text_size = { workspace = true, features = ["get-size"] }
|
|
|
|
get-size2 = { workspace = true }
|
|
is-macro = { workspace = true }
|
|
serde = { workspace = true, optional = true, features = [] }
|
|
|
|
[features]
|
|
serde = ["dep:serde", "ruff_text_size/serde"]
|