Skip to content

v5.6.0: modules improved, example config moved.

Compare
Choose a tag to compare
@BirdeeHub BirdeeHub released this 25 Oct 13:18
· 214 commits to main since this release

The example config has been moved from the top level of the repo, which was confusing, to a template.

Instructions on how to run said example config have been updated to match.

Modules have been greatly improved.

The important change is, defining packageDefinitions and categoryDefinitions via module options in separate files will now be correctly merged together. This means you can add categories and plugins to your config from anywhere in your config with much more freedom when using the modules, as you can define them in multiple places more easily.

The second change is: To allow me to move the example config, they needed to be exportable without having a configuration that they are based on.

This is mostly irrelevant for users, outside of the fact that those importing the modules straight from nixCats before, may continue to do so provided they set nixpkgs_version option themselves if they have not already. This is a breaking change if you did not already have this option set, and an error will instruct you on what to change. Add nixpkgs_version = inputs.nixpkgs; to your module if you have not already done so. For modules based on other configurations, this is not relevant, as it will be able to use the one provided by that configuration. This only matters for the ones output by the nixCats repo itself.

v5.6.1

alternate cat def merge function utils.deepmergeCats (#55)
This one is capable of merging duplicate lists together. This allows for defining extensions to existing categories, rather than the only option being to completely replace with a new list. Used the same way as utils.mergeCatDefs

In addition, module options for categoryDefininions have been slightly changed.

categoryDefinitions.replace still uses utils.mergeCatDefs and merge now uses utils.deepmergeCats

Using categoryDefinitions.replace option no longer is what controls if definitions from the package the module was based on are inherited.

Instead, an extra option has been added, categoryDefinitions.existing to allow you to control the merge strategy used for merging with the existing definitions.

Also added :NixCats petShop to display all the cats you could get!