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

[haskell-updates] hackagePackages.hnix: Disable completion to fix build #91251

Merged
merged 1 commit into from Jun 23, 2020

Conversation

maralorn
Copy link
Member

The optparse-applicative completion generation does not work for hnix
0.9.0.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@maralorn maralorn changed the title hackagePackages.hnix: Disable completion to fix build [haskell-updates] hackagePackages.hnix: Disable completion to fix build Jun 21, 2020
Comment on lines -223 to -225
hnix = generateOptparseApplicativeCompletion "hnix" (
dontCheck super.hnix
);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you know why generateOptparseApplicativeCompletion doesn't work for hnix? Is this a problem with generateOptparseApplicativeCompletion, or something that needs to be fixed upstream in hnix?

If it is the former, can you file an issue about generateOptparseApplicativeCompletion? If it is the later, can you file an issue with hnix?

Other than that, this looks good to me.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that you ask about it, I realize what the problem is.
hnix does not produce an executable anymore. I have no clue why. But that certainly explains why it can't have completion...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Huh, that's somewhat strange. Maybe there was some change upstream?

I'm happy to merge this in then, if hnix is no longer expected to contain an executable.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will dig deeper maybe this is indicative of a larger issue. So let's not just fix the symptom.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay I found the culprit in the executable definition.:

  if impl(ghc < 8.10)
    -- GHC < 8.10 comes with haskeline < 0.8, which we don't support.
    -- To simplify CI, we just disable the component.
    buildable: False

So what we actually want is an exception for ghc < 8.10 to don‘t build the completion.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, in that case you can add an override in pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix that will only apply for ghc810.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That does not sound very future proof. likely we will forget to transfer it to 8.12.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have done it this way anyway, because I couldn‘t think of anything better.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do not worry about it, team would always remember to keep hnix properly in Nixpkgs, since it is directly related project.

hnix 0.9.0 does not provide an executable for ghc <8.10 anymore.
So we need to disable optparse-applicative completion generation for all other versions.
@cdepillabout
Copy link
Member

@GrahamcOfBorg build haskellPackages.hnix

@cdepillabout
Copy link
Member

Looks like it is successfully building on Linux at least, thanks for fixing this!

@cdepillabout cdepillabout merged commit a0fe522 into NixOS:haskell-updates Jun 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants