Home / Input Output / devx
Feb 25, 7-8 PM (0)
Feb 25, 8-9 PM (0)
Feb 25, 9-10 PM (0)
Feb 25, 10-11 PM (0)
Feb 25, 11-12 AM (1)
Feb 26, 12-1 AM (1)
Feb 26, 1-2 AM (0)
Feb 26, 2-3 AM (0)
Feb 26, 3-4 AM (0)
Feb 26, 4-5 AM (0)
Feb 26, 5-6 AM (0)
Feb 26, 6-7 AM (1)
Feb 26, 7-8 AM (0)
Feb 26, 8-9 AM (1)
Feb 26, 9-10 AM (0)
Feb 26, 10-11 AM (0)
Feb 26, 11-12 PM (0)
Feb 26, 12-1 PM (0)
Feb 26, 1-2 PM (0)
Feb 26, 2-3 PM (0)
Feb 26, 3-4 PM (0)
Feb 26, 4-5 PM (0)
Feb 26, 5-6 PM (0)
Feb 26, 6-7 PM (0)
Feb 26, 7-8 PM (0)
Feb 26, 8-9 PM (0)
Feb 26, 9-10 PM (0)
Feb 26, 10-11 PM (0)
Feb 26, 11-12 AM (1)
Feb 27, 12-1 AM (0)
Feb 27, 1-2 AM (0)
Feb 27, 2-3 AM (0)
Feb 27, 3-4 AM (0)
Feb 27, 4-5 AM (0)
Feb 27, 5-6 AM (0)
Feb 27, 6-7 AM (0)
Feb 27, 7-8 AM (2)
Feb 27, 8-9 AM (0)
Feb 27, 9-10 AM (0)
Feb 27, 10-11 AM (0)
Feb 27, 11-12 PM (0)
Feb 27, 12-1 PM (0)
Feb 27, 1-2 PM (0)
Feb 27, 2-3 PM (0)
Feb 27, 3-4 PM (0)
Feb 27, 4-5 PM (0)
Feb 27, 5-6 PM (0)
Feb 27, 6-7 PM (0)
Feb 27, 7-8 PM (0)
Feb 27, 8-9 PM (0)
Feb 27, 9-10 PM (0)
Feb 27, 10-11 PM (0)
Feb 27, 11-12 AM (0)
Feb 28, 12-1 AM (4)
Feb 28, 1-2 AM (2)
Feb 28, 2-3 AM (1)
Feb 28, 3-4 AM (1)
Feb 28, 4-5 AM (0)
Feb 28, 5-6 AM (0)
Feb 28, 6-7 AM (0)
Feb 28, 7-8 AM (0)
Feb 28, 8-9 AM (0)
Feb 28, 9-10 AM (0)
Feb 28, 10-11 AM (0)
Feb 28, 11-12 PM (0)
Feb 28, 12-1 PM (0)
Feb 28, 1-2 PM (0)
Feb 28, 2-3 PM (0)
Feb 28, 3-4 PM (0)
Feb 28, 4-5 PM (0)
Feb 28, 5-6 PM (0)
Feb 28, 6-7 PM (0)
Feb 28, 7-8 PM (0)
Feb 28, 8-9 PM (0)
Feb 28, 9-10 PM (0)
Feb 28, 10-11 PM (0)
Feb 28, 11-12 AM (1)
Mar 01, 12-1 AM (0)
Mar 01, 1-2 AM (0)
Mar 01, 2-3 AM (0)
Mar 01, 3-4 AM (0)
Mar 01, 4-5 AM (0)
Mar 01, 5-6 AM (0)
Mar 01, 6-7 AM (0)
Mar 01, 7-8 AM (0)
Mar 01, 8-9 AM (0)
Mar 01, 9-10 AM (0)
Mar 01, 10-11 AM (0)
Mar 01, 11-12 PM (0)
Mar 01, 12-1 PM (0)
Mar 01, 1-2 PM (0)
Mar 01, 2-3 PM (0)
Mar 01, 3-4 PM (0)
Mar 01, 4-5 PM (0)
Mar 01, 5-6 PM (0)
Mar 01, 6-7 PM (0)
Mar 01, 7-8 PM (0)
Mar 01, 8-9 PM (0)
Mar 01, 9-10 PM (0)
Mar 01, 10-11 PM (0)
Mar 01, 11-12 AM (0)
Mar 02, 12-1 AM (0)
Mar 02, 1-2 AM (0)
Mar 02, 2-3 AM (0)
Mar 02, 3-4 AM (0)
Mar 02, 4-5 AM (0)
Mar 02, 5-6 AM (0)
Mar 02, 6-7 AM (0)
Mar 02, 7-8 AM (0)
Mar 02, 8-9 AM (0)
Mar 02, 9-10 AM (0)
Mar 02, 10-11 AM (0)
Mar 02, 11-12 PM (0)
Mar 02, 12-1 PM (0)
Mar 02, 1-2 PM (0)
Mar 02, 2-3 PM (0)
Mar 02, 3-4 PM (0)
Mar 02, 4-5 PM (0)
Mar 02, 5-6 PM (0)
Mar 02, 6-7 PM (0)
Mar 02, 7-8 PM (0)
Mar 02, 8-9 PM (0)
Mar 02, 9-10 PM (0)
Mar 02, 10-11 PM (0)
Mar 02, 11-12 AM (0)
Mar 03, 12-1 AM (0)
Mar 03, 1-2 AM (0)
Mar 03, 2-3 AM (0)
Mar 03, 3-4 AM (0)
Mar 03, 4-5 AM (0)
Mar 03, 5-6 AM (0)
Mar 03, 6-7 AM (0)
Mar 03, 7-8 AM (0)
Mar 03, 8-9 AM (0)
Mar 03, 9-10 AM (0)
Mar 03, 10-11 AM (0)
Mar 03, 11-12 PM (0)
Mar 03, 12-1 PM (0)
Mar 03, 1-2 PM (0)
Mar 03, 2-3 PM (0)
Mar 03, 3-4 PM (0)
Mar 03, 4-5 PM (0)
Mar 03, 5-6 PM (0)
Mar 03, 6-7 PM (0)
Mar 03, 7-8 PM (0)
Mar 03, 8-9 PM (0)
Mar 03, 9-10 PM (0)
Mar 03, 10-11 PM (0)
Mar 03, 11-12 AM (0)
Mar 04, 12-1 AM (0)
Mar 04, 1-2 AM (0)
Mar 04, 2-3 AM (0)
Mar 04, 3-4 AM (0)
Mar 04, 4-5 AM (0)
Mar 04, 5-6 AM (0)
Mar 04, 6-7 AM (0)
Mar 04, 7-8 AM (0)
Mar 04, 8-9 AM (0)
Mar 04, 9-10 AM (0)
Mar 04, 10-11 AM (0)
Mar 04, 11-12 PM (0)
Mar 04, 12-1 PM (0)
Mar 04, 1-2 PM (0)
Mar 04, 2-3 PM (0)
Mar 04, 3-4 PM (0)
Mar 04, 4-5 PM (0)
Mar 04, 5-6 PM (0)
Mar 04, 6-7 PM (0)
Mar 04, 7-8 PM (0)
16 commits this week Feb 25, 2026 - Mar 04, 2026
flake.lock: Update
Flake lock file updates:

