Use lib crates from crates.io

See lib/README.md for justification
This commit is contained in:
David Lattimore 2023-06-21 11:23:07 +10:00
parent 2d64a0aa6e
commit 5c8d1a46b5
3 changed files with 53 additions and 12 deletions

44
Cargo.lock generated
View file

@ -87,7 +87,7 @@ name = "base-db"
version = "0.0.0"
dependencies = [
"cfg",
"la-arena",
"la-arena 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"profile",
"rustc-hash",
"salsa",
@ -524,7 +524,7 @@ dependencies = [
"indexmap",
"intern",
"itertools",
"la-arena",
"la-arena 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"limit",
"mbe",
"once_cell",
@ -551,7 +551,7 @@ dependencies = [
"hashbrown",
"intern",
"itertools",
"la-arena",
"la-arena 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"limit",
"mbe",
"profile",
@ -584,7 +584,7 @@ dependencies = [
"hkalbasi-rustc-ap-rustc_index",
"intern",
"itertools",
"la-arena",
"la-arena 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"limit",
"nohash-hasher",
"once_cell",
@ -718,7 +718,7 @@ dependencies = [
"indexmap",
"itertools",
"limit",
"line-index",
"line-index 0.1.0-pre.1 (registry+https://github.com/rust-lang/crates.io-index)",
"memchr",
"nohash-hasher",
"once_cell",
@ -880,6 +880,12 @@ dependencies = [
name = "la-arena"
version = "0.3.1"
[[package]]
name = "la-arena"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3752f229dcc5a481d60f385fa479ff46818033d881d2d801aa27dffcfb5e8306"
[[package]]
name = "lazy_static"
version = "1.4.0"
@ -924,6 +930,16 @@ dependencies = [
"text-size",
]
[[package]]
name = "line-index"
version = "0.1.0-pre.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2cad96769710c1745e11d4f940a8ff36000ade4bbada4285b001cb8aa2f745ce"
dependencies = [
"nohash-hasher",
"text-size",
]
[[package]]
name = "lock_api"
version = "0.4.9"
@ -954,6 +970,18 @@ dependencies = [
"serde_json",
]
[[package]]
name = "lsp-server"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3711e4d6f491dc9edc0f1df80e204f38206775ac92c1241e89b79229a850bc00"
dependencies = [
"crossbeam-channel",
"log",
"serde",
"serde_json",
]
[[package]]
name = "lsp-types"
version = "0.94.0"
@ -1308,7 +1336,7 @@ version = "0.0.0"
dependencies = [
"cfg-if",
"countme",
"la-arena",
"la-arena 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"libc",
"once_cell",
"perf-event",
@ -1326,7 +1354,7 @@ dependencies = [
"cfg",
"expect-test",
"itertools",
"la-arena",
"la-arena 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
"paths",
"profile",
"rustc-hash",
@ -1461,7 +1489,7 @@ dependencies = [
"ide-db",
"ide-ssr",
"itertools",
"lsp-server",
"lsp-server 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
"lsp-types",
"mbe",
"mimalloc",

View file

@ -35,6 +35,10 @@ debug = 0
# chalk-ir = { path = "../chalk/chalk-ir" }
# chalk-recursive = { path = "../chalk/chalk-recursive" }
# chalk-derive = { path = "../chalk/chalk-derive" }
# line-index = { path = "lib/line-index" }
# la-arena = { path = "lib/la-arena" }
# lsp-server = { path = "lib/lsp-server" }
# ungrammar = { path = "../ungrammar" }
@ -76,10 +80,10 @@ tt = { path = "./crates/tt", version = "0.0.0" }
vfs-notify = { path = "./crates/vfs-notify", version = "0.0.0" }
vfs = { path = "./crates/vfs", version = "0.0.0" }
# In-tree crates that are published separately and follow semver.
line-index = { version = "0.1.0-pre.1", path = "lib/line-index" }
la-arena = { version = "0.3.1", path = "lib/la-arena" }
lsp-server = { version = "0.7.1", path = "lib/lsp-server" }
# In-tree crates that are published separately and follow semver. See lib/README.md
line-index = { version = "0.1.0-pre.1" }
la-arena = { version = "0.3.1" }
lsp-server = { version = "0.7.1" }
# non-local crates
smallvec = { version = "1.10.0", features = [

View file

@ -3,3 +3,12 @@
Crates in this directory are published to [crates.io](https://crates.io) and obey semver.
They _could_ live in a separate repo, but we want to experiment with a monorepo setup.
We use these crates from crates.io, not the local copies because we want to ensure that
rust-analyzer works with the versions that are published. This means if you add a new API to these
crates, you need to release a new version to crates.io before you can use that API in rust-analyzer.
To release new versions of these packages, change their version in Cargo.toml. Once your PR is merged into master a workflow will automatically publish the new version to crates.io.
While prototyping, the local versions can be used by uncommenting the relevant lines in the
`[patch.'crates-io']` section in Cargo.toml