~/talk

Using Nix to Deploy Haskell Projects

Talkat ZuriHac 2025 · 2025-06-07..06-09· [haskell]
slides:none on file

Hands-on workshop that teaches using Nix to make Haskell builds reproducible: explains the Nix store, derivations and hashing, how nixpkgs generates ~17,000 Hackage derivations (about 7,000 actually build), and tradeoffs around GHC versions. Covers a flake-based setup, using nix-shell environments for reproducible dev shells, setting up CI with binary caches, generating builds with cabal2nix via flakes, overriding sources/patches and adding git hooks, plus steps to upstream fixes into nixpkgs and when import‑from‑derivation causes problems.

AI-written summary · about

  1. 0:00Introduction and session overview
  2. 1:15Goals and workshop structure
  3. 2:32What is Nix and why use it for Haskell
  4. 4:30Problem 1 – Exponent parsing and summing
  5. 7:07Speaker background and company info
  6. 8:16Four meanings of "Nix" explained
  7. 11:25Nix store and functional principles
  8. 14:17Nix language and nix files
  9. 16:09Derivations vs evaluation
  10. 20:16Nixpkgs – the giant collaborative repository
  11. 23:19NixOS and system configuration
  12. 25:01Documentation and community support
  13. 27:15Why use Nix for Haskell development
  14. 31:05Nix vs Docker in terms of reproducibility
  15. 35:14Binary caches and provisioning dev environments
  16. 38:03Overview of Haskell infrastructure in nixpkgs
  17. 41:14Haskell.nix vs Haskell infrastructure in nixpkgs
  18. 42:14Using cabal2nix to generate derivations
  19. 47:05Dependency resolution and package sets
  20. 52:12Using cabal2nix via flakes
  21. 54:42Aligning nix builds with cabal freeze
  22. 57:14Overriding packages and custom sources
  23. 1:00:00The tutorial tasks – how to nixify a project
  24. 1:05:07Git hooks and pre-commit automation
  25. 1:08:02Setting up CI pipelines with Nix
  26. 1:09:23Hackage snapshot usage in nixpkgs
  27. 1:13:24Package versioning and overrides
  28. 1:16:27How nixpkgs tracks revisions
  29. 1:17:40Naming and versioning in nixpkgs
  30. 1:22:20Maintaining broken packages
  31. 1:24:01Internals of nix store and hashing
  32. 1:25:57Overriding dependencies and patching
  33. 1:34:50Personal experiences contributing to nixpkgs
  34. 1:40:27Discussion: flakes, complexity and usage
  35. 1:46:09Why learning Nix is hard
  36. 1:52:25The future of flakes
  37. 2:00:19Outro and contact
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.