jj/Cargo.toml
Gaëtan Lehmann 1e1decb594 dev: add mise config
The [vars] section is used to define the tool versions, and the tools
are only declared in each task in order to be able to run a task and
install only the required dependencies. This way

  mise build:docs

only install the docs dependencies, but not the rust toolchain.

The task are organized hierarchically, allowing to run all of the tasks
in a category, for example with

  mise run "check:*"

Some aliases for the most common tasks are defined in order to keep the
command line short and easy to type. For example use

  mise test squash

to run all the squash tests.

Co-authored-by: Emily <artyom@artyom.me>
2025-09-04 08:33:03 +00:00

161 lines
4.5 KiB
TOML

cargo-features = []
[workspace]
resolver = "3"
members = ["cli", "lib", "lib/gen-protos", "lib/proc-macros", "lib/testutils"]
[workspace.package]
version = "0.33.0"
license = "Apache-2.0"
rust-version = "1.85" # NOTE: remember to update CI, mise.toml, contributing.md, changelog.md, and install-and-setup.md
edition = "2024"
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.89"
blake2 = "0.10.6"
bstr = "1.11.3"
clap = { version = "4.5.43", features = [
"derive",
"deprecated",
"wrap_help",
"string",
] }
clap_complete = { version = "4.5.56", features = ["unstable-dynamic"] }
clap_complete_nushell = "4.5.8"
# 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.41", default-features = false, features = [
"std",
"clock",
"serde",
] }
clru = "0.6.2"
criterion = "0.5.1"
crossterm = { version = "0.28", default-features = false, features = ["windows"] }
datatest-stable = "0.3.2"
digest = "0.10.7"
dunce = "1.0.5"
erased-serde = "0.4.6"
etcetera = "0.10.0"
either = "1.15.0"
futures = "0.3.31"
gix = { version = "0.73.0", default-features = false, features = [
"attributes",
"blob-diff",
"index",
"max-performance-safe",
"zlib-rs",
] }
globset = "0.4.16"
hashbrown = { version = "0.15.5", default-features = false, features = ["inline-more"] }
ignore = "0.4.23"
indexmap = { version = "2.11.0", features = ["serde"] }
indoc = "2.0.6"
insta = { version = "1.43.1", features = ["filters"] }
interim = { version = "0.2.1", features = ["chrono_0_4"] }
itertools = "0.14.0"
jsonschema = { version = "0.32.1", default-features = false }
libc = { version = "0.2.175" }
maplit = "1.0.2"
nix = "0.30.1"
num_cpus = "1.17.0"
once_cell = "1.21.3"
os_pipe = "1.2.2"
pest = "2.8.1"
pest_derive = "2.8.1"
pollster = "0.4.0"
pretty_assertions = "1.4.1"
proc-macro2 = "1.0.96"
proptest = "1.7.0"
proptest-derive = "0.6.0"
proptest-state-machine = "0.3.1"
prost = "0.13.5"
prost-build = "0.13.5"
quote = "1.0.40"
rand = "0.9.2"
rand_chacha = "0.9.0"
rayon = "1.10.0"
ref-cast = "1.0.24"
regex = "1.11.2"
rpassword = "7.4.0"
rustix = { version = "1.0.7", 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", "rc"] }
serde_json = "1.0.143"
slab = "0.4.11"
smallvec = { version = "1.15.1", features = [
"const_generics",
"const_new",
"serde",
"union",
] }
strsim = "0.11.1"
syn = "2.0.104"
rustversion = "1.0.22"
tempfile = "3.21.0"
test-case = "3.3.1"
textwrap = "0.16.2"
thiserror = "2.0.16"
timeago = { version = "0.4.2", default-features = false }
tokio = { version = "1.47.1", features = ["io-util"] }
toml = "0.9.5"
toml_edit = { version = "0.23.4", features = ["serde"] }
tracing = "0.1.41"
tracing-chrome = "0.7.2"
tracing-subscriber = { version = "0.3.20", 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.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.33.0", default-features = false }
jj-lib-proc-macros = { path = "lib/proc-macros", version = "0.33.0" }
testutils = { path = "lib/testutils" }
[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"
use_self = "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