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.
75 lines
2.4 KiB
TOML
75 lines
2.4 KiB
TOML
[package]
|
|
name = "ruff_db"
|
|
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 }
|
|
|
|
[dependencies]
|
|
ruff_annotate_snippets = { workspace = true }
|
|
ruff_cache = { workspace = true, optional = true }
|
|
ruff_diagnostics = { workspace = true }
|
|
ruff_memory_usage = { workspace = true }
|
|
ruff_notebook = { workspace = true }
|
|
ruff_python_ast = { workspace = true, features = ["get-size"] }
|
|
ruff_python_parser = { workspace = true }
|
|
ruff_python_trivia = { workspace = true }
|
|
ruff_source_file = { workspace = true, features = ["get-size"] }
|
|
ruff_text_size = { workspace = true }
|
|
ty_static = { workspace = true }
|
|
|
|
anstyle = { workspace = true }
|
|
arc-swap = { workspace = true }
|
|
camino = { workspace = true }
|
|
compact_str = { workspace = true }
|
|
dashmap = { workspace = true }
|
|
dunce = { workspace = true }
|
|
filetime = { workspace = true }
|
|
get-size2 = { workspace = true }
|
|
ignore = { workspace = true, optional = true }
|
|
matchit = { workspace = true }
|
|
path-slash = { workspace = true }
|
|
pathdiff = { workspace = true }
|
|
quick-junit = { workspace = true, optional = true }
|
|
rustc-hash = { workspace = true }
|
|
salsa = { workspace = true }
|
|
same-file = { workspace = true, optional = true }
|
|
schemars = { workspace = true, optional = true }
|
|
serde = { workspace = true, optional = true }
|
|
serde_json = { workspace = true, optional = true }
|
|
similar = { workspace = true }
|
|
supports-hyperlinks = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true, optional = true }
|
|
which = { workspace = true, optional = true }
|
|
zip = { workspace = true }
|
|
|
|
[target.'cfg(not(target_arch="wasm32"))'.dependencies]
|
|
etcetera = { workspace = true, optional = true }
|
|
|
|
[target.'cfg(target_arch="wasm32")'.dependencies]
|
|
web-time = { version = "1.1.0" }
|
|
|
|
[dev-dependencies]
|
|
insta = { workspace = true, features = ["filters"] }
|
|
tempfile = { workspace = true }
|
|
|
|
[features]
|
|
cache = ["ruff_cache"]
|
|
junit = ["dep:quick-junit"]
|
|
os = ["ignore", "dep:etcetera", "dep:same-file", "dep:which"]
|
|
serde = [
|
|
"camino/serde1",
|
|
"dep:serde",
|
|
"dep:serde_json",
|
|
"ruff_diagnostics/serde",
|
|
]
|
|
# Exposes testing utilities.
|
|
testing = ["tracing-subscriber"]
|