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.