cargo-features = [] [workspace] resolver = "3" members = ["cli", "lib", "lib/gen-protos", "lib/proc-macros", "lib/testutils"] [workspace.package] version = "0.36.0" license = "Apache-2.0" rust-version = "1.89" # NOTE: remember to update CI, mise.toml, contributing.md, changelog.md, and install-and-setup.md edition = "2024" readme = "README.md" homepage = "https://www.jj-vcs.dev/" repository = "https://github.com/jj-vcs/jj" documentation = "https://docs.jj-vcs.dev/" categories = ["version-control", "development-tools"] keywords = ["VCS", "DVCS", "SCM", "Git", "Mercurial"] [workspace.dependencies] assert_cmd = "2.1.1" assert_matches = "1.5.0" async-trait = "0.1.89" blake2 = "0.10.6" bstr = "1.12.1" clap = { version = "4.5.53", features = [ "derive", "deprecated", "wrap_help", "string", ] } clap_complete = { version = "4.5.61", features = ["unstable-dynamic"] } clap_complete_nushell = "4.5.10" # Update clap-markdown manually since test_generate_md_cli_help snapshot # will need regenerating. clap-markdown = "=0.1.5" clap_mangen = "0.2.25" chrono = { version = "0.4.42", default-features = false, features = [ "std", "clock", "serde", ] } clru = "0.6.2" criterion = "0.8.1" crossterm = { version = "0.29", default-features = false, features = ["windows"] } datatest-stable = "0.3.3" digest = "0.10.7" dunce = "1.0.5" either = "1.15.0" erased-serde = "0.4.9" etcetera = "0.11.0" futures = "0.3.31" gix = { version = "0.75.0", default-features = false, features = [ "attributes", "blob-diff", "index", "max-performance-safe", "zlib-rs", ] } globset = "0.4.18" hashbrown = { version = "0.16.1", default-features = false, features = ["inline-more"] } ignore = "0.4.25" indexmap = { version = "2.12.1", features = ["serde"] } indoc = "2.0.7" insta = { version = "1.44.3", features = ["filters"] } interim = { version = "0.2.1", features = ["chrono_0_4"] } itertools = "0.14.0" jsonschema = { version = "0.37.4", default-features = false } libc = { version = "0.2.178" } maplit = "1.0.2" nix = "0.30.1" num_cpus = "1.17.0" once_cell = "1.21.3" pest = "2.8.4" pest_derive = "2.8.4" pollster = "0.4.0" pretty_assertions = "1.4.1" proc-macro2 = "1.0.103" proptest = "1.9.0" proptest-derive = "0.7.0" proptest-state-machine = "0.6.0" prost = "0.14.1" prost-build = "0.14.1" quote = "1.0.42" rand = "0.9.2" rand_chacha = "0.9.0" rayon = "1.10.0" ref-cast = "1.0.25" regex = "1.12.2" rpassword = "7.4.0" rustix = { version = "1.1.2", features = ["fs"] } same-file = "1.0.6" sapling-renderdag = "0.1.0" sapling-streampager = "0.11.2" scm-record = "0.9.0" serde = { version = "1.0", features = ["derive", "rc"] } serde_json = "1.0.145" slab = "0.4.11" smallvec = { version = "1.15.1", features = [ "const_generics", "const_new", "serde", "union", ] } strsim = "0.11.1" syn = "2.0.111" rustversion = "1.0.22" tempfile = "3.23.0" test-case = "3.3.1" textwrap = "0.16.2" thiserror = "2.0.17" timeago = { version = "0.5.0", default-features = false } tokio = { version = "1.48.0", features = ["io-util"] } toml = "0.9.8" toml_edit = { version = "0.23.9", features = ["serde"] } tracing = "0.1.43" tracing-chrome = "0.7.2" tracing-subscriber = { version = "0.3.22", 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.1" winreg = "0.55" # put all inter-workspace libraries, i.e. those that use 'path = ...' here in # their own (alphabetically sorted) block jj-lib = { path = "lib", version = "0.36.0", default-features = false } jj-lib-proc-macros = { path = "lib/proc-macros", version = "0.36.0" } testutils = { path = "lib/testutils" } [workspace.lints.clippy] borrow_as_ptr = "warn" cast_lossless = "warn" explicit_into_iter_loop = "warn" explicit_iter_loop = "warn" flat_map_option = "warn" implicit_clone = "warn" needless_for_each = "warn" ptr_as_ptr = "warn" ptr_cast_constness = "warn" ref_as_ptr = "warn" semicolon_if_nothing_returned = "warn" uninlined_format_args = "warn" unnecessary_literal_bound = "warn" unused_trait_names = "warn" use_self = "warn" useless_conversion = "warn" [profile.dev.package] # Insta suggests compiling these packages in opt mode for faster testing. # See https://docs.rs/insta/latest/insta/#optional-faster-runs. insta.opt-level = 3 similar.opt-level = 3 # Proptest suggests compiling itself and its RNG in opt mode as well. # See https://proptest-rs.github.io/proptest/proptest/tips-and-best-practices.html#setting-opt-level proptest.opt-level = 3 proptest-state-machine.opt-level = 3 rand_chacha.opt-level = 3 [profile.release] strip = "debuginfo" codegen-units = 1