The daemon mill starts is Java 17 bytecode. Upstream saying it "supports
every JVM version from 11 onward" is about the JVMs a build may target,
not the one mill itself runs on.
Assisted-by: Claude Code (Claude Opus 5)
--set-default left an ambient JAVA_HOME in charge, so overriding jre had
no effect on the daemon mill starts. Also switches to jre.home, which is
the attribute meant for this, and to lib.makeBinPath for the PATH entry.
Assisted-by: Claude Code (Claude Opus 5)
It called nix-prefetch-url and `nix hash convert` without nix on its
pinned PATH, so it only worked through the ambient PATH it appended.
It also rewrote package.nix once per platform with no way back, so a
failure on the second or third left the file half updated. It now restores
the file unless the whole run succeeds, refuses to downgrade, passes
--fail to curl, honours $UPDATE_NIX_ATTR_PATH and supports the `commit`
updateScript feature. writeShellApplication runs shellcheck over it at
build time.
Assisted-by: Claude Code (Claude Opus 5)
The artifact suffix, the hash and meta.platforms were three lists of the
same three systems that had to agree by hand; the update script iterated
meta.platforms and threw if a system was missing from the suffix table.
They are now one table, with meta.platforms derived from it.
The legacy sha256 attribute held SRI values, so it becomes hash.
Assisted-by: Claude Code (Claude Opus 5)
It was spelled preferLocal, which Nix does not recognise, so it reached
the derivation as an inert environment variable and the comment above it
never took effect.
Assisted-by: Claude Code (Claude Opus 5)