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

CI for the Scanamo repo not running since 15th June 2021 (travis-ci.org decommisioned) #1184

Closed
rtyley opened this issue Aug 11, 2021 · 3 comments · Fixed by #1187
Closed

Comments

@rtyley
Copy link
Contributor

rtyley commented Aug 11, 2021

Scanamo has a .travis.yml file, but is currently on travis-ci.org (ie https://travis-ci.org/github/scanamo/scanamo), which stopped doing builds on 15th June 2021:

image

Although commits since then in the Scanamo repo have been marked with a green tick, this was actually just due to the 'Mergify' check passing (tho' not taking any action):

image

...to transfer to travis-ci.com (which now also accommodates public open-source repos for free) we'd need to hit the migrate option (and sign up to the beta?) on this page https://travis-ci.com/organizations/scanamo/migrate :

image

I'm not able to do this, as although I'm an 'Admin' on the GitHub repo (https://github.com/scanamo/scanamo/settings/access) I'm not an 'owner' on the GitHub organisation: https://github.com/orgs/scanamo/people

Could I be made an owner on the GitHub organisation? I can then perform the switchover from travis-ci.org to travis-ci.com. I realise also that GitHub Actions is also a popular option these days, personally I'd prefer the switch from travis-ci.[org -> com] as it feels like a more minimal change to me.

cc @regiskuckaertz @davidfurey

@rtyley rtyley changed the title CI for the Scanamo repo not running since 15th June 2021 (travis-ci.org decommisioned) CI for the Scanamo repo not running since 15th June 2021 (travis-ci.org decommisioned) Aug 11, 2021
rtyley added a commit that referenced this issue Aug 11, 2021
rtyley added a commit that referenced this issue Aug 12, 2021
@rtyley
Copy link
Contributor Author

rtyley commented Aug 12, 2021

The CI build is running again, though it's currently failing due to a Monix/Cats conflict causing a NoClassDefFoundError error when running catsEffect/test :

 org.scanamo.ScanamoCatsSpec *** ABORTED ***
[info]   java.lang.NoClassDefFoundError: cats/effect/Sync
[info]   at org.scanamo.ScanamoCatsSpec.$anonfun$new$122(ScanamoCatsSpec.scala:209)

The Cats incompatibility would normally be shown by sbt v1.5 like this (but with the current version on the main branch, no warning is given, apparently because the dependencies are marked as Provided - see 98fb89e):

sbt:root> catsEffect/test
[error] stack trace is suppressed; run last catsEffect / update for the full output
[error] (catsEffect / update) found version conflict(s) in library dependencies; some are suspected to be binary incompatible:
[error] 
[error] 	* org.typelevel:cats-effect_2.12:3.1.1 (early-semver) is selected over {2.5.1, 2.5.1}
[error] 	    +- org.scanamo:scanamo-cats-effect_2.12:1.0.0-M15+109-98fb89e2-SNAPSHOT (depends on 3.1.1)
[error] 	    +- io.monix:monix-catnap_2.12:3.4.0                   (depends on 2.5.1)
[error] 	    +- co.fs2:fs2-core_2.12:2.5.6                         (depends on 2.5.1)

I was the one responsible for the Cats Effect v3.1.1 upgrade from v2.5.1 in PR #1166, but missed the Monix/CatsEffect conflict issue :(

Currently, although an updated version of fs2-core exists that supports Cats Effect v3.1.1, there has not yet been an updated version of Monix released that supports anything above v2.5.1. I think this leaves two options for fixing the issue:

  • Downgrade everything to what Monix supports (ie cats-effect v2.5.1, which still uses cats v2.6.1, stick with fs2-core v2.5.6)
  • Drop Monix support for the time being, which essentially means dropping the ToIterant method. I couldn't find any open-source uses of this method, though obviously private ones could exist. Personally, I like reducing the size of codebases so I'd personally be fine with losing it, but understand if others consider it important!

@regiskuckaertz
Copy link
Contributor

Monix is not being updated nearly often enough anymore so I don't think it will remain relevant for long unless a new maintainer brings it back to life.

rtyley added a commit that referenced this issue Aug 14, 2021
This change updates to the latest version of `fs2-core`, which is now
compatible with `cats-effect` v3.1.1 (introduced in
#1166). Unfortunately there's not
yet a version of `monix` that supports `cats-effect` v3.1.1, so we're
dropping support for Monix for now - the actual implementation code
within Scanamo for the Monix support is only 4 lines, so can probably be
easily copied into an end-user project if it's needed!

Sbt is capable of warning us about version conflicts in dependencies, but
gave no warning of the `cats-effect` version conflict, I think because
the `fs2-core` & `monix` dependencies were marked as already `Provided`.
My guess as to why the `Provided` marker was used is that the
`scanamo-cats-effect` artifact gave support for both `fs2-core` & `monix`,
but in general a consuming project is likely to only be using one of
those - by declaring the two dependencies as `Provided`, neither will be
implicitly pulled in as a transitive dependency of `scanamo-cats-effect`
when used in the end-user project- giving the end-user-project freedom to
just explicitly declare a dependency on the one they want to use. As we've
dropped Monix support, and there's now only `fs2-core` support, I've
changed the `fs2-core` dependency to be explicit, which will give us the
benefit of sbt version-conflict warnings in future.

See #1184
regiskuckaertz pushed a commit that referenced this issue Aug 15, 2021
…1187)

This change updates to the latest version of `fs2-core`, which is now
compatible with `cats-effect` v3.1.1 (introduced in
#1166). Unfortunately there's not
yet a version of `monix` that supports `cats-effect` v3.1.1, so we're
dropping support for Monix for now - the actual implementation code
within Scanamo for the Monix support is only 4 lines, so can probably be
easily copied into an end-user project if it's needed!

Sbt is capable of warning us about version conflicts in dependencies, but
gave no warning of the `cats-effect` version conflict, I think because
the `fs2-core` & `monix` dependencies were marked as already `Provided`.
My guess as to why the `Provided` marker was used is that the
`scanamo-cats-effect` artifact gave support for both `fs2-core` & `monix`,
but in general a consuming project is likely to only be using one of
those - by declaring the two dependencies as `Provided`, neither will be
implicitly pulled in as a transitive dependency of `scanamo-cats-effect`
when used in the end-user project- giving the end-user-project freedom to
just explicitly declare a dependency on the one they want to use. As we've
dropped Monix support, and there's now only `fs2-core` support, I've
changed the `fs2-core` dependency to be explicit, which will give us the
benefit of sbt version-conflict warnings in future.

See #1184
@rtyley
Copy link
Contributor Author

rtyley commented Aug 15, 2021

With PR #1187 merged, the Travis-CI build is now passing again!

I'm not sure if this is directly related, but a nice effect of this is that the microsite job for https://www.scanamo.org/ has run, and I think this might be the reason the content on the site is been updated (eg the new Scaladex 'versions' badge is showing)?

image

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 a pull request may close this issue.

2 participants