## Summary This PR adds a new `user_configuration_directory` method to `System`. We need it to resolve where to lookup a user-level `knot.toml` configuration file. The method belongs to `System` because not all platforms have a convention of where to store such configuration files (e.g. wasm). I refactored `TestSystem` to be a simple wrapper around an `Arc<dyn System...>` and use the `System.as_any` method instead to cast it down to an `InMemory` system. I also removed some `System` specific methods from `InMemoryFileSystem`, they don't belong there. This PR removes the `os` feature as a default feature from `ruff_db`. Most crates depending on `ruff_db` don't need it because they only depend on `System` or only depend on `os` for testing. This was necessary to fix a compile error with `red_knot_wasm` ## Test Plan I'll make use of the method in my next PR. So I guess we won't know if it works before then but I copied the code from Ruff/uv, so I have high confidence that it is correct. `cargo test`
59 lines
1.7 KiB
TOML
59 lines
1.7 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_notebook = { workspace = true }
|
|
ruff_python_ast = { workspace = true }
|
|
ruff_python_parser = { workspace = true }
|
|
ruff_python_trivia = { workspace = true }
|
|
ruff_source_file = { workspace = true }
|
|
ruff_text_size = { workspace = true }
|
|
|
|
camino = { workspace = true }
|
|
colored = { workspace = true }
|
|
countme = { workspace = true }
|
|
dashmap = { workspace = true }
|
|
dunce = { workspace = true }
|
|
filetime = { workspace = true }
|
|
glob = { workspace = true }
|
|
ignore = { workspace = true, optional = true }
|
|
matchit = { workspace = true }
|
|
salsa = { workspace = true }
|
|
schemars = { workspace = true, optional = true }
|
|
serde = { workspace = true, optional = true }
|
|
path-slash = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
tracing = { workspace = true }
|
|
tracing-subscriber = { workspace = true, optional = true }
|
|
tracing-tree = { workspace = true, optional = true }
|
|
rustc-hash = { workspace = 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 }
|
|
tempfile = { workspace = true }
|
|
|
|
[features]
|
|
cache = ["ruff_cache"]
|
|
os = ["ignore", "dep:etcetera"]
|
|
serde = ["dep:serde", "camino/serde1"]
|
|
# Exposes testing utilities.
|
|
testing = ["tracing-subscriber", "tracing-tree"]
|