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

Possibly corrupted sjs 1 artifact #3313

Closed
larsrh opened this issue Feb 22, 2020 · 24 comments
Closed

Possibly corrupted sjs 1 artifact #3313

larsrh opened this issue Feb 22, 2020 · 24 comments

Comments

@larsrh
Copy link
Contributor

larsrh commented Feb 22, 2020

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
Copy link
Contributor Author

larsrh commented Feb 22, 2020

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

@larsrh
Copy link
Contributor Author

larsrh commented Feb 23, 2020

And another one typelevel/cats-effect#796

@jenshalm
Copy link

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
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Contributor Author

larsrh commented Feb 24, 2020

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
Copy link
Contributor

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
Copy link

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
Copy link
Contributor

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
Copy link
Contributor

smarter commented Feb 24, 2020

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

@jenshalm
Copy link

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
Copy link
Contributor

@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
Copy link

jenshalm commented Feb 24, 2020

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

@travisbrown
Copy link
Contributor

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
Copy link
Contributor

/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:

  • Publish a 2.1.1 with the JVM and Scala.js 0.6 artifacts being identical to 2.1.0.
  • Publish a new 2.2.0-RC1.

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

@larsrh
Copy link
Contributor Author

larsrh commented Feb 24, 2020

All things considered I'm in favour of 2.1.1.

@tpolecat
Copy link
Member

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

Nope, this seems good to me. Thanks!

@travisbrown
Copy link
Contributor

Okay, I just staged a normal 2.1.1 release from a0a440f 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
Copy link
Member

Also a lot of the ecosystem is still blocked on Shapeless

Not for too much longer: milessabin/shapeless#967.

I need to find time to back publish.

@jenshalm
Copy link

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

@travisbrown
Copy link
Contributor

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

@jenshalm
Copy link

Perfect timing. Thanks a lot for the quick fix!

@travisbrown
Copy link
Contributor

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

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

6 participants