scala / scala-dev

Scala 2 team issues. Not for user-facing bugs or directly actionable user-facing improvements. For build/test/infra and for longer-term planning and idea tracking. Our bug tracker is at https://github.com/scala/bug/issues
Apache License 2.0
130 stars 14 forks source link

Release Scala 2.13.15 #870

Closed SethTisue closed 2 months ago

SethTisue commented 3 months ago

Variables to be expanded in this template (or set and export them in a local terminal, so that you can copy/paste the commands below without replacing anything):

SCALA_VER_BASE="2.13.15"
SCALA_VER_SUFFIX=""
SCALA_SHA=b6f70d2347f2857695e5c0fe544b0f921544b02a
DIST_SHA=4bc3c75fa5155b4070aaf7ba66e1d2f7b6a92b83
SCALA_VER="$SCALA_VER_BASE$SCALA_VER_SUFFIX"

Key links:

N weeks before the release

Release announcement / notes

N days before release

Allow time for testing

How much time is sufficient? A week is a bare minimum. Two weeks is a better "normal" amount. We should also respect requests from Scala Center advisory board members, if they explicitly ask for additional testing time. (In the past, we sometimes only waited a day or two, but this was overly optimistic in presuming that people had been testing nightlies all along.)

Be mindful of others' schedules; even minor releases make work downstream (for Scala.js and Scala Native, for the Scala 3 team, for compiler plugin authors, and so on). And a botched release might make unexpected work for ourselves as well as for others. So it's better not to release on a Friday or even a Thursday, or too close to a major holiday. And it's best to release while everyone in both America and Europe is awake. (First thing in the morning in America is a good choice.)

Stage! (point of soft no-return)

Once sufficient time for community testing has passed, it's time to stage the release!

We call this "soft" no-return because even staged artifacts can end up in local caches and cause confusion.

Release! (point of hard no-return)

"Hard" no-return because Maven Central is forever. Also, S3 uploads should be treated as forever (S3 buckets can be changed, but it can takes days to become consistent). Tags, too, should be treated as forever, even though they can technically be deleted and re-pushed.

While waiting for Maven Central

After everything is on Maven Central

Prepare downstream

Wait for downstream

Before proceeding any further, wait for the ecosystem to catch up.

We have promised to wait 48 non-weekend hours, minimum.

If there are delays downstream, at some point it may make sense to go ahead and announce anyway, since news of the release will already be spreading in the community.

Announcements

Afterwards

You're done!

Philippus commented 3 months ago

Let's add JDK 23 to the 'community build' step?

SethTisue commented 3 months ago

@Philippus good point; done above and in: ed8ebfbcc277a318680f6f22bfbb020cf95c5be9