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

Update AppVeyor CI script #311

Closed

Conversation

Mistuke
Copy link
Collaborator

@Mistuke Mistuke commented Mar 3, 2018

This cleans up the script a bit and brings it more inline with what we test on Travis.

And adds matrix builds for Windows to cover all the GHC's that network supports.

@Mistuke
Copy link
Collaborator Author

Mistuke commented Mar 3, 2018

Looks like some version bounds need updating. I'll wait for the rest to finish first.

@Mistuke
Copy link
Collaborator Author

Mistuke commented Mar 3, 2018

Bumping ansi-terminal needs to wait on a release of UnkindPartition/ansi-terminal#59. It's a transitive dependency of HUnit.

@kazu-yamamoto kazu-yamamoto self-requested a review March 5, 2018 03:06
@kazu-yamamoto
Copy link
Collaborator

@Mistuke Thank you for this PR. Let me ask a question to understand the background.
Would you explain the reasons why you switch stack to cabal?

@Mistuke
Copy link
Collaborator Author

Mistuke commented Mar 5, 2018

@kazu-yamamoto Well, simply because stack doesn't make it easy to test multiple ghc versions, you have to install either another stack or change configuration.

The simplest way to test all GHCs that network claims to has been tested with is to use ghc and cabal directly. You gain nothing from using stack, network has minimal dependencies on base and bytestring, both of which are core GHC packages that will always be guaranteed to work together.

Secondly, stack being a facade hides a lot of things. In this case it's been hiding the fact that the cabal file has been missing hspec-discover. As far as I'm aware, cabal provides a stronger guarantee than stack. If it works on cabal it will work on stack (% stack bugs). but the inverse is never true.

Thirdly stack install is way slower, not only do you need stack, ghc, the installation also installs msys2, which is already provided by default by AppVeyor. So stack is just duplicating efforts here.

And lastly, Windows seems to be the only place where stack is used, the yaml file already uses cabal. I want the two to be the same, and test all relevant GHC versions. Historically network build difficulties have nothing to do with cabal. It has always been because network is a configure based package.

@vincenthz
Copy link

Well, simply because stack doesn't make it easy to test multiple ghc versions, you have to install either another stack or change configuration.

It's ironic that's the original script that this PR is trying to erase (*1), is actually testing 3 differents GHC versions with a hard 1 line per version.

you're right about the facade though, stack actually made things easy for user trying to compile network on windows. cabal made no effort trying to solve the issue of configured based script indeed.

*1 in a non-subtle effort to move everything to new-build which is still not the default of cabal.

@Mistuke
Copy link
Collaborator Author

Mistuke commented Mar 5, 2018

I'm not going to start a stack vs cabal debate here. The fact is, network hasn't been testing all 6 supported ghc versions. if it was, it would have caught the build error of HUnit with GHC 6.4.3.

I'm not subtly trying to do anything. I'm more than happy for this not to get merged in if it's so controversial. Consider it rescinded.

@Mistuke Mistuke closed this Mar 5, 2018
@Mistuke Mistuke deleted the bring-ci-more-inline-with-travis branch March 5, 2018 09:28
@vincenthz
Copy link

well, the tip for not starting a debate, is to not actually trying to start one by adding fallacious arguments of why "stack is crap" with your personal bias.

personally I think if cabal new build is tested alongside cabal build and stack (which are still the 2 main way to build), that would be a reasonable outcome to put ALL users of this package in the spotlight, as they should rightfully be.

at to 6.4. (did you mean 7.6 ?), maybe it's time to throw it by the way side as 8.4 is coming

@kazu-yamamoto
Copy link
Collaborator

@Mistuke Can stack and cabal co-exist on AppVeyor? If so, I would recommend to include both stuff.

@kazu-yamamoto
Copy link
Collaborator

Ping @Mistuke just in case you missed my comment.

kazu-yamamoto added a commit to kazu-yamamoto/network that referenced this pull request Mar 21, 2018
Import from "Update AppVeyor CI script haskell#311" to 2.6 branch.
Credit: @Mistuke.
kazu-yamamoto added a commit to kazu-yamamoto/network that referenced this pull request Mar 21, 2018
kazu-yamamoto added a commit to kazu-yamamoto/network that referenced this pull request Mar 21, 2018
@kazu-yamamoto
Copy link
Collaborator

To understand #313, I have merged this.

kazu-yamamoto added a commit to kazu-yamamoto/network that referenced this pull request Mar 23, 2018
Import from "Update AppVeyor CI script haskell#311" to 2.6 branch.
Credit: @Mistuke.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants