ok/jj
1
0
Fork 0
forked from mirrors/jj

cargo: unify dependency versions through workspace deps

Summary: This moves all dependencies across the jj-lib and jj-cli crates into
the top-level Cargo file; with that, we can change each crate instead to just
inherit the workspace version, with the toggled features enabled, by setting
a dependency such as:

    dep.workspace = true

in the relevant Cargo.toml file.

This doesn't actually change any of the build semantics (from what I can tell)
nor the lockfile, and seems to respond normally. There are more cleanups that
can follow.

Two notes:

- Dependabot seems to work fine, based on what I've seen in other repos.
- `cargo add` doesn't seem to know how to add packages to a top-level
  `workspace.dependencies` field; instead you can `cargo add -p jj-cli`
  and move the entries, at least.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
Change-Id: I307827e5f15c0d8ea8e2a80ec793d3c7
This commit is contained in:
Austin Seipp 2023-08-05 11:14:11 -05:00
parent c8f7a5f73f
commit 13fff3be70
5 changed files with 162 additions and 92 deletions

View file

@ -4,6 +4,83 @@ cargo-features = []
resolver = "2"
members = ["cli", "lib", "lib/testutils", "lib/gen-protos"]
[workspace.dependencies]
anyhow = "1.0.72"
assert_cmd = "2.0.8"
assert_matches = "1.5.0"
backoff = "0.4.0"
blake2 = "0.10.6"
byteorder = "1.4.3"
bytes = "1.4.0"
cargo_metadata = "0.17.0"
clap = { version = "4.3.19", features = ["derive", "deprecated"] }
clap_complete = "4.3.2"
clap_mangen = "0.2.10"
chrono = { version = "0.4.26", default-features = false, features = [
"std",
"clock",
] }
config = { version = "0.13.2", default-features = false, features = ["toml"] }
criterion = "0.5.1"
crossterm = { version = "0.26", default-features = false }
digest = "0.10.7"
dirs = "5.0.1"
esl01-renderdag = "0.3.0"
glob = "0.3.1"
git2 = "0.17.2"
hex = "0.4.3"
itertools = "0.11.0"
indexmap = "2.0.0"
libc = { version = "0.2.147" }
insta = { version = "1.31.0", features = ["filters"] }
maplit = "1.0.2"
num_cpus = "1.16.0"
once_cell = "1.18.0"
pest = "2.7.2"
pest_derive = "2.7.2"
prost = "0.11.9"
prost-build = "0.11.9"
rand = "0.8.5"
rand_chacha = "0.3.1"
rayon = "1.7.0"
regex = "1.9.1"
rpassword = "7.2.0"
rustix = { version = "0.38.6", features = ["fs"] }
smallvec = { version = "1.11.0", features = [
"const_generics",
"const_new",
"union",
] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0.104"
slab = "0.4.8"
strsim = "0.10.0"
tempfile = "3.7.0"
test-case = "3.1.0"
textwrap = "0.16.0"
thiserror = "1.0.44"
timeago = { version = "0.4.1", default-features = false }
toml_edit = { version = "0.19.14", features = ["serde"] }
tracing = "0.1.37"
tracing-chrome = "0.7.1"
tracing-subscriber = { version = "0.3.17", default-features = false, features = [
"std",
"ansi",
"env-filter",
"fmt",
] }
tokio = { version = "1.29.1" }
watchman_client = { version = "0.8.0" }
whoami = "1.4.1"
version_check = "0.9.4"
zstd = "0.12.4"
# put all inter-workspace libraries, i.e. those that use 'path = ...' here in
# their own (alphabetically sorted) block
jj-lib = { path = "lib" }
testutils = { path = "lib/testutils" }
[profile.release]
strip = "debuginfo"
codegen-units = 1

View file

@ -3,7 +3,7 @@ name = "jj-cli"
version = "0.8.0"
authors = ["Martin von Zweigbergk <martinvonz@google.com>"]
edition = "2021"
rust-version = "1.71" # Remember to update CI, and contributing.md
rust-version = "1.71" # Remember to update CI, and contributing.md
license = "Apache-2.0"
description = "Jujutsu (an experimental VCS)"
homepage = "https://github.com/martinvonz/jj"
@ -27,51 +27,51 @@ name = "fake-diff-editor"
path = "testing/fake-diff-editor.rs"
[build-dependencies]
cargo_metadata = "0.17.0"
cargo_metadata.workspace = true
[dependencies]
chrono = { version = "0.4.26", default-features = false, features = ["std", "clock"] }
clap = { version = "4.3.19", features = ["derive", "deprecated"] }
clap_complete = "4.3.2"
clap_mangen = "0.2.10"
config = { version = "0.13.3", default-features = false, features = ["toml"] }
criterion = {version = "0.5.1", optional = true }
crossterm = { version = "0.26", default-features = false }
dirs = "5.0.1"
esl01-renderdag = "0.3.0"
git2 = "0.17.2"
glob = "0.3.1"
hex = "0.4.3"
indexmap = "2.0.0"
itertools = "0.11.0"
jj-lib = { version = "=0.8.0", path = "../lib", default-features = false }
maplit = "1.0.2"
once_cell = "1.18.0"
pest = "2.7.2"
pest_derive = "2.7.2"
regex = "1.9.1"
rpassword = "7.2.0"
serde = { version = "1.0", features = ["derive"] }
slab = "0.4.8"
tempfile = "3.7.0"
textwrap = "0.16.0"
thiserror = "1.0.44"
timeago = { version = "0.4.1", default-features = false }
toml_edit = { version = "0.19.14", features = ["serde"] }
tracing = "0.1.37"
tracing-chrome = "0.7.1"
tracing-subscriber = { version = "0.3.17", default-features = false, features = ["std", "ansi", "env-filter", "fmt"] }
chrono.workspace = true
clap.workspace = true
clap_complete.workspace = true
clap_mangen.workspace = true
config.workspace = true
criterion = { workspace = true, optional = true }
crossterm.workspace = true
dirs.workspace = true
esl01-renderdag.workspace = true
git2.workspace = true
glob.workspace = true
hex.workspace = true
indexmap.workspace = true
itertools.workspace = true
jj-lib.workspace = true
maplit.workspace = true
once_cell.workspace = true
pest.workspace = true
pest_derive.workspace = true
regex.workspace = true
rpassword.workspace = true
serde.workspace = true
slab.workspace = true
tempfile.workspace = true
textwrap.workspace = true
thiserror.workspace = true
timeago.workspace = true
toml_edit.workspace = true
tracing.workspace = true
tracing-chrome.workspace = true
tracing-subscriber.workspace = true
[target.'cfg(unix)'.dependencies]
libc = { version = "0.2.147" }
libc.workspace = true
[dev-dependencies]
anyhow = "1.0.72"
assert_cmd = "2.0.8"
assert_matches = "1.5.0"
insta = { version = "1.31.0", features = ["filters"] }
test-case = "3.1.0"
testutils = { path = "../lib/testutils" }
anyhow.workspace = true
assert_cmd.workspace = true
assert_matches.workspace = true
insta.workspace = true
test-case.workspace = true
testutils.workspace = true
[features]
default = []

View file

@ -18,57 +18,50 @@ name = "diff_bench"
harness = false
[build-dependencies]
version_check = "0.9.4"
version_check.workspace = true
[dependencies]
backoff = "0.4.0"
blake2 = "0.10.6"
byteorder = "1.4.3"
bytes = "1.4.0"
chrono = { version = "0.4.26", default-features = false, features = [
"std",
"clock",
] }
config = { version = "0.13.3", default-features = false, features = ["toml"] }
digest = "0.10.7"
git2 = "0.17.2"
hex = "0.4.3"
itertools = "0.11.0"
maplit = "1.0.2"
once_cell = "1.18.0"
pest = "2.7.2"
pest_derive = "2.7.2"
prost = "0.11.9"
rand = "0.8.5"
rand_chacha = "0.3.1"
rayon = "1.7.0"
regex = "1.9.1"
serde_json = "1.0.104"
smallvec = { version = "1.11.0", features = [
"const_generics",
"const_new",
"union",
] }
strsim = "0.10.0"
tempfile = "3.7.0"
thiserror = "1.0.44"
tokio = { version = "1.29.1", optional = true }
tracing = "0.1.37"
watchman_client = { version = "0.8.0", optional = true }
whoami = "1.4.1"
zstd = "0.12.4"
backoff.workspace = true
blake2.workspace = true
byteorder.workspace = true
bytes.workspace = true
chrono.workspace = true
config.workspace = true
digest.workspace = true
git2.workspace = true
hex.workspace = true
itertools.workspace = true
maplit.workspace = true
once_cell.workspace = true
pest.workspace = true
pest_derive.workspace = true
prost.workspace = true
rand.workspace = true
rand_chacha.workspace = true
rayon.workspace = true
regex.workspace = true
serde_json.workspace = true
smallvec.workspace = true
strsim.workspace = true
tempfile.workspace = true
thiserror.workspace = true
tokio = { workspace = true, optional = true }
tracing.workspace = true
watchman_client = { workspace = true, optional = true }
whoami.workspace = true
zstd.workspace = true
[target.'cfg(unix)'.dependencies]
rustix = { version = "0.38.6", features = ["fs"] }
rustix.workspace = true
[dev-dependencies]
assert_matches = "1.5.0"
criterion = "0.5.1"
esl01-renderdag = "0.3.0"
insta = "1.31.0"
num_cpus = "1.16.0"
test-case = "3.1.0"
testutils = { path = "testutils" }
assert_matches.workspace = true
criterion.workspace = true
esl01-renderdag.workspace = true
insta.workspace = true
num_cpus.workspace = true
test-case.workspace = true
testutils.workspace = true
[features]
default = []

View file

@ -6,4 +6,4 @@ license = "Apache-2.0"
publish = false
[dependencies]
prost-build = "0.11.9"
prost-build.workspace = true

View file

@ -15,9 +15,9 @@ publish = false
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
config = { version = "0.13.2", default-features = false, features = ["toml"] }
git2 = "0.17.2"
itertools = "0.11.0"
jj-lib = { path = ".." }
rand = "0.8.5"
tempfile = "3.7.0"
config.workspace = true
git2.workspace = true
itertools.workspace = true
jj-lib.workspace = true
rand.workspace = true
tempfile.workspace = true