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

Ecosystem upgrade megathread #1330

Closed
kubukoz opened this issue Oct 18, 2020 · 53 comments
Closed

Ecosystem upgrade megathread #1330

kubukoz opened this issue Oct 18, 2020 · 53 comments
Milestone

Comments

@kubukoz
Copy link
Member

kubukoz commented Oct 18, 2020

Here, we can track the progress of major libraries upgrading to CE3.

That should be a nice way of finding out whether any of them are going to be late with the upgrade, or straight-up impossible to migrate in a relatively source-compatible fashion.

Project Progress Blockers
Weaver released none
fs2 released none
http4s released none
fs2-kafka released none
fs2-grpc released none
munit-cats-effect released none
fs2-rabbit released none
natchez released none
cats-effect-testing released none
cats-stm released none
slick-effect released Async[DBIO] support dropped
Eff released unknown
redis4cats released none
log4cats released none
skunk released none
doobie released Async[ConnectionIO] support dropped
Ciris released none
Decline released none
ZIO released none
Sttp released none
Pure Config released none
elastic4s released none
fs2-data released none
trace4cats released none
sup released none
Scala Cache PR merged, published for M5 none
prox PR merged none
streamz PR merged none
odin PR merged none
catbird PR for 3.0 unknown
streamz PR for M3 none
tapir PR for 3.0 catbird
scala-opentracing PR for 3.0 unknown
circe-fs2 PR open not expected
caliban PR open unknown
natchez-http4s PR open unknown
tofu issue exists unknown
finch issue exists unknown
davenverse libraries varying not expected
http4s-micrometer-metrics none unknown
Monix work in progress unknown
Monix BIO unknown unknown
meow-mtl none should update mtl to 1.x first
console4cats Deprecated none

If you have edit rights, feel free to add more details / libraries.

@kubukoz kubukoz added the CE 3 label Oct 18, 2020
@benkio
Copy link

benkio commented Oct 18, 2020

I came here from your tweet 😅
In cats, I did the following doc PR to collect the libs/projects related to the typelevel ecosystem

typelevel/cats#3609

It may be relevant to this thread I guess
Cheers 😉

@kubukoz
Copy link
Member Author

kubukoz commented Oct 19, 2020

@Daenyth added. @ChristopherDavenport -verse is a vital part of it!

btw. you have edit rights, feel free to add them to OP

@mpilquist
Copy link
Member

Can we roll fuuid in to cats-effect-std module?

@kubukoz
Copy link
Member Author

kubukoz commented Oct 19, 2020

Can we roll fuuid in to cats-effect-std module?

I'm all for it. Also a small Random[F], Chris's unique and https://github.com/ChristopherDavenport/system-effect/blob/master/src/main/scala/io/chrisdavenport/system/effect/Environment.scala

@ahjohannessen
Copy link

ahjohannessen commented Oct 21, 2020

@kubukoz
Copy link
Member Author

kubukoz commented Oct 21, 2020

Added, thanks!

@RaasAhsan
Copy link

Can we open issues for each library/class we'd like to port to std?

@ChristopherDavenport
Copy link
Member

ChristopherDavenport commented Oct 21, 2020

Random - https://github.com/christopherdavenport/random
Cats-Effect-Time - https://github.com/ChristopherDavenport/cats-effect-time (scalajs artifact size complications)

@kubukoz
Copy link
Member Author

kubukoz commented Oct 21, 2020

@RaasAhsan I like the idea, I can create some later on, unless someone beats me to it

@ghostdogpr
Copy link

For ZIO interop, the repo is this one https://github.com/zio/interop-cats

@jbwheatley
Copy link

fs2-rabbit has a CE/FS2 3.0 branch with all tests green

@felixbr
Copy link

felixbr commented Oct 24, 2020

catbird seems to be missing from the list (Finch is using it for example).

I tried to implement the new typeclasses but I'm again blocked by cancelation requirements. My thoughts are here: typelevel/catbird#267

@felixbr
Copy link

felixbr commented Oct 24, 2020

redis4cats - no progress so far it seems

@kubukoz
Copy link
Member Author

kubukoz commented Nov 28, 2020

A note for anyone passing by, if you want to help, there's no official migration guide yet, but some useful information is being gathered in #1048 - should be a good place to start.

@djspiewak djspiewak added this to the 3.0.0-RC1 milestone Feb 6, 2021
@djspiewak djspiewak removed the CE3 label Feb 6, 2021
@djspiewak djspiewak modified the milestones: 3.0.0-RC1, 3.0.0 Feb 7, 2021
@djspiewak
Copy link
Member

@kubukoz If you've got some time to spare, do you think you could chase down current status on some of this? It'd be good to get a table going in the OP to indicate status and blockers if there are any.

@TimWSpence
Copy link
Member

https://github.com/TimWSpence/cats-stm is running on CE3 :)

@kubukoz
Copy link
Member Author

