haskell-compat / base-compat

A compatibility layer for base
http://hackage.haskell.org/package/base-compat
19 stars 12 forks source link

Figure out how to migrate to GitHub Actions #70

Closed RyanGlScott closed 3 years ago

RyanGlScott commented 3 years ago

In light of Travis CI's new pricing scheme, I've migrated all of the code that I maintain from Travis over to GitHub Actions. Well, almost all code—the one exception is this repo, base-compat. I've made an attempt at switching over in the github-actions branch, but I can't quite get it working for GHC 7.8 and earlier. For those versions, attempting to run the spec test suite always fails, as observed here:

Preprocessing test suite 'spec' for base-compat-batteries-0.11.2..
Building test suite 'spec' for base-compat-batteries-0.11.2..
<command line>: cannot satisfy -package-id base-compat-batteries-0.11.2-inplace: 
    base-compat-batteries-0.11.2-inplace is unusable due to missing or recursive dependencies:
      bifunctors-5.5.9-31a03b7199a62edadb0b3bfb9482ea40939f7e6f0d2092e4add416beccdd14fe contravariant-1.5.3-6f24945e50cf882799f1da63e11b6a230f2b7570a55d171138a485888d798a0c fail-4.9.0.0-4b689747390bc3409f3b792550eaa128294adb0681f306df618a799b3f6c7c37 nats-1.1.2-5aeebea93ac8ad7160adbce7ade93ca06e4a2e82f6e5a159356fd10b43669ab1 semigroups-0.19.1-1ab09cd83574002aa985a7316a4f629b4c020b428f18840b3e33daed496dd020 transformers-compat-0.6.6-d467c27284d69c4c5ebc9b36dba7a50786f90193125d2e74e86075ae891790e9 void-0.7.3-912459a50fa3f75a446c10f4b987e1eab4fbaf3268c7998b9186c7ad601da2cf
    (use -v for more information)
cabal: Failed to build test:spec from base-compat-batteries-0.11.2.

I asked @phadej about this, but we weren't able to figure it out. One suspicious thing of note is the warning that gets printed before this error:

