···18 added: [ <keys only in the second object> ],
19 removed: [ <keys only in the first object> ],
20 changed: [ <keys with different values between the two objects> ],
021 }
22 */
23 diff =
024 let
25 filterKeys = cond: attrs: lib.attrNames (lib.filterAttrs cond attrs);
0000026 in
27- old: new: {
28 added = filterKeys (n: _: !(old ? ${n})) new;
29 removed = filterKeys (n: _: !(new ? ${n})) old;
30 changed = filterKeys (
···35 # Filter out attributes that are the same as the new value
36 && (v != (new.${n}))
37 ) old;
000000000038 };
3940 getAttrs =
···18 added: [ <keys only in the second object> ],
19 removed: [ <keys only in the first object> ],
20 changed: [ <keys with different values between the two objects> ],
21+ rebuilds: [ <keys in the second object with values not present at all in first object> ],
22 }
23 */
24 diff =
25+ old: new:
26 let
27 filterKeys = cond: attrs: lib.attrNames (lib.filterAttrs cond attrs);
28+ oldOutputs = lib.pipe old [
29+ (lib.mapAttrsToList (_: lib.attrValues))
30+ lib.concatLists
31+ (lib.flip lib.genAttrs (_: true))
32+ ];
33 in
34+ {
35 added = filterKeys (n: _: !(old ? ${n})) new;
36 removed = filterKeys (n: _: !(new ? ${n})) old;
37 changed = filterKeys (
···42 # Filter out attributes that are the same as the new value
43 && (v != (new.${n}))
44 ) old;
45+ # A "rebuild" is every attrpath ...
46+ rebuilds = filterKeys (
47+ _: pkg:
48+ # ... that has at least one output ...
49+ lib.any (
50+ output:
51+ # ... which has not been built in "old" already.
52+ !(oldOutputs ? ${output})
53+ ) (lib.attrValues pkg)
54+ ) new;
55 };
5657 getAttrs =
···48 solarized = vim-colors-solarized;
49 spacevim = throw "this distribution was unmaintained for the last 6 years, please use top-level 'spacevim'"; # added 2024-11-27
50 SpaceVim = throw "this distribution didn't work properly in vimPlugins, please use top-level 'spacevim' instead"; # added 2024-11-27
051 colors-solarized = vim-colors-solarized;
52 caw = caw-vim;
53 chad = chadtree;
···48 solarized = vim-colors-solarized;
49 spacevim = throw "this distribution was unmaintained for the last 6 years, please use top-level 'spacevim'"; # added 2024-11-27
50 SpaceVim = throw "this distribution didn't work properly in vimPlugins, please use top-level 'spacevim' instead"; # added 2024-11-27
51+ sparkup = throw "the upstream repository got deleted"; # added 2025-08-06
52 colors-solarized = vim-colors-solarized;
53 caw = caw-vim;
54 chad = chadtree;
···191. `cp -r pkgs/by-name/ka/kanidm/patches/1_4 pkgs/by-name/ka/kanidm/patches/1_5`
201. Update `1_5.nix` hashes/paths, and as needed for upstream changes, `generic.nix`
211. Update `all-packages.nix` to add `kanidm_1_5` and `kanidmWithSecretProvisioning_1_5`, leave default
0221. Create commit, `kanidm_1_5: init at 1.5.0` - this is the only commit that will be backported
2324### Update default
···191. `cp -r pkgs/by-name/ka/kanidm/patches/1_4 pkgs/by-name/ka/kanidm/patches/1_5`
201. Update `1_5.nix` hashes/paths, and as needed for upstream changes, `generic.nix`
211. Update `all-packages.nix` to add `kanidm_1_5` and `kanidmWithSecretProvisioning_1_5`, leave default
22+1. Update the previous release, e.g. `1_4.nix` and set `eolDate = "YYYY-MM-DD"` where the date is 30 days from release of 1.5.
231. Create commit, `kanidm_1_5: init at 1.5.0` - this is the only commit that will be backported
2425### Update default