cargo-features = [] [workspace]resolver = "3"members = ["cli", "lib", "lib/gen-protos", "lib/proc-macros", "lib/testutils"] [workspace.package]version = "0.27.0"license = "Apache-2.0"rust-version = "1.84" # NOTE: remember to update CI, contributing.md, changelog.md, and install-and-setup.mdedition = "2021"readme = "README.md"homepage = "https://github.com/jj-vcs/jj"repository = "https://github.com/jj-vcs/jj"documentation = "https://jj-vcs.github.io/jj/"categories = ["version-control", "development-tools"]keywords = ["VCS", "DVCS", "SCM", "Git", "Mercurial"] [workspace.dependencies]assert_cmd = "2.0.8"assert_matches = "1.5.0"async-trait = "0.1.88"blake2 = "0.10.6"bstr = "1.11.3"clap = { version = "4.5.35", features = [ "derive", "deprecated", "wrap_help", "string",] }clap_complete = { version = "4.5.47", features = ["unstable-dynamic"] }clap_complete_nushell = "4.5.5"clap-markdown = "0.1.4"clap_mangen = "0.2.25"chrono = { version = "0.4.40", default-features = false, features = [ "std", "clock",] }clru = "0.6.2"criterion = "0.5.1"crossterm = { version = "0.28", default-features = false, features = ["windows"] }digest = "0.10.7"dirs = "6.0.0"dunce = "1.0.5"either = "1.15.0"futures = "0.3.31"git2 = { version = "0.20.1", features = [ # Do *not* disable this feature even if you'd like dynamic linking. Instead, # set the environment variable `LIBGIT2_NO_VENDOR=1` if dynamic linking must # be used (this will override the Cargo feature), and allow static linking # in other cases. Rationale: If neither the feature nor the environment # variable are set, `git2` may still decide to vendor `libgit2` if it # doesn't find a version of `libgit2` to link to dynamically. See also # https://github.com/rust-lang/git2-rs/commit/3cef4119f "vendored-libgit2"] }gix = { version = "0.70.0", default-features = false, features = [ "attributes", "blob-diff", "index", "max-performance-safe",] }glob = "0.3.2"hashbrown = { version = "0.15.2", default-features = false, features = ["inline-more"] }hex = "0.4.3"ignore = "0.4.23"indexmap = { version = "2.8.0", features = ["serde"] }indoc = "2.0.6"insta = { version = "1.42.2", features = ["filters"] }interim = { version = "0.2.1", features = ["chrono_0_4"] }itertools = "0.13.0"libc = { version = "0.2.171" }maplit = "1.0.2"num_cpus = "1.16.0"once_cell = "1.21.3"os_pipe = "1.2.1"pest = "2.8.0"pest_derive = "2.8.0"pollster = "0.4.0"pretty_assertions = "1.4.1"proc-macro2 = "1.0.94"prost = "0.12.6"prost-build = "0.12.6"quote = "1.0.40"rand = "0.8.5"rand_chacha = "0.3.1"rayon = "1.10.0"ref-cast = "1.0.24"regex = "1.11.1"rpassword = "7.3.1"rustix = { version = "1.0.5", features = ["fs"] }same-file = "1.0.6"sapling-renderdag = "0.1.0"sapling-streampager = "0.11.0"scm-record = "0.8.0"serde = { version = "1.0", features = ["derive"] }serde_json = "1.0.140"slab = "0.4.9"smallvec = { version = "1.14.0", features = [ "const_generics", "const_new", "union",] }strsim = "0.11.1"syn = "2.0.100"tempfile = "3.19.1"test-case = "3.3.1"textwrap = "0.16.2"thiserror = "2.0.12"timeago = { version = "0.4.2", default-features = false }tokio = { version = "1.44.1" }toml_edit = { version = "0.22.24", features = ["serde"] }tracing = "0.1.41"tracing-chrome = "0.7.2"tracing-subscriber = { version = "0.3.19", default-features = false, features = [ "std", "ansi", "env-filter", "fmt",] }unicode-width = "0.2.0"version_check = "0.9.5"watchman_client = { version = "0.9.0" }whoami = "1.6.0"winreg = "0.52" # put all inter-workspace libraries, i.e. those that use 'path = ...' here in# their own (alphabetically sorted) block jj-lib = { path = "lib", version = "0.27.0", default-features = false }jj-lib-proc-macros = { path = "lib/proc-macros", version = "0.27.0" }testutils = { path = "lib/testutils", default-features = false } [workspace.lints.clippy]explicit_iter_loop = "warn"flat_map_option = "warn"implicit_clone = "warn"needless_for_each = "warn"semicolon_if_nothing_returned = "warn"uninlined_format_args = "warn"unused_trait_names = "warn"useless_conversion = "warn" # Insta suggests compiling these packages in opt mode for faster testing.# See https://docs.rs/insta/latest/insta/#optional-faster-runs.[profile.dev.package]insta.opt-level = 3similar.opt-level = 3 [profile.release]strip = "debuginfo"codegen-units = 1
cargo-features = []
[workspace]
resolver = "3"
members = ["cli", "lib", "lib/gen-protos", "lib/proc-macros", "lib/testutils"]
[workspace.package]
version = "0.27.0"
license = "Apache-2.0"
rust-version = "1.84" # NOTE: remember to update CI, contributing.md, changelog.md, and install-and-setup.md
edition = "2021"
readme = "README.md"
homepage = "https://github.com/jj-vcs/jj"
repository = "https://github.com/jj-vcs/jj"
documentation = "https://jj-vcs.github.io/jj/"
categories = ["version-control", "development-tools"]
keywords = ["VCS", "DVCS", "SCM", "Git", "Mercurial"]
[workspace.dependencies]
assert_cmd = "2.0.8"
assert_matches = "1.5.0"
async-trait = "0.1.88"
blake2 = "0.10.6"
bstr = "1.11.3"
clap = { version = "4.5.35", features = [
"derive",
"deprecated",
"wrap_help",
"string",
] }
clap_complete = { version = "4.5.47", features = ["unstable-dynamic"] }
clap_complete_nushell = "4.5.5"
clap-markdown = "0.1.4"
clap_mangen = "0.2.25"
chrono = { version = "0.4.40", default-features = false, features = [
"std",
"clock",
] }
clru = "0.6.2"
criterion = "0.5.1"
crossterm = { version = "0.28", default-features = false, features = ["windows"] }
digest = "0.10.7"
dirs = "6.0.0"
dunce = "1.0.5"
either = "1.15.0"
futures = "0.3.31"
git2 = { version = "0.20.1", features = [
# Do *not* disable this feature even if you'd like dynamic linking. Instead,
# set the environment variable `LIBGIT2_NO_VENDOR=1` if dynamic linking must
# be used (this will override the Cargo feature), and allow static linking
# in other cases. Rationale: If neither the feature nor the environment
# variable are set, `git2` may still decide to vendor `libgit2` if it
# doesn't find a version of `libgit2` to link to dynamically. See also
# https://github.com/rust-lang/git2-rs/commit/3cef4119f
"vendored-libgit2"
] }
gix = { version = "0.70.0", default-features = false, features = [
"attributes",
"blob-diff",
"index",
"max-performance-safe",
] }
glob = "0.3.2"
hashbrown = { version = "0.15.2", default-features = false, features = ["inline-more"] }
hex = "0.4.3"
ignore = "0.4.23"
indexmap = { version = "2.8.0", features = ["serde"] }
indoc = "2.0.6"
insta = { version = "1.42.2", features = ["filters"] }
interim = { version = "0.2.1", features = ["chrono_0_4"] }
itertools = "0.13.0"
libc = { version = "0.2.171" }
maplit = "1.0.2"
num_cpus = "1.16.0"
once_cell = "1.21.3"
os_pipe = "1.2.1"
pest = "2.8.0"
pest_derive = "2.8.0"
pollster = "0.4.0"
pretty_assertions = "1.4.1"
proc-macro2 = "1.0.94"
prost = "0.12.6"
prost-build = "0.12.6"
quote = "1.0.40"
rand = "0.8.5"
rand_chacha = "0.3.1"
rayon = "1.10.0"
ref-cast = "1.0.24"
regex = "1.11.1"
rpassword = "7.3.1"
rustix = { version = "1.0.5", features = ["fs"] }
same-file = "1.0.6"
sapling-renderdag = "0.1.0"
sapling-streampager = "0.11.0"
scm-record = "0.8.0"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0.140"
slab = "0.4.9"
smallvec = { version = "1.14.0", features = [
"const_generics",
"const_new",
"union",
] }
strsim = "0.11.1"
syn = "2.0.100"
tempfile = "3.19.1"
test-case = "3.3.1"
textwrap = "0.16.2"
thiserror = "2.0.12"
timeago = { version = "0.4.2", default-features = false }
tokio = { version = "1.44.1" }
toml_edit = { version = "0.22.24", features = ["serde"] }
tracing = "0.1.41"
tracing-chrome = "0.7.2"
tracing-subscriber = { version = "0.3.19", default-features = false, features = [
"std",
"ansi",
"env-filter",
"fmt",
] }
unicode-width = "0.2.0"
version_check = "0.9.5"
watchman_client = { version = "0.9.0" }
whoami = "1.6.0"
winreg = "0.52"
# put all inter-workspace libraries, i.e. those that use 'path = ...' here in
# their own (alphabetically sorted) block
jj-lib = { path = "lib", version = "0.27.0", default-features = false }
jj-lib-proc-macros = { path = "lib/proc-macros", version = "0.27.0" }
testutils = { path = "lib/testutils", default-features = false }
[workspace.lints.clippy]
explicit_iter_loop = "warn"
flat_map_option = "warn"
implicit_clone = "warn"
needless_for_each = "warn"
semicolon_if_nothing_returned = "warn"
uninlined_format_args = "warn"
unused_trait_names = "warn"
useless_conversion = "warn"
# Insta suggests compiling these packages in opt mode for faster testing.
# See https://docs.rs/insta/latest/insta/#optional-faster-runs.
[profile.dev.package]
insta.opt-level = 3
similar.opt-level = 3
[profile.release]
strip = "debuginfo"
codegen-units = 1