My commit below removed a `> /dev/null` from fonts/iosevka/default.nix
by mistake.
89d24b58b2
Author: Damien Cassou <damien@cassou.me>
AuthorDate: Mon Jun 6 18:26:06 2022 +0200
iosevka-comfy: init at 0.1.0
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.
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.
Although hopefully this can eventually be added to nodePackages, it uses
some devDependencies to build custom fonts. Node2nix doesn't currently
support enabling devDependencies for a single package.
- Got rid of redundant let-in statements.
- node-packages.json now only pulls in Iosevka.
- generate.sh
* Uses a nix-shell shebang to ensure it builds using the current
version of node2nix (the old version caused some issues due to the
19.03 release version being 1.6.0 instead of 1.7.0).
* Builds in development mode to fix the devDependencies issue.
- Use the tree of the built node package as sourceRoot instead of
installing node dependencies manually. This means the source will have
to be updated in both node-packages.json and default.nix, but to make
things easier the derivation inherits the version number.
- Disparate build options now all live under privateBuildPlan, which is
converted first with builtins.toJSON and then to TOML using remarshal
(Unfortunately there is not currently a builtins.toTOML).
- Extra parameters can also be provided that will be converted to JSON
then TOML. This will overwrite the default parameters.toml file.
Semi-automatic update. These checks were done:
- built on NixOS
- Warning: no binary found that responded to help or version flags. (This warning appears even if the package isn't expected to have binaries.)
- found 1.14.1 with grep in /nix/store/96pxdcrjsqsw3wy79kqpjj1lwwndq62j-iosevka-1.14.1
- found 1.14.1 in filename of file in /nix/store/96pxdcrjsqsw3wy79kqpjj1lwwndq62j-iosevka-1.14.1
The Iosevka builder requires Node 8, which is not supported by node2nix yet; the
included package-lock.json is processed in Nix to install the required
dependencies offline.