• Updated input 'haskellNix':
    'github:input-output-hk/haskell.nix/cc939d0' (2026-02-23)
  → 'github:input-output-hk/haskell.nix/7f5a9ef' (2026-02-28)
• Removed input 'haskellNix/cabal-32'
• Updated input 'haskellNix/hackage':
    'github:input-output-hk/hackage.nix/06f38c7' (2026-02-23)
  → 'github:input-output-hk/hackage.nix/93f0f7e' (2026-02-28)
• Updated input 'haskellNix/hackage-for-stackage':
    'github:input-output-hk/hackage.nix/2d5bbb1' (2026-02-23)
  → 'github:input-output-hk/hackage.nix/a240f6b' (2026-02-28)
• Updated input 'haskellNix/stackage':
    'github:input-output-hk/stackage.nix/862226e' (2026-02-23)
  → 'github:input-output-hk/stackage.nix/d3613b6' (2026-02-28)
• Updated input 'iohk-nix':
    'github:input-output-hk/iohk-nix/a704b93' (2025-11-12)
  → 'github:input-output-hk/iohk-nix/0ce7cc2' (2026-02-02)
Add nix eval fallback to -env closure discovery (#242)
When Hydra resolves builds from cache, it creates only aggregate
"required" check-runs but not individual per-build check-runs.
This causes the GHA upload workflow to discover zero -env closures
and skip all container uploads.

Add a fallback path: when no Hydra check-runs ending in "-env"
are found, evaluate the store paths directly from the flake using
nix eval with extra/discover-env.nix. This ensures containers are
always uploaded regardless of Hydra's check-run behavior.

Also install Nix and checkout the repo in the Discover step to
support the fallback evaluation.
Centralize IOG library lists in iog-libs.nix (#240)
* Centralize IOG library lists in iog-libs.nix

Extract the duplicated IOG dependency lists from dynamic.nix,
static.nix, cross-js.nix, and cross-windows.nix into a single
iog-libs.nix file. This eliminates manual synchronization when
adding new libraries (e.g., lmdb was previously missing from
cross-compilation targets) and provides a canonical source of
truth for IOG-specific dependencies.

The centralized file categorizes dependencies into:
- crypto: libblst, libsodium-vrf, secp256k1 (all shell types)
- data: lmdb (dynamic/static only)
- tools: cbor-diag, cddl, gh, icu, jq, yq-go (dynamic/static)
- cross-tools: cbor-diag, cddl (cross-compilation targets)

Each consumer imports iog-libs.nix and transforms as needed
(e.g., static.nix passes static=true to resolve static-* variants).

Addresses #56

* Fix ShellCheck SC2215 in wrapped-cabal script

Move the iog-libs.nix sync comment from inside the shell heredoc
(where it breaks line continuation and triggers SC2215) to a Nix
comment above the writeShellApplicationWithRuntime block.
Centralize IOG library lists in iog-libs.nix
Extract the duplicated IOG dependency lists from dynamic.nix,
static.nix, cross-js.nix, and cross-windows.nix into a single
iog-libs.nix file. This eliminates manual synchronization when
adding new libraries (e.g., lmdb was previously missing from
cross-compilation targets) and provides a canonical source of
truth for IOG-specific dependencies.

The centralized file categorizes dependencies into:
- crypto: libblst, libsodium-vrf, secp256k1 (all shell types)
- data: lmdb (dynamic/static only)
- tools: cbor-diag, cddl, gh, icu, jq, yq-go (dynamic/static)
- cross-tools: cbor-diag, cddl (cross-compilation targets)

Each consumer imports iog-libs.nix and transforms as needed
(e.g., static.nix passes static=true to resolve static-* variants).

Addresses #56
Update README to reflect current compiler versions and status (#239)
Replace outdated GHC 8.10 references with current compilers (ghc96,
ghc98, ghc910, ghc912). Update the flavor table to include lmdb in
-iog descriptions. Note that Windows cross-compilation is currently
disabled pending nixpkgs-2511 crossThreadsStdenv fix. Update Docker
image list to match available compilers.

Fixes #114
Update README to reflect current compiler versions and status
Replace outdated GHC 8.10 references with current compilers (ghc96,
ghc98, ghc910, ghc912). Update the flavor table to include lmdb in
-iog descriptions. Note that Windows cross-compilation is currently
disabled pending nixpkgs-2511 crossThreadsStdenv fix. Update Docker
image list to match available compilers.

Fixes #114
Suppress cc-wrapper --target mismatch warning on aarch64-darwin
GNU config.sub normalises to "aarch64-apple-darwin" while Apple's
LLVM toolchain (and nix cc-wrapper's @defaultTarget@) uses
"arm64-apple-darwin". Older GHC versions pass --target=aarch64-apple-darwin
which triggers a noisy warning from the cc-wrapper's
add-clang-cc-cflags-before hook on every compiler invocation.

The warning is harmless — clang handles both triples identically — but
it pollutes stderr and causes thousands of GHC testsuite failures due
to unexpected compiler output.

Set NIX_CC_WRAPPER_SUPPRESS_TARGET_WARNING=1 in the env script before
sourcing stdenv/setup to suppress this warning.
Set TERM=dumb fallback in devx env script for CI/container environments (#236)
GHC's Makefile unconditionally calls `tput bold` and `tput sgr0`
(lines 217-218) which fail with "No value for $TERM and no -T
specified" when TERM is unset. This happens in CI runners and
containers where no terminal is attached.

Set TERM to "dumb" as a fallback after sourcing setup.sh so ncurses
tools like tput degrade gracefully instead of erroring.
Add `which` to all shell environments (#234)
GHC's build system (mk/boilerplate.mk:182) uses `which` to locate ghc.
After commit a354771 switched from recursive-nix `nix print-dev-env` to
`devShellTools.unstructuredDerivationInputEnv`, `which` was no longer
transitively included. This caused CI failures:

  make[1]: which: No such file or directory
  ../mk/boilerplate.mk:182: *** Cannot find ghc: .  Stop.

Add pkgs.which explicitly to nativeBuildInputs/buildInputs in all four
shell definitions (dynamic, static, cross-js, cross-windows).
Add `which` to all shell environments
GHC's build system (mk/boilerplate.mk:182) uses `which` to locate ghc.
After commit a354771 switched from recursive-nix `nix print-dev-env` to
`devShellTools.unstructuredDerivationInputEnv`, `which` was no longer
transitively included. This caused CI failures:

  make[1]: which: No such file or directory
  ../mk/boilerplate.mk:182: *** Cannot find ghc: .  Stop.

Add pkgs.which explicitly to nativeBuildInputs/buildInputs in all four
shell definitions (dynamic, static, cross-js, cross-windows).