kubukoz commented Feb 7, 2021

oof, thanks for the reminder @djspiewak - I'll do the rounds now.

@felixbr
Copy link

felixbr commented Feb 25, 2021

Thanks to MonadCancel.Uncancelable it looks like it will be possible for catbird to support the same feature set as with cats-effect 2.x. 🙂

I've updated the PR to use 3.0.0-RC2 and the laws pass.

@kubukoz
Copy link
Member Author

kubukoz commented Mar 2, 2021

the table is growing! Added some tpolecat and tracing libs.

@kubukoz
Copy link
Member Author

kubukoz commented Mar 23, 2021

Note to self, add:

trace4cats status:
progress: PR for RC2: janstenpickle/trace4cats#324
blockers: zio/interop-cats, sttp, tapir

thanks for the update @catastrophe


Also, we're at RC3 now - I might do a round of checks to see who's published for that milestone, but to be honest, I'd say anyone who's on RC2 already is way ahead of the curve and won't have trouble upgrading, so we might as well skip tracking that specifically and focus on the remaining libraries.

@kubukoz
Copy link
Member Author

kubukoz commented Mar 29, 2021

Update, 3.0.0 is out! After I'm done with the migration guide I'll start updating the table to track projects moving to that.

@miriarte
Copy link

miriarte commented Mar 31, 2021

fs2 (https://github.com/typelevel/fs2/releases/tag/v3.0.0) and http4s (https://github.com/http4s/http4s/releases/tag/v1.0.0-M20) already released versions using CE 3.0.0

@kubukoz
Copy link
Member Author

kubukoz commented Mar 31, 2021

12 libraries from the list are released ;)

@rkrzewski
Copy link
Contributor

elastic4s has been upgraded Philippus/elastic4s#2351, pending relelease

@kubukoz
Copy link
Member Author

kubukoz commented Apr 21, 2021

22 libraries from the list released.

@kubukoz
Copy link
Member Author

kubukoz commented Apr 21, 2021

cb372/cats-retry#305 gonna list this next

@kbreidenbachRN
Copy link

We're using cats-effect in production along with scanamo-cats-effect for DynamoDB. At the moment I have no information on when scanamo-cats-effect will be updated to use CE3 so this is holding some projects back

@kubukoz
Copy link
Member Author

kubukoz commented Apr 28, 2021

Scanamo seems to be using Monix in the core cats module, so I'd say it'll be blocked on that until Monix gets there :/

it's in provided scope, but there's a toIterant function that touches both the CE and Monix worlds, so it seems pretty dangerous to upgrade now.

@kubukoz
Copy link
Member Author

kubukoz commented Apr 28, 2021

@kbreidenbachRN as a temporary alternative, I would suggest creating your own scanamo-cats library using the current scanamo-cats-effect code as the base (it's apache 2 licensed so you're allowed to do that). The migration itself should be straightforward, mostly changing the async call to Async[F].fromCompletableFuture.

@kubukoz
Copy link
Member Author

kubukoz commented Apr 28, 2021

Actually, hold that thought... it's just one, one-line method for the Monix interop - maybe this can just be dropped? The fs2 integration is also very thin and probably could be removed as well to avoid making the dependency graph unnecessarily deep. @regiskuckaertz I would appreciate your input here! 🙏

@kbreidenbachRN
Copy link

kbreidenbachRN commented Apr 30, 2021

@kubukoz As we are using FS2 as well, I just took your first suggestion: forked, made the Async[F].fromCompletableFuture change and put a SNAPSHOT version in our artifactory repo. We should be in prod with a few CE3 updated apps in a couple of days. Thanks for the help!

@vasyl-zhurba
Copy link

circe-derivation

@kubukoz
Copy link
Member Author

kubukoz commented May 27, 2021

circe-derivation

This project doesn't use cats-effect.

@Daenyth
Copy link
Contributor

Daenyth commented Jun 10, 2021

Fetch is now updated: https://github.com/47degrees/fetch/releases/tag/v2.0.0

@andreamarcolin
Copy link

Catbird has been published for CE3 (catbird-effect3 module, version 21.5.0 typelevel/catbird#267), also unblocking Tapir (softwaremill/tapir#1154)

@ghostdogpr
Copy link

Caliban interop for cats-effect 3 and http4s 0.23 was just released ✅

@henricook
Copy link

Hey @kubukoz - would you mind updating this table when you get a second? Thanks for your work thus far

@Daenyth
Copy link
Contributor

Daenyth commented Jun 2, 2022

circe-fs2 is released https://github.com/circe/circe-fs2/releases/tag/v0.14.0

@kubukoz
Copy link
Member Author

kubukoz commented Feb 5, 2023

@djspiewak think we can close this?

@djspiewak
Copy link
Member

I believe indeed we can. Thank you for all your hard work on this, particularly two years ago!

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

No branches or pull requests