Announcing Scala 3.0.1-RC2

This post is a quick announcement of Scala 3.0.1-RC2. This is the second release candidate for 3.0.1. The reason for this release is that a regression with respect to 3.0.0 was introduced by PR #12519 which caused the compiler to fail where it shouldn’t. We have fixed this regression in PR #12827 and backported it to 3.0.1. This is the main reason for having 3.0.1-RC2 before 3.0.1 which is due in one week (if no other regressions from 3.0.0 are found).

Besides this main change, taking advantage of the fact that RC2 is happening, we have also included various SBT reporting improvements (PR #12845) which should improve interaction with Metals. Also we’ve backported a few infrastructural fixes even though they aren’t a regression from 3.0.0.

Original blog article: Scala 3.0.1-RC2 – backports of critical bugfixes

7 Likes

Can you please provide an anticipatory timeline for 3.0.1-RC2?

When is the “close date” where, if no show-stoppers are found, it starts the transition to a full release?

The goal is to more effectively manage expectations of all those trying to gain confidence to mitigate our risk sensitivity so we start investing in transitioning projects to Scala 3 sooner rather than later.

Hello, 3.0.1-RC2 is already available for you to try, and the post mentions that 3.0.1 should be released in one week from now, if no showstoppers are found in 3.0.1-RC2.

I understood that RC2 was available.

What is not clear, and why I am asking for clarification is that with the new RC2 drop. I am unable to tell if it continues to follow the RC1 clock. Or, like many other projects, RC2 resets and now has a new clock.

This remains ambiguous in the OP. I like your disambiguation, if it is true (but I don’t know your role in releases and cannot tell if you are assuming, or actually have clear validation).

Just to restate - it would engender more confidence if the roadmap intentions were stated clearly upon each release, instead of relying on the faulty memories of the many readers attempting to assume what it means.

1 Like

It seems that the clock is not reset. Source is the discussion here: Add 3.0.1-RC2 blog article by anatoliykmetyuk · Pull Request #12908 · lampepfl/dotty · GitHub - it also mentions the milestone where the date is set.

Scala 3 follows the rust release cycle: G - How Rust is Made and “Nightly Rust” - The Rust Programming Language

However, I can’t remember just now where that is mentioned - I’ve originally read it in some other github issue.

I understand your point, and agree that this should be mentioned somewhere in the docs and linked to in the announcement blog posts, plus maybe the actual “date” of the release? It’s still a fresh process for everyone, I guess.

4 Likes

Ah ok I see what you mean, yes I think going forward we should remind people about the release cycle at the tops of release notes, perhaps even mentioning specific releases.

3 Likes

So, if I am interpreting the information you provided (which required about 15 minutes of digging, reading, and subsequent understanding to get to the point I could post this comment…consider where a less motivated person wanting to kick Scala 3’s tires in anticipation of conversion would have just stopped trying to find this information), it appears that we can expect the next descision point at or before +6 weeks from Jun/25, correct?

If so, then this means the new decision point will be as late as Aug/6th, correct?

I’m translating that to mean as long as no regressions are found, it releases how many days after that? And if a regression is found, then the clock is reset to be +6 weeks from the publishing of RC3.

All of this “computing future date” logic sure could be simplified with a small comment about this at the top of each RC announcement.

I fully agree - just wanted provide all the info I had found elsewhere. After all, I am not involved in this process at all.

I believe @bishabosha also agreed that it’s helpful to add this to the release posts.

As I have also mentioned, the process is probably not yet fully fleshed out (and there are still issues to fix w.r.t. the release process itself).

1 Like

Just saw that Scala 3.0.1 is out now on github!! NICE!!

1 Like

Tysvm for noticing and posting.

And, that invalidated the assumptions I made just this morning. Any idea where I can find out how the release process actually works?

Maybe it’s summer vacation times that prevented blog-posting and updating of scala-lang.org – but we can poll the dotty github repo to see when new releases arrive.

The release process is part of the community experiences, which is being discussed here, so you might want to chip in there with suggestions for improving release communication:

1 Like

@bjornregnell thanks for your concern about the release. Basically things got a bit more complicated and required more time than usually because of a few issues (both technical and procedural):

The blogpost is currently being prepared so please have some patience :slight_smile:

3 Likes

For Scala 2, it’s always been common for there to be a gap of a day or two between the time a release appears on Maven Central and the time it is fully announced. The gap allows some time for some early adopters to make sure the release wasn’t botched, and it also gives maintainers time to publish libraries and tooling so by the time the release is announced, it’s more usable in practice.

3 Likes

I totally get there are things happening behind the scenes. And I am certain, like myself, there is no expectation of perfection by meeting dates, posted or otherwise.

However, how much patience is required is entirely dependent upon expectations management. If one’s timing expectations are primed by explicit communication of intention, then hardly any patience is required during the waiting of the time window. If the timing has not been explicitly primed, then the amount of patience required is entirely dependent upon the foggy memory of each particular anticipator.

Hence, my trying to move the expectations management around anticipated dates into the release notes.

I totally get it, Seth. And not a problem at all for me. I’ve been hanging around long enough to see the pattern.

However, I have buddies who are maintaining Scala 2 projects who won’t know or be holding this particular tribal knowledge nugget in their heads. The more that can be moved out of tribal knowledge and into explicit expectation management notes is the more quickly my buddies move from frustrated exploration to excited anticipation.

1 Like

No problem. I super-happy for all your hard work! :heart:
And thanks for reporting on progress and hurdles.
Blog posts can wait if more important stuff comes up…

Yeah, very nice to get it tested, so gap seems reasonable. A simple announcement e.g. here on the contributors list might trigger people to test it. Thanks again for all hard work on this!

For information to those who find this thread at a later point in time, here is now the announcement of 3.0.1:

2 Likes