Skip to content

Upgrade to GHC 9.10 & flake-parts#677

Merged
srid merged 19 commits intomasterfrom
nix-flake
Mar 22, 2026
Merged

Upgrade to GHC 9.10 & flake-parts#677
srid merged 19 commits intomasterfrom
nix-flake

Conversation

@srid
Copy link
Copy Markdown
Owner

@srid srid commented Mar 22, 2026

Summary

  • Upgrade from GHC 8.10 to GHC 9.10.3 (nixpkgs-unstable)
  • Port to new reflex-dom API (Prerender t m), aeson 2.x, clay, algebraic-graphs, fsnotify
  • Rewrite flake.nix using flake-parts with perSystem
  • Move dep thunks to flake inputs
  • Remove ci.nix; CI now builds flake outputs directly
  • Update CI workflows to latest actions + re-enable macOS (aarch64-darwin)

Test plan

  • vira ci -b passes locally
  • GitHub CI passes on Ubuntu
  • GitHub CI passes on macOS-14 (aarch64-darwin)

srid added 3 commits March 22, 2026 05:21
- Rewrite flake.nix using flake-parts with perSystem
- Move dep/ thunks to flake inputs
- Remove ci.nix (replaced by vira/flake outputs)
- Update CI workflows to use nix build and latest actions
GHC 8.10.6 in pinned nixpkgs doesn't support aarch64-darwin.
GHC 8.10.7 in nixos-21.11 supports aarch64-darwin, unlike 8.10.6
in the previously pinned nixpkgs.
@srid srid changed the title Convert to flake-parts, remove legacy Nix files Update everything, use flakes Mar 22, 2026
srid added 10 commits March 22, 2026 06:55
nixos-21.11 cctools segfaults on aarch64-darwin CI runners.
Use macos-13 (Intel) for CI while flake still supports all systems.
nixos-21.11 cctools segfaults during linking on aarch64-darwin
GitHub Actions runners. The flake still declares all systems;
this only affects CI testing.
Port neuron and deps to latest GHC/nixpkgs:
- Prerender js t m → Prerender t m (reflex-dom API change)
- aeson 2.x: Text → Key for Object operations
- algebraic-graphs: swap dfsForestFrom/bfsForest arg order
- clay: swap border* argument order (width before style)
- fsnotify: remove confDebounce, add 4th arg to Unknown
- some/dependent-map: manual GEq/GCompare instances
- naturalToInt → fromIntegral (removed in GHC 9.10)
- Resolve ambiguous hSetBuffering (Relude vs System.IO)
- Add UndecidableInstances for deriveArgDict
- Patch reflex-dom-pandoc in Nix (forM, TypeOperators, Null)
- Pin witherable 0.4.2 for Data.Witherable module
- doJailbreak all deps for version bound relaxation
@srid srid changed the title Update everything, use flakes Upgrade to GHC 9.10 & flake-parts Mar 22, 2026
@srid srid mentioned this pull request Mar 22, 2026
srid added 6 commits March 22, 2026 11:38
Move TH splices (deriveGEq, deriveGCompare) after all type definitions
but before DMap usage to satisfy TH staging requirements.
Replace manual Haskell package management with haskell-flake
flake-parts module. Uses projectRoot for source filtering,
otherOverlays for dep patches, and settings for jailbreak/haddock.
All deps are now flake inputs. Remove:
- dep/ (nix-thunk sources, replaced by flake inputs)
- project.nix, nixpkgs.nix (replaced by flake.nix)
- static.nix, docker.nix (unused)

Also restore dropped comments in ZettelT.
Add packages.dockerImage to flake.nix and restore Docker Hub
push step in CI (using nix build .#dockerImage).
@srid srid marked this pull request as ready for review March 22, 2026 20:54
@srid srid merged commit 86c68ba into master Mar 22, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant