1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
[]
= "stuffr-cli"
= true
= "The stuffr command line interface"
= true
= true
= true
= true
= ["compression", "archive", "cli", "unzip", "extract"]
= ["command-line-utilities", "compression"]
= "README.md"
[[]]
= "stuffr"
= "src/main.rs"
# Passthroughs to the facade, and they exist for one reason: `cargo install
# stuffr-cli --features <x>` is what the documentation tells a user to type,
# and Cargo resolves `<x>` against THIS package, not against its dependency.
# Until Phase 3b's fix wave there was no `[features]` section here at all, so
# every documented install command failed with "the package 'stuffr-cli' does
# not contain this feature" — `--features c-backed` had shipped that way since
# before `legacy` existed, printed as a copyable line in both READMEs. The only
# working spelling was `--features stuffr/legacy`, which appeared nowhere.
#
# One entry per name any document tells a user to install with: the two build
# tiers, the `legacy` bundle, `full`, and the three legacy formats the README
# names individually. `cargo install stuffr-cli` on its own still gets the
# facade's own `default = ["pure"]` — nothing here is a default, so adding a
# feature never silently changes what a plain install builds.
# `documented_install_commands_name_features_this_crate_declares` in
# `tests/cli.rs` fails the build if a README grows a `--features` spelling this
# table does not carry.
[]
= ["stuffr/pure"]
= ["stuffr/c-backed"]
= ["stuffr/legacy"]
= ["stuffr/full"]
= ["stuffr/lha"]
= ["stuffr/arj"]
= ["stuffr/compress"]
= ["stuffr/arc"]
= ["stuffr/zoo"]
# Note the absence of `default-features = false` here: this edge always
# requests `stuffr`'s own `default` feature set (`pure` and, since the commit
# that added `legacy` to it, `legacy` too) regardless of any
# `--no-default-features`/`--features` passed to `stuffr-cli` itself —
# `stuffr-cli` declares no `[features] default` of its own for that flag to
# disable. Verified directly: `cargo build -p stuffr-cli
# --no-default-features` (no `--features` at all) still ships `lha`, `arj`
# and `compress` in `stuffr formats`. Consequence: there is no CLI-flag-only
# way to build the `stuffr` binary without `legacy` any more — see the dead
# projection this made in `crates/stuffr-cli/tests/cli.rs`.
[]
= { = "../stuffr", = "0.10.0", = ["serde"] }
= { = true }
= "1"
[]
# Fixture builders for the `list`/`test` integration tests: real tar and
# real gzip, independent of `stuffr-formats`' own `Tar`/gzip implementations,
# so a read-side bug there cannot also hide in the fixture that exercises it.
= { = true }
= { = true }