84d4bbdd

Author: Tom Sydney Kerckhove <syd@cs-syd.eu>

Committer: Tom Sydney Kerckhove <NorfairKing@users.noreply.github.com>

Release to Hackage from CI, and update the flake inputs

Same shape as autodocodec and sydtest: a 'nix-ci.nix' with a
'deploy.release-to-hackage' step, running from master only, taking
HACKAGE_API_KEY from the repository's Secrets overview on NixCI.  The
script uploads exactly those packages whose version is not on Hackage
yet, so a push that bumps no version releases nothing.

Adding the file moves the whole NixCI configuration into it.  NixCI falls
back to the flake's 'nix-ci' output only when no such file exists, so
'auto-update' and 'cachix' had to come along or they would have been
dropped without any error saying so.  The now-unreachable 'nix-ci' output
is gone from flake.nix rather than left as a second place to look; that
also removes the "unknown flake output" warning from every 'nix flake
check'.

Only 'ical' and 'ical-recurrence' are released.  The two '-gen' packages
and 'ical-interop-test' are excluded because they sit at 0.0.0.0 and none
of them has ever had a version bump or a changelog entry, so releasing
the whole package set would have published three 0.0.0.0 packages on the
next push to master.  A Hackage upload cannot be taken back, while adding
a package here later is one line.  Checked against the built script rather
than the expression: it references ical-0.3.0.0 and
ical-recurrence-0.2.0.0 and nothing else.

'nix flake update' along with it, which moves nixpkgs from 2026-05-31 to
2026-08-25 and nixpkgs-25_11 to 2026-06-30.  'nix flake check' passes on
the result, so the eight checks all build against the newer package sets
without any change to the Haskell code.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 0s 1s 1s 1s 0s
Eval 1s 20s 20s 21s 0s
Build 20s 0s 0s 20s 0s
Deploy 22s 12s 12s 34s 8s
Suite 0s 33s 34s 34s 8s

Timeline

0s10s20s30s