[package]name = "jj-cli"description = "Jujutsu - an experimental version control system"default-run = "jj"autotests = false version = { workspace = true }edition = { workspace = true }rust-version = { workspace = true }license = { workspace = true }homepage = { workspace = true }repository = { workspace = true }documentation = { workspace = true }keywords = { workspace = true } include = [ "/LICENSE", "/build.rs", "/examples/", "/src/", "/docs/**", "/testing/", "/tests/", "!*.pending-snap", "!*.snap*", "/tests/cli-reference@.md.snap",] [[bin]]name = "jj"path = "src/main.rs" [[bin]]name = "fake-editor"path = "testing/fake-editor.rs"required-features = ["test-fakes"] [[bin]]name = "fake-diff-editor"path = "testing/fake-diff-editor.rs"required-features = ["test-fakes"] [[bin]]name = "fake-formatter"path = "testing/fake-formatter.rs"required-features = ["test-fakes"] [[test]]name = "runner" [dependencies]bstr = { workspace = true }chrono = { workspace = true }clap = { workspace = true }clap-markdown = { workspace = true }clap_complete = { workspace = true }clap_complete_nushell = { workspace = true }clap_mangen = { workspace = true }criterion = { workspace = true, optional = true }crossterm = { workspace = true }dirs = { workspace = true }dunce = { workspace = true }futures = { workspace = true }git2 = { workspace = true, optional = true }gix = { workspace = true, optional = true }glob = { workspace = true }indexmap = { workspace = true }indoc = { workspace = true }itertools = { workspace = true }jj-lib = { workspace = true }maplit = { workspace = true }once_cell = { workspace = true }os_pipe = { workspace = true }pest = { workspace = true }pest_derive = { workspace = true }pollster = { workspace = true }rayon = { workspace = true }regex = { workspace = true }rpassword = { workspace = true }sapling-renderdag = { workspace = true }sapling-streampager = { workspace = true }scm-record = { workspace = true }serde = { workspace = true }serde_json = { workspace = true }slab = { workspace = true }strsim = { 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 }unicode-width = { workspace = true }whoami = { workspace = true } # TODO: Workaround for Cargo weirdness; remove when `git2` goes away.testutils = { workspace = true, optional = true } [target.'cfg(unix)'.dependencies]libc = { workspace = true } [dev-dependencies]assert_cmd = { workspace = true }assert_matches = { workspace = true }async-trait = { workspace = true }insta = { workspace = true }test-case = { workspace = true }testutils = { workspace = true }# https://github.com/rust-lang/cargo/issues/2911#issuecomment-1483256987jj-cli = { path = ".", features = ["test-fakes"], default-features = false } [features]default = ["watchman", "git", "git2"]bench = ["dep:criterion"]git = ["jj-lib/git", "dep:gix"]git2 = ["git", "jj-lib/git2", "testutils?/git2", "dep:git2"]gix-max-performance = ["jj-lib/gix-max-performance"]packaging = ["gix-max-performance"]test-fakes = ["jj-lib/testing"]vendored-openssl = ["git2/vendored-openssl", "jj-lib/vendored-openssl"]watchman = ["jj-lib/watchman"] [package.metadata.binstall]# The archive name is jj, not jj-cli. Also, `cargo binstall` gets# confused by the `v` before versions in archive name.pkg-url = "{ repo }/releases/download/v{ version }/jj-v{ version }-{ target }.{ archive-format }" [lints]workspace = true
[package]
name = "jj-cli"
description = "Jujutsu - an experimental version control system"
default-run = "jj"
autotests = false
version = { workspace = true }
edition = { workspace = true }
rust-version = { workspace = true }
license = { workspace = true }
homepage = { workspace = true }
repository = { workspace = true }
documentation = { workspace = true }
keywords = { workspace = true }
include = [
"/LICENSE",
"/build.rs",
"/examples/",
"/src/",
"/docs/**",
"/testing/",
"/tests/",
"!*.pending-snap",
"!*.snap*",
"/tests/cli-reference@.md.snap",
]
[[bin]]
name = "jj"
path = "src/main.rs"
[[bin]]
name = "fake-editor"
path = "testing/fake-editor.rs"
required-features = ["test-fakes"]
[[bin]]
name = "fake-diff-editor"
path = "testing/fake-diff-editor.rs"
required-features = ["test-fakes"]
[[bin]]
name = "fake-formatter"
path = "testing/fake-formatter.rs"
required-features = ["test-fakes"]
[[test]]
name = "runner"
[dependencies]
bstr = { workspace = true }
chrono = { workspace = true }
clap = { workspace = true }
clap-markdown = { workspace = true }
clap_complete = { workspace = true }
clap_complete_nushell = { workspace = true }
clap_mangen = { workspace = true }
criterion = { workspace = true, optional = true }
crossterm = { workspace = true }
dirs = { workspace = true }
dunce = { workspace = true }
futures = { workspace = true }
git2 = { workspace = true, optional = true }
gix = { workspace = true, optional = true }
glob = { workspace = true }
indexmap = { workspace = true }
indoc = { workspace = true }
itertools = { workspace = true }
jj-lib = { workspace = true }
maplit = { workspace = true }
once_cell = { workspace = true }
os_pipe = { workspace = true }
pest = { workspace = true }
pest_derive = { workspace = true }
pollster = { workspace = true }
rayon = { workspace = true }
regex = { workspace = true }
rpassword = { workspace = true }
sapling-renderdag = { workspace = true }
sapling-streampager = { workspace = true }
scm-record = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
slab = { workspace = true }
strsim = { 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 }
unicode-width = { workspace = true }
whoami = { workspace = true }
# TODO: Workaround for Cargo weirdness; remove when `git2` goes away.
testutils = { workspace = true, optional = true }
[target.'cfg(unix)'.dependencies]
libc = { workspace = true }
[dev-dependencies]
assert_cmd = { workspace = true }
assert_matches = { workspace = true }
async-trait = { workspace = true }
insta = { workspace = true }
test-case = { workspace = true }
testutils = { workspace = true }
# https://github.com/rust-lang/cargo/issues/2911#issuecomment-1483256987
jj-cli = { path = ".", features = ["test-fakes"], default-features = false }
[features]
default = ["watchman", "git", "git2"]
bench = ["dep:criterion"]
git = ["jj-lib/git", "dep:gix"]
git2 = ["git", "jj-lib/git2", "testutils?/git2", "dep:git2"]
gix-max-performance = ["jj-lib/gix-max-performance"]
packaging = ["gix-max-performance"]
test-fakes = ["jj-lib/testing"]
vendored-openssl = ["git2/vendored-openssl", "jj-lib/vendored-openssl"]
watchman = ["jj-lib/watchman"]
[package.metadata.binstall]
# The archive name is jj, not jj-cli. Also, `cargo binstall` gets
# confused by the `v` before versions in archive name.
pkg-url = "{ repo }/releases/download/v{ version }/jj-v{ version }-{ target }.{ archive-format }"
[lints]
workspace = true