mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-17 22:08:28 +00:00

## Summary This PR removes the cyclic dev dependency some of the crates had with the parser crate. The cyclic dependencies are: * `ruff_python_ast` has a **dev dependency** on `ruff_python_parser` and `ruff_python_parser` directly depends on `ruff_python_ast` * `ruff_python_trivia` has a **dev dependency** on `ruff_python_parser` and `ruff_python_parser` has an indirect dependency on `ruff_python_trivia` (`ruff_python_parser` - `ruff_python_ast` - `ruff_python_trivia`) Specifically, this PR does the following: * Introduce two new crates * `ruff_python_ast_integration_tests` and move the tests from the `ruff_python_ast` crate which uses the parser in this crate * `ruff_python_trivia_integration_tests` and move the tests from the `ruff_python_trivia` crate which uses the parser in this crate ### Motivation The main motivation for this PR is to help development. Before this PR, `rust-analyzer` wouldn't provide any intellisense in the `ruff_python_parser` crate regarding the symbols in `ruff_python_ast` crate. ``` [ERROR][2024-05-03 13:47:06] .../vim/lsp/rpc.lua:770 "rpc" "/Users/dhruv/.cargo/bin/rust-analyzer" "stderr" "[ERROR project_model::workspace] cyclic deps: ruff_python_parser(Idx::<CrateData>(50)) -> ruff_python_ast(Idx::<CrateData>(37)), alternative path: ruff_python_ast(Idx::<CrateData>(37)) -> ruff_python_parser(Idx::<CrateData>(50))\n" ``` ## Test Plan Check the logs of `rust-analyzer` to not see any signs of cyclic dependency.
23 lines
563 B
TOML
23 lines
563 B
TOML
[package]
|
|
name = "ruff_python_ast_integration_tests"
|
|
version = "0.0.0"
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
homepage.workspace = true
|
|
documentation.workspace = true
|
|
repository.workspace = true
|
|
authors.workspace = true
|
|
license.workspace = true
|
|
|
|
[dependencies]
|
|
|
|
[dev-dependencies]
|
|
ruff_python_parser = { path = "../ruff_python_parser" }
|
|
ruff_python_ast = { path = "../ruff_python_ast" }
|
|
ruff_python_trivia = { path = "../ruff_python_trivia" }
|
|
ruff_text_size = { path = "../ruff_text_size" }
|
|
|
|
insta = { workspace = true }
|
|
|
|
[lints]
|
|
workspace = true
|