cargo-features = [] [workspace] resolver = "3" members = ["cli", "lib", "lib/gen-protos", "lib/proc-macros", "lib/testutils"] [workspace.package] version = "0.43.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] ansi-to-tui = "8.0.1" anstream = "1.0.0" assert_cmd = "2.2.2" assert_matches = "1.5.0" async-trait = "0.1.89" blake2 = "0.10.6" bstr = { version = "1.12.1", features = ["serde"] } chrono = { version = "0.4.44", default-features = false, features = [ "std", "clock", "serde", ] } clap = { version = "4.6.1", features = [ "derive", "deprecated", "wrap_help", "string", ] } # Update clap-markdown manually since test_generate_md_cli_help snapshot # will need regenerating. clap-markdown = "=0.1.5" clap_complete = { version = "4.6.5", features = ["unstable-dynamic"] } clap_complete_nushell = "4.6.0" clap_mangen = "0.3.0" clru = "0.6.3" criterion = "0.8.2" crossterm = { version = "0.29", default-features = false, features = ["windows"] } ctrlc = { version = "3.5.2", features = ["termination"] } datatest-stable = "0.3.3" digest = "0.10.7" dunce = "1.0.5" either = "1.16.0" erased-serde = "0.4.10" etcetera = "0.11.0" eyre = "0.6" futures = "0.3.32" gix = { version = "0.85.0", default-features = false, features = [ "attributes", "blob-diff", "index", "max-performance-safe", "sha1", "sha256", "zlib-rs", ] } gix-ignore = { version = "0.21.0" } globset = "0.4.18" hashbrown = { version = "0.17.1", default-features = false, features = ["inline-more"] } indexmap = { version = "2.14.0", features = ["serde"] } indoc = "2.0.7" insta = { version = "1.47.2", features = ["filters"] } interim = { version = "0.2.1", features = ["chrono_0_4"] } itertools = "0.15.0" jsonschema = { version = "0.49.1", default-features = false } libc = { version = "0.2.186" } maplit = "1.0.2" memchr = "2.8.2" # no_thp due to perf issues with kernel page compaction, see #9708 mimalloc = { version = "0.1.52", features = ["no_thp"] } nix = "0.31.3" num_cpus = "1.17.0" once_cell = "1.21.4" percent-encoding = "2.3.2" pest = "2.8.6" pest_derive = "2.8.6" pollster = "1.0.1" pretty_assertions = "1.4.1" proc-macro2 = "1.0.104" proptest = "1.11.0" proptest-derive = "0.8.0" proptest-state-machine = "0.8.0" prost = "0.14.3" prost-build = "0.14.3" quote = "1.0.45" rand = "0.10.1" rand_chacha = "0.10.0" ratatui = { version = "0.30.0", features = ["crossterm"] } rayon = "1.12.0" ref-cast = "1.0.25" regex = "1.12.3" rpassword = "7.5.4" rustix = { version = "1.1.4", features = ["fs"] } rustversion = "1.0.22" same-file = "1.0.6" sapling-renderdag = "0.1.0" sapling-streampager = "0.12.0" scm-record = "0.10.0" serde = { version = "1.0", features = ["derive", "rc"] } serde_json = "1.0.150" shlex = "2.0.1" slab = "0.4.12" smallvec = { version = "1.15.1", features = [ "const_generics", "const_new", "serde", "union", ] } strsim = "0.11.1" syn = "3.0.3" tempfile = "3.27.0" test-case = "3.3.1" textwrap = "0.16.2" thiserror = "2.0.17" timeago = { version = "0.6.0", default-features = false } tokio = { version = "1.52.3", features = ["fs", "io-util", "process", "rt-multi-thread", "sync", "time"] } toml = "1.1.0" toml_edit = { version = "0.25.12", features = ["serde"] } tracing = "0.1.44" tracing-chrome = "0.7.2" tracing-subscriber = { version = "0.3.23", default-features = false, features = [ "std", "ansi", "env-filter", "fmt", ] } unicode-width = "0.2.2" watchman_client = "0.9.0" whoami = "2.1.2" winreg = "0.56" # put all inter-workspace libraries, i.e. those that use 'path = ...' here in # their own (alphabetically sorted) block jj-lib = { path = "lib", version = "0.43.0", default-features = false } jj-lib-proc-macros = { path = "lib/proc-macros", version = "0.43.0" } testutils = { path = "lib/testutils" } [workspace.lints.clippy] borrow_as_ptr = "warn" cast_lossless = "warn" cloned_instead_of_copied = "warn" elidable_lifetime_names = "warn" explicit_into_iter_loop = "warn" explicit_iter_loop = "warn" flat_map_option = "warn" format_collect = "warn" format_push_string = "warn" implicit_clone = "warn" manual_let_else = "warn" needless_for_each = "warn" ptr_as_ptr = "warn" ptr_cast_constness = "warn" ref_as_ptr = "warn" ref_option = "warn" semicolon_if_nothing_returned = "warn" single_char_pattern = "warn" stable_sort_primitive = "warn" uninlined_format_args = "warn" unnecessary_literal_bound = "warn" unnecessary_semicolon = "warn" unnested_or_patterns = "warn" unused_trait_names = "warn" use_self = "warn" useless_conversion = "warn" while_let_loop = "warn" [workspace.lints.rust] let_underscore_drop = "warn" redundant_imports = "warn" [profile.dev.package."*"] # Compile all dependencies with opt-level=3 to help speed up tests and # debug builds codegen-units = 1 debug = "line-tables-only" opt-level = 3 [profile.release] strip = "debuginfo" codegen-units = 1