Joining the entire `iosevka.meta` set seemed to cause some attributes to
not be set as expected. For example `iosevka-bin.meta.name` was
`iosevka-14.0.1` instead of `iosevka-bin-10.1.0`, and
`iosevka-bin.meta.position` also pointed to `iosevka/default.nix`
instead of `iosevka/bin.nix`.
- Add the 'gitUpdater' helper function to update git based packages, using the
'genericUpdater' function.
- Rework argument passing to the `list-git-tags' and 'list-archive-two-level-versions' scripts.
- Replace 'genericUpdater' plus 'list-git-tags' by 'gitUpdater'
Since version 3.1.0, it has been moved to `params/parameters.toml`. Note
that an alternative to appending would be to use
`params/private-parameters.toml` but in our case, I don't think it
matters much as we don't keep the build directory.
Previously we used nodePackages only to fetch Iosevka's build
dependencies and then fetched the source code ourselves. Updates
involved changing the version and hashes in the `iosevka` derivation and
then running node-packages/generate.sh to update the build dependencies,
which in turns updates *all* of node-packages.nix.
A new proposed policy for handling node-packages.nix updates involves
batching those updates. Previously, that would mean `iosevka` and its
build dependencies could end up out of sync until the batched update was
run.
To work with the new policy, we now fetch Iosevka's source code (and
not only its dependencies) through nodePackages. Updates are done by
changing the source URL in node-packages.json, which eventually becomes
part of an update of node-packages.nix, which is then propagated to
`iosevka` itself.
One con of this strategy is that errors can not be caught directly
after the update, but only after node-packages.nix is regenerated.
This adds the ability to select a specific prebuilt variant. It also adds
an updater script for generating their hashes. Additionally, switching
to TTC files reduces the package size by an order of magnitude.
Example usage:
fonts.fonts = with pkgs; [
(iosevka-bin.override { variant = "ss10"; })
(iosevka-bin.override { variant = "sparkle"; })
(iosevka-bin.override { variant = "aile"; })
];
The node progress "bar" looks like crap when using `nix-build`. Redirect
the infinite scrolling screen to `/dev/null` to calm the output down.
Errors will still print because stderr isn't redirected.