8640387e

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

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 0s 0s 1s 0s
Eval 0s 39s 39s 40s 0s
Build 39s 4m40s 2m11s 2m50s 0s
Suite 0s 5m20s 2m50s 2m50s 0s

Timeline

0s20s40s1m1m20s1m40s2m2m20s2m40s