typelevel / cats

Lightweight, modular, and extensible library for functional programming.
https://typelevel.org/cats/
Other
5.24k stars 1.19k forks source link

Possibly corrupted sjs 1 artifact #3313

Closed larsrh closed 4 years ago

larsrh commented 4 years ago

See typelevel/paiges#243.

My suspicion is that a new Scala.js version requires a clean build, which may not have happened.

Mitigation is probably a 2.1.1 release, because Sonatype won't let you change released artifacts.

larsrh commented 4 years ago

Same issue here typelevel/cats-testkit-scalatest#48.

larsrh commented 4 years ago

And another one typelevel/cats-effect#796

jenshalm commented 4 years ago

I would omit the word "Possibly" in the description. :-)

I just ran into this myself and out of curiosity I browsed the sjsir files in the cats-core_sjs1 jar. Somehow /cats/syntax/package$hash$.sjsir contains the version string 0.6.29 whereas most other files contain 1.0.

A 2.1.1 release would be great. I'm currently blocked on releasing Laika with Scala.js support, and I'm probably not the only one.

travisbrown commented 4 years ago

Oh, ouch, I ran this release and this is probably my fault. The tests were definitely passing. Has anyone tried publishing Cats locally for Scala.js 1.0.0 and using in these projects to make sure it's just an issue with the release?

travisbrown commented 4 years ago

I'd really like to get a Cats 2.2.0-M1 published this week and my inclination would be to wait for that, since then on the off-chance that there are ongoing issues we can iterate more quickly without forcing the 97% of Cats users who don't care about Scala.js to bump patch versions.

travisbrown commented 4 years ago

Also a lot of the ecosystem is still blocked on Shapeless, so while it would be nice to have working artifacts out there for Scala.js 1.0, I personally don't think it's worth triggering thousands of updates for JVM-only users by publishing 2.1.1 yet.

larsrh commented 4 years ago

You make a good point, although I don't think the cost of a patch release is high. Contrastingly, the cost of all the broken scala-steward PRs is quite high.

travisbrown commented 4 years ago

Okay, let me make sure I can publish a working Scala.js 1.0.0 release and I'll get 2.1.1 lined up.

jenshalm commented 4 years ago

I just tested a local publish with current master and I progressed from the error about invalid sjsir files to linkage errors (which are pretty certain on my side as I am just about to add Scala.js support for the first time, so I expected some issues anyway)

travisbrown commented 4 years ago

What do you think about skipping 2.1.1 and doing a quick turn-around 2.2.0 this week? We can merge #3279 and #3316 pretty easily, publish a 2.2.0-RC1 tomorrow, and then do 2.2.0 on Thursday or Friday, both with Scala.js 0.6 and 1.0 support.

smarter commented 4 years ago

FYI as it might affect your planning, Scala.js 1.0 will be officially announced tomorrow.

jenshalm commented 4 years ago

I think if it's just a delay for this week it might be perfectly reasonable (at least from my side). I would have expected the 2.2 cycle would have been longer and that probably would have been an issue for some.

But I have no idea how much noise the broken release might create for you in the meantime. :-) You might want to at least add a note to your Scala Contributors announcement in that case, so that people are aware.

travisbrown commented 4 years ago

@jenshalm We haven't publicized the Scala.js 1.0.0 artifacts anywhere except for this list, and I've flagged this issue there.

jenshalm commented 4 years ago

Ah, sorry, didn't see your comment on the list yet (I am following via email notifications). Sounds all good to me then.

travisbrown commented 4 years ago

Just staged a completely fresh release and added the staging resolver to Paiges and cats-testkit-scalatest and both are passing tests (+js/checkCI and +coreJS/test respectively), so I think we're okay to go when we decide what version we want to release.

travisbrown commented 4 years ago

/cc @kailuowang @djspiewak @LukaJCB @larsrh @fthomas @tpolecat @mpilquist

I seem to have messed up the Cats 2.1.0 release for Scala.js 1.0.0 last week (see the issue above for details; I think I didn't do a full clean before publishing). I've confirmed that I can publish it in such a way that it works now. The Scala.js 1.0.0 release announcement is tomorrow, and it'd be nice if we had a working Cats release ready to go with it. We have two choices:

I'm inclined to do the first and not rush 2.2.0. Any objections?

larsrh commented 4 years ago

All things considered I'm in favour of 2.1.1.

tpolecat commented 4 years ago

I'm inclined to do the first and not rush 2.2.0. Any objections?

Nope, this seems good to me. Thanks!

travisbrown commented 4 years ago

Okay, I just staged a normal 2.1.1 release from a0a440fcf7cecdf16c9f18de49e2514c8dd28eae on the 2.1.x branch with java -version:

openjdk version "1.8.0_232"
OpenJDK Runtime Environment (build 1.8.0_232-b09)
OpenJDK 64-Bit Server VM (build 25.232-b09, mixed mode)

With the usual:

sbt +clean
sbt +package
sbt release

Then ran the following commands to stage the Scala.js 1.0.0 artifacts—probably overkill on the cleaning but I have no idea why it got messed up last time so I'm being careful:

echo 'version in ThisBuild := "2.1.1"' > version.sbt
sbt +clean
SCALAJS_VERSION=1.0.0 sbt +clean
SCALAJS_VERSION=1.0.0 sbt +validateJS
SCALAJS_VERSION=1.0.0 sbt +clean
SCALAJS_VERSION=1.0.0 sbt +package
bash scripts/scala.js-1.0-publish.sh

I haven't promoted the release yet, because I wanted to try it out in staging, so I added this to some of the failing PRs above and updated them to 2.1.1.

resolvers += (
  "staging" at "https://oss.sonatype.org/service/local/repositories/orgtypelevel-1587/content/"
)

They're all passing tests now:

I'll promote the artifacts in the next hour or two.

milessabin commented 4 years ago

Also a lot of the ecosystem is still blocked on Shapeless

Not for too much longer: https://github.com/milessabin/shapeless/pull/967.

I need to find time to back publish.

jenshalm commented 4 years ago

Also tested the staged artefacts, they work well for me, all 1,600+ tests green. :-)

travisbrown commented 4 years ago

@jenshalm Thanks! The release is out now, so you can properly update. :smile:

jenshalm commented 4 years ago

Perfect timing. Thanks a lot for the quick fix!

travisbrown commented 4 years ago

Seems like everything's fine, closing this. Thanks for catching it, @larsrh.