2.13.0-M5 release train

It’s just about time to roll another milestone, the last one before 2.13.0-RC1. We aim to build M5 this week.

please review:

and please help review the open pull requests. As always, this is a collective endeavor.

334 pull requests (!!!) have been merged since M4. The most significant have the “release notes” label: https://github.com/scala/scala/pulls?utf8=✓&q=is%3Amerged+label%3Arelease-notes+milestone%3A2.13.0-M5 A great many of the rest are small fixes to the new collections.

The focus in M5 remains firmly on collections, as the centerpiece of the 2.13 release generally. M5 is our feature-freeze release for 2.13; from here forward, we’ll be closing existing open loops but not embarking on or accepting anything new.

  • Seth Tisue / Scala team / Lightbend
6 Likes

To reiterate, we will only accept collection fixes and anything directly related to improving collection usage and the migration to 2.13 (e.g., improved type inference for typical usage of the new collections) RC1.

Any changes that do not directly impact this will have to wait for 2.13.1. The RC cycle needs a narrow focus, so that we can release 2.13.0 soon (and thus 2.13.1 ;-)). I’ve started moving these PRs to the 2.13.1 milestone.

Are performance improvements for collections still on the table for 2.13.0? I wanted to do these after my PR for SeqMap was merged since @retronym also did some indirect work to improve performance

Yes, performance improvements can go into RC1 but we want to avoid API changes after M5.

Please note that I am on vacation until this Sunday August 12. I have already merged several changes to Scala.js due to new breaking changes in M5 wrt. M4, but several additional ones have made their way to master since then. I will need at least one week after being back from vacation to catch up with all those changes, then one more week to release a version of Scala.js that will be compatible with M5.

A quick update from the Scala team: We have cleared the ticket queue for M5 this week but there are still a few open PRs that we want to merge. We are therefore delaying the release of M5 until next week. Any new tickets and PRs should go to RC1 by default.

Is there a concrete date next week?

Are these problems identified somewhere?

LazyList is under active discussion at `LazyList`'s `last` method (and perhaps others?) should be lazier · Issue #11089 · scala/bug · GitHub (and LazyList.fill and LazyList.tabulate aren't lazy in the head · Issue #11083 · scala/bug · GitHub)

re: StringOps, see Deprecate nonsensical StringOps operations by szeiger · Pull Request #6702 · scala/scala · GitHub , which didn’t attract a lot of discussion at the time, but perhaps that will change now.

Neither is a blocker for M5, as there is still time for further changes before RC1.

1 Like

here’s the current M5 status:

  • about 40 more PRs have been merged in the last 7 days
  • we’re down to three remaining open PRs on the M5 milestone, all blockers
  • all three are likely near resolution
  • there aren’t currently any additional blockers in other repos (scala/bug, scala/scala-dev, scala/collection-strawman)

after these three PRs are merged, before rolling M5 we’ll need to do a last round of QA via the Scala 2.13 community build, which currently has about 60 projects in it (compared to ~160 in the 2.12 build). Hopefully anything that turns up can be dealt with fairly quickly, knock on wood.

So right now we’re looking at Monday as the earliest possible build day.

2 Likes

the last M5 PR has been merged. release candidate is 2.13.0-pre-53c4be1

we’ll start pulling release levers now

2 Likes

the community build showed that https://github.com/scala/scala/pull/7068 necessitates changes to scala-xml, ticket on that is https://github.com/scala/scala-xml/issues/253 . working on it

(scala-xml might not be the only affected project, we won’t know until scala-xml is fixed so downstream projects can build)

scala-xml is believed fixed, waiting on fresh community build run

release ticket: https://github.com/scala/scala-dev/issues/544

the release is staged. you can try it via

resolvers += "staging" at
  "https://oss.sonatype.org/content/repositories/staging"
scalaVersion := "2.13.0-M5"
1 Like

draft release notes: https://gist.github.com/SethTisue/545abfca429315af47fa0d31d2ef15d7

they are epic! sooooooo much stuff has landed

9 Likes

Quick update: we’re now a bit torn on whether to include my proposed fix for https://github.com/scala/bug/issues/10762, as that regression has prevented running the test suites in quite a few projects. It was tricky to fix, so we don’t want to rush to merge https://github.com/scala/scala/pull/7119, but it also seems like it would help to have it in M5 so that we can more easily publish these libraries against M5 (without having to disable their test suite).

we’re leaning towards including https://github.com/scala/scala/pull/7119 and rebuilding early next week, as multiple projects in the community build are affected. if we do rebuild, we’ll also include a few VectorMap fixes

PR 7119 is merged.

the new candidate is 2.13.0-pre-8a52aa1. I’ll run it through the community build today

the release is now staged again. you can try it via

resolvers += "staging" at
  "https://oss.sonatype.org/content/repositories/staging"
scalaVersion := "2.13.0-M5"

if you tried the last version that was staged, you may need to delete it from your local ivy cache, coursier cache, etc.

2 Likes

M5 is on Maven Central now. JAR checksums:

% sum ~/.ivy2/cache/**/*M5*.jar
42388 10055 cache/org.scala-lang/scala-compiler/jars/scala-compiler-2.13.0-M5.jar
58717 3972 cache/org.scala-lang/scala-library/jars/scala-library-2.13.0-M5.jar
62224 3567 cache/org.scala-lang/scala-reflect/jars/scala-reflect-2.13.0-M5.jar
1 Like