@@ -52,7 +52,10 @@ tack dedup report inputs reachable from multiple pins
5252
5353` tack dedup ` reports inputs reachable from more than one of your pins, whether
5454direct or transitive, and recurses through the pins of your pins indefinitely.
55- when a top-level pin matches, it suggests an ` [all_follow] ` rule to share it.
55+ its output is two sub-blocks of ready-to-paste ` [all_follow] ` rules. the first
56+ block refers to existing top-level pins, the subsequent one refers to inputs tack
57+ will synthesise on the next ` tack update ` . targets with multiple aliases collapse
58+ into a single array entry.
5659
5760## pin types
5861
@@ -98,17 +101,31 @@ url = "gh:owner/foo"
98101follows = { nixpkgs = " nixpkgs" } # foo's nixpkgs -> your nixpkgs pin
99102```
100103
101- ` all_follow ` applies a rule to every pin that has a matching input
104+ ` all_follow ` applies a rule to every pin that has a matching input. two value
105+ shapes are accepted:
102106
103107``` toml
104108[all_follow ]
105- nixpkgs = " nixpkgs" # every input named nixpkgs follows your nixpkgs pin
109+ # alias -> target. every input named fenix follows your top-level fenix pin
110+ fenix = " fenix"
111+
112+ # target -> [aliases]. the key is the canonical target, and the key plus every
113+ # array member alias to it. one row covers many aliases of the same target
114+ nixpkgs = [" nixpkgs-stable" , " nixpkgs-unstable" ]
106115
107116[inputs .bar ]
108117url = " gh:owner/bar"
109118exclude_follow = [" nixpkgs" ] # ...except bar's
110119```
111120
121+ when a target named in ` [all_follow] ` isn't itself a top-level ` [inputs] ` pin,
122+ ` tack update ` synthesises a lock entry for it by walking every top-level
123+ flake.lock, collecting the observed revs of the aliased name, and writing the
124+ freshest by ` lastModified ` into pins.lock.json. the resolver then treats the
125+ synthetic entry as a default flake, or as a bare source tree when its repo has
126+ no ` flake.nix ` . this lets you dedup transitive inputs (e.g. ` crane ` ) without declaring
127+ them as top-level pins you don't actually consume.
128+
112129## build
113130
114131```
0 commit comments