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
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions pkgs/development/haskell-modules/configuration-common.nix
Original file line number Diff line number Diff line change
Expand Up @@ -219,10 +219,12 @@ self: super: {
# base bound
digit = doJailbreak super.digit;

# 2020-06-05: HACK: does not passes own build suite - `dontCheck`
hnix = generateOptparseApplicativeCompletion "hnix" (
dontCheck super.hnix
);
Comment on lines -223 to -225
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

@Anton-Latukha Anton-Latukha Jun 22, 2020

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.

# 2020-06-05: HACK: does not passes own build suite - `dontCheck` We should
# generate optparse-applicative completions for the hnix executable. Sadly
# building of the executable has been disabled for ghc < 8.10 in hnix.
# Generating the completions should be activated again, once we default to
# ghc 8.10.
hnix = dontCheck super.hnix;

# Fails for non-obvious reasons while attempting to use doctest.
search = dontCheck super.search;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -132,4 +132,7 @@ self: super: {
excludes = ["package.yaml"];
});

# hnix 0.9.0 does not provide an executable for ghc < 8.10, so define completions here for now.
hnix = generateOptparseApplicativeCompletion "hnix" super.hnix;

}