Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nix CI is broken #10509

Open
jgm opened this issue Jan 5, 2025 · 4 comments
Open

Nix CI is broken #10509

jgm opened this issue Jan 5, 2025 · 4 comments
Labels

Comments

@jgm
Copy link
Owner

jgm commented Jan 5, 2025

See https://github.com/jgm/pandoc/actions/runs/12617858361/job/35160603870#step:6:2569

The problem seems to be that nix's cabal wrapper can't determine the version of happy, which is a build tool for toml-parser. happy is installed. happy --version returns

Happy Version 2.1.3 Copyright (c) 1993-1996 Andy Gill, Simon Marlow (c) 1997-2005 Simon Marlow

Happy is a Yacc for Haskell, and comes with ABSOLUTELY NO WARRANTY.
This program is free software; you can redistribute it and/or modify
it under the terms given in the file 'LICENSE' distributed with
the Happy sources.

which I'm guessing is not in the format cabal-wrapped expects?

So I think this is a bug in Haskell nix tooling, but I'm completely ignorant about how this works, so I'm hoping someone more knowledgeable can point me in the right direction or create an upstream bug report.

@tarleb
@srid
@peti

@jgm jgm added the bug label Jan 5, 2025
jgm added a commit that referenced this issue Jan 6, 2025
Pending a solution for #10509.
@peti
Copy link

peti commented Jan 6, 2025 via email

@jgm
Copy link
Owner Author

jgm commented Jan 6, 2025

Thank you Peter. Both the cabal version and the happy version are the versions from the nixpkgs repository -- so, if what you say is right, isn't a problem with nix if these don't work together?

In any case, I'd be happy to be told how to change default.nix to specify either a newer cabal-install version or an older happy version. I'm sorry, I don't know nix well enough.

@jgm
Copy link
Owner Author

jgm commented Jan 6, 2025

PS. I'd been assuming that the cabal-wrapped business was something pkgs.haskellPackages.developPackage used to parse a cabal file and extract the nix dependencies...and thus not part of cabal.

@srid
Copy link

srid commented Jan 7, 2025

On a general note, the CI workflow uses nix-shell which is impure (nix-shell uses shell.nix which imports nixpkgs using impure channels; see here) whereas nix develop is pure (nixpkgs is pinned to a commit if nixpkgs is referenced as flake input). So switching entirely to flakes would solve purity issues like this. I did hit some issues when I tried last time (#9952), and perhaps someone else would like pick that up ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants