From 5c8d1a46b5637d56760afff28b91519d50dc99fd Mon Sep 17 00:00:00 2001 From: David Lattimore Date: Wed, 21 Jun 2023 11:23:07 +1000 Subject: [PATCH] Use lib crates from crates.io See lib/README.md for justification --- Cargo.lock | 44 ++++++++++++++++++++++++++++++++++++-------- Cargo.toml | 12 ++++++++---- lib/README.md | 9 +++++++++ 3 files changed, 53 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2bdd25af34e..d73f5b00e15 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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", diff --git a/Cargo.toml b/Cargo.toml index f34809a1cdf..f88efb8c7ca 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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 = [ diff --git a/lib/README.md b/lib/README.md index ed55e31d6bb..d420eeb9605 100644 --- a/lib/README.md +++ b/lib/README.md @@ -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