Configuring test suite 'spec' for base-compat-batteries-0.11.2..
Warning: The package has an extraneous version range for a dependency on an internal library: base-compat-batteries -any && ==0.11.2. This version range includes the current package but isn't needed as the current package's library will always be used.
Warning:
    This package indirectly depends on multiple versions of the same package. This is very likely to cause a compile failure.
      package transformers-compat (transformers-compat-0.6.6-d467c27284d69c4c5ebc9b36dba7a50786f90193125d2e74e86075ae891790e9) requires fail-4.9.0.0-4b689747390bc3409f3b792550eaa128294adb0681f306df618a799b3f6c7c37
      package bifunctors (bifunctors-5.5.9-31a03b7199a62edadb0b3bfb9482ea40939f7e6f0d2092e4add416beccdd14fe) requires fail-4.9.0.0-4b689747390bc3409f3b792550eaa128294adb0681f306df618a799b3f6c7c37
      package base-compat-batteries (base-compat-batteries-0.11.2-inplace) requires fail-4.9.0.0-4b689747390bc3409f3b792550eaa128294adb0681f306df618a799b3f6c7c37
      package primitive (primitive-0.7.1.0-bffe8b381a5debd5ab8f5c5e73cc1e453dc5073dc37c8b3e269f303a0c92b018) requires fail-4.9.0.0-749b7c785e490e0709bb2a4fa69f842cd6f1a32fa9e772655f727b215483e804
      package void (void-0.7.3-912459a50fa3f75a446c10f4b987e1eab4fbaf3268c7998b9186c7ad601da2cf) requires hashable-1.3.0.0-859cf6fa12fe8f0da9e10b5e956f78f80d80d45c5527c3b3436c4bae566296d8
      package unordered-containers (unordered-containers-0.2.13.0-bc00f8063056f868f6af8f942db037e11f7e55a996eaf13f03b2319cabc733c6) requires hashable-1.3.0.0-859cf6fa12fe8f0da9e10b5e956f78f80d80d45c5527c3b3436c4bae566296d8
      package semigroups (semigroups-0.19.1-1ab09cd83574002aa985a7316a4f629b4c020b428f18840b3e33daed496dd020) requires hashable-1.3.0.0-859cf6fa12fe8f0da9e10b5e956f78f80d80d45c5527c3b3436c4bae566296d8
      package nats (nats-1.1.2-5aeebea93ac8ad7160adbce7ade93ca06e4a2e82f6e5a159356fd10b43669ab1) requires hashable-1.3.0.0-859cf6fa12fe8f0da9e10b5e956f78f80d80d45c5527c3b3436c4bae566296d8
      package nats (nats-1.1.2-dedd6c854d365270319684aa53762d70c06e0c3cd3015e6ce86b238dd8366484) requires hashable-1.3.0.0-cf1662b3627fc3f9c4daa4db9fe3973022625cff0c6780a9485a8e97e0ee0178
      package stm (stm-2.5.0.0-c71fcb95cf22ab9b6fbf36faaf33d24ad38b8c114f8d9813e9d425ea6c6aaa9a) requires nats-1.1.2-5aeebea93ac8ad7160adbce7ade93ca06e4a2e82f6e5a159356fd10b43669ab1
      package semigroups (semigroups-0.19.1-1ab09cd83574002aa985a7316a4f629b4c020b428f18840b3e33daed496dd020) requires nats-1.1.2-5aeebea93ac8ad7160adbce7ade93ca06e4a2e82f6e5a159356fd10b43669ab1
      package base-compat-batteries (base-compat-batteries-0.11.2-inplace) requires nats-1.1.2-5aeebea93ac8ad7160adbce7ade93ca06e4a2e82f6e5a159356fd10b43669ab1
      package stm (stm-2.5.0.0-99b7be5d8baa03198adc6631dd93af98b373860d6ed07f457824da31139ddbe9) requires nats-1.1.2-dedd6c854d365270319684aa53762d70c06e0c3cd3015e6ce86b238dd8366484
      package hspec-core (hspec-core-2.7.5-842f39b4cd0e59761ed7e46cfb01b005772402e59e9482cae285b88a0fd82058) requires stm-2.5.0.0-99b7be5d8baa03198adc6631dd93af98b373860d6ed07f457824da31139ddbe9
      package StateVar (StateVar-1.2.1-1331f583a0e055301dcaba450ab5dccc14d517bdefc4202782b1688d1fd6aa61) requires stm-2.5.0.0-c71fcb95cf22ab9b6fbf36faaf33d24ad38b8c114f8d9813e9d425ea6c6aaa9a
      package hashable (hashable-1.3.0.0-cf1662b3627fc3f9c4daa4db9fe3973022625cff0c6780a9485a8e97e0ee0178) requires text-1.2.4.0-4244bb2ee229172fecc5ce0313da336d1a5cf3726d8b852c66e8806e89159800
      package semigroups (semigroups-0.19.1-1ab09cd83574002aa985a7316a4f629b4c020b428f18840b3e33daed496dd020) requires text-1.2.4.0-ccb3f1c75a952c9c78b99e32a0858140761ae0c56d403541a69d4a8cc969b253
      package hashable (hashable-1.3.0.0-859cf6fa12fe8f0da9e10b5e956f78f80d80d45c5527c3b3436c4bae566296d8) requires text-1.2.4.0-ccb3f1c75a952c9c78b99e32a0858140761ae0c56d403541a69d4a8cc969b253
phadej commented 3 years ago

@RyanGlScott sorry, I completely forgot about `base-compat

RyanGlScott commented 3 years ago

No worries! I wasn't trying to blame you or anything by filing this issue. This is mainly a reminder to myself to investigate why this is failing in the first place, since it's still a bit of a mystery to me at present.

sol commented 3 years ago

@RyanGlScott https://github.com/haskell-compat/base-compat/pull/71 should work.

I also added a branch protection rule that requires all jobs to succeed + enable auto-merge for the repo.