just playing with tangled
1[package]
2name = "jj-cli"
3description = "Jujutsu - an experimental version control system"
4default-run = "jj"
5autotests = false
6
7version = { workspace = true }
8edition = { workspace = true }
9rust-version = { workspace = true }
10license = { workspace = true }
11homepage = { workspace = true }
12repository = { workspace = true }
13documentation = { workspace = true }
14keywords = { workspace = true }
15
16include = [
17 "/LICENSE",
18 "/build.rs",
19 "/examples/",
20 "/src/",
21 "/docs/**",
22 "/testing/",
23 "/tests/",
24 "!*.pending-snap",
25 "!*.snap*",
26 "/tests/cli-reference@.md.snap",
27]
28
29[[bin]]
30name = "jj"
31path = "src/main.rs"
32
33[[bin]]
34name = "fake-editor"
35path = "testing/fake-editor.rs"
36required-features = ["test-fakes"]
37
38[[bin]]
39name = "fake-diff-editor"
40path = "testing/fake-diff-editor.rs"
41required-features = ["test-fakes"]
42
43[[bin]]
44name = "fake-formatter"
45path = "testing/fake-formatter.rs"
46required-features = ["test-fakes"]
47
48[[test]]
49name = "runner"
50
51[dependencies]
52bstr = { workspace = true }
53chrono = { workspace = true }
54clap = { workspace = true }
55clap-markdown = { workspace = true }
56clap_complete = { workspace = true }
57clap_complete_nushell = { workspace = true }
58clap_mangen = { workspace = true }
59criterion = { workspace = true, optional = true }
60crossterm = { workspace = true }
61dirs = { workspace = true }
62dunce = { workspace = true }
63futures = { workspace = true }
64git2 = { workspace = true, optional = true }
65gix = { workspace = true, optional = true }
66glob = { workspace = true }
67indexmap = { workspace = true }
68indoc = { workspace = true }
69itertools = { workspace = true }
70jj-lib = { workspace = true }
71maplit = { workspace = true }
72once_cell = { workspace = true }
73os_pipe = { workspace = true }
74pest = { workspace = true }
75pest_derive = { workspace = true }
76pollster = { workspace = true }
77rayon = { workspace = true }
78regex = { workspace = true }
79rpassword = { workspace = true }
80sapling-renderdag = { workspace = true }
81sapling-streampager = { workspace = true }
82scm-record = { workspace = true }
83serde = { workspace = true }
84serde_json = { workspace = true }
85slab = { workspace = true }
86strsim = { workspace = true }
87tempfile = { workspace = true }
88textwrap = { workspace = true }
89thiserror = { workspace = true }
90timeago = { workspace = true }
91toml_edit = { workspace = true }
92tracing = { workspace = true }
93tracing-chrome = { workspace = true }
94tracing-subscriber = { workspace = true }
95unicode-width = { workspace = true }
96whoami = { workspace = true }
97
98# TODO: Workaround for Cargo weirdness; remove when `git2` goes away.
99testutils = { workspace = true, optional = true }
100
101[target.'cfg(unix)'.dependencies]
102libc = { workspace = true }
103
104[dev-dependencies]
105assert_cmd = { workspace = true }
106assert_matches = { workspace = true }
107async-trait = { workspace = true }
108insta = { workspace = true }
109test-case = { workspace = true }
110testutils = { workspace = true }
111# https://github.com/rust-lang/cargo/issues/2911#issuecomment-1483256987
112jj-cli = { path = ".", features = ["test-fakes"], default-features = false }
113
114[features]
115default = ["watchman", "git", "git2"]
116bench = ["dep:criterion"]
117git = ["jj-lib/git", "dep:gix"]
118git2 = ["git", "jj-lib/git2", "testutils?/git2", "dep:git2"]
119gix-max-performance = ["jj-lib/gix-max-performance"]
120packaging = ["gix-max-performance"]
121test-fakes = ["jj-lib/testing"]
122vendored-openssl = ["git2/vendored-openssl", "jj-lib/vendored-openssl"]
123watchman = ["jj-lib/watchman"]
124
125[package.metadata.binstall]
126# The archive name is jj, not jj-cli. Also, `cargo binstall` gets
127# confused by the `v` before versions in archive name.
128pkg-url = "{ repo }/releases/download/v{ version }/jj-v{ version }-{ target }.{ archive-format }"
129
130[lints]
131workspace = true