## Summary This PR is a first step toward adding a GitLab output format to ty. It converts the `GitlabEmitter` from `ruff_linter` to a `GitlabRenderer` in `ruff_db` and updates its implementation to handle non-Ruff files and diagnostics without primary spans. I tried to break up the changes here so that they're easy to review commit-by-commit, or at least in groups of commits: - [preparatory changes in-place in `ruff_linter` and a `ruff_db` skeleton](0761b73a61) - [moving the code over with no implementation changes mixed in](0761b73a61..8f909ea0bb) - [tidying up the code now in `ruff_db`](9f047c4f9f..e5e217fcd6) This wasn't strictly necessary, but I also added some `Serialize` structs instead of calling `json!` to make it a little clearer that we weren't modifying the schema (e4c4bee35d). I plan to follow this up with a separate PR exposing this output format in the ty CLI, which should be quite straightforward. ## Test Plan Existing tests, especially the two that show up in the diff as renamed nearly without changes
72 lines
2.1 KiB
TOML
72 lines
2.1 KiB
TOML
[package]
|
|
name = "ruff_db"
|
|
version = "0.0.0"
|
|
publish = false
|
|
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 }
|
|
dashmap = { workspace = true }
|
|
dunce = { workspace = true }
|
|
filetime = { workspace = true }
|
|
get-size2 = { workspace = true }
|
|
glob = { 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 }
|
|
schemars = { workspace = true, optional = true }
|
|
serde = { workspace = true, optional = true }
|
|
serde_json = { workspace = true, optional = true }
|
|
similar = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true, optional = true }
|
|
zip = { workspace = true }
|
|
|
|
[target.'cfg(target_arch="wasm32")'.dependencies]
|
|
web-time = { version = "1.1.0" }
|
|
|
|
[target.'cfg(not(target_arch="wasm32"))'.dependencies]
|
|
etcetera = { workspace = true, optional = true }
|
|
|
|
[dev-dependencies]
|
|
insta = { workspace = true, features = ["filters"] }
|
|
tempfile = { workspace = true }
|
|
|
|
[features]
|
|
cache = ["ruff_cache"]
|
|
junit = ["dep:quick-junit"]
|
|
os = ["ignore", "dep:etcetera"]
|
|
serde = [
|
|
"camino/serde1",
|
|
"dep:serde",
|
|
"dep:serde_json",
|
|
"ruff_diagnostics/serde",
|
|
]
|
|
# Exposes testing utilities.
|
|
testing = ["tracing-subscriber"]
|