milessabin / shapeless

Generic programming for Scala

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Suggestion] Use org.shapeless3 package

Daenyth opened this issue · comments

This is more of a "someday" concern than "today"

I'd suggest using package org.shapeless3 to ease the 2->3 adoption. Transitive dependencies pulling in shapeless2 may be very difficult to get updated to shapeless3, and diamond dependency issues could put you in a very difficult spot.

I'm undecided on this. shapeless will be moving to the "org.typelevel" organization, so the obvious reverse domain name option would be "org.typelevel.shapeless". However I'm not a fan of the reverse domain name convention, so the real choice for me is between sticking with just shapeless and maybe going to shapeless3.

FWIW, I don't believe there will be any significant diamond dependencies: shapeless has no non-test dependencies, so no diamonds.

It has been pointed out to me that keeping the package name and changing the organization is a toxic mix because SBT won't give eviction warnings if the organization has changed. Clearly something has to give here.

how about "org.typelevel" %% "shapeless3" % ".." with package shapeless3 ?

shapeless3 doesn't have enough puns and is not prone to enough error. Needs to be shapelesss

Just as a data point, I ❤️ shapeless3 as the package.