[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 } config = { workspace = true } criterion = { workspace = true, optional = true } crossterm = { workspace = true } dirs = { workspace = true } dunce = { workspace = true } futures = { workspace = true } git2 = { workspace = true } gix = { workspace = true } indexmap = { workspace = true } indoc = { workspace = true } itertools = { workspace = true } jj-lib = { workspace = true } maplit = { workspace = true } minus = { workspace = true } once_cell = { 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 } 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 } [target.'cfg(unix)'.dependencies] libc = { workspace = true } [dev-dependencies] anyhow = { workspace = true } 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"] bench = ["dep:criterion"] packaging = [] 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