Closed SethTisue closed 2 years ago
The link to the community build is wrong:
JDK 17: https://scala-ci.typesafe.com/job/scala-2.13.x-jdk16-integrate-community-build/????
Thanks — I went through and changed 2.12 -> 2.13 in a number of places.
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):
Key links:
N weeks before the release
Release announcement / notes
gh api --paginate -X GET search/issues -f q='repo:scala/scala is:pull-request is:merged milestone:2.12.16 label:release-notes' -q '.items[] | " * \(.title) ([#\(.number)](\(.html_url)) by [@\(.user.login)](\(.user.html_url)))"'
N days before release
Point of no return
Once sufficient time for community testing has passed, it's time to cut the release!
What is "sufficient" time? 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.)
before_script: export SCALA_VER_BASE=$SCALA_VER_BASE SCALA_VER_SUFFIX=$SCALA_VER_SUFFIX
git tag -s -m "Scala $SCALA_VER" v$SCALA_VER $SCALA_SHA
git tag -s -m "Scala $SCALA_VER" v$SCALA_VER $DIST_SHA
git push https://github.com/scala/scala.git v$SCALA_VER
git push https://github.com/scala/scala-dist.git v$SCALA_VER
before_script: export version=$SCALA_VER scala_sha=$SCALA_SHA mode=archives
: https://app.travis-ci.com/github/scala/scala-dist/builds/251673574before_script: export version=$SCALA_VER scala_sha=$SCALA_SHA mode=update-api
: https://app.travis-ci.com/github/scala/scala-dist/jobs/572807191st_stagingRepoPromote [scala-repo]
,st_stagingRepoPromote [modules-repo]
(or use oss.sonatype.org web UI)Check availability
When everything is on maven central
download/index.md
_config.yml
(update devscalaversion or scalaversion)index.md
(updatecurrentScalaVersion
)api/all.md
,_config.yml
,_overviews/jdk-compatibility/overview.md
current
symlink for the API docs~/home/linuxsoft/archives/scala/api
onchara.epfl.ch
2.1x.y
to $SCALA_VER)ssh jenkins-worker-publish
, then from there you canssh -i ~/.ssh/jenkins_lightbend_chara scalatest@chara.epfl.ch
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
.zip
format,.tgz
doesn't workcurl -X POST -H "Consumer-Key: xxx" -H "Consumer-Token: xxx" -H "Content-Type: application/json" -H "Accept: application/json" -d '{"candidate": "scala", "version": "2.12.14", "url": "https://downloads.lightbend.com/scala/2.12.14/scala-2.12.14.tgz"}' https://vendors.sdkman.io/release
xxx
s with the credential information provided to Seth by Marco Vermeulen (marco at sdkman dot io)sdk list scala
andsdk install scala <version>
(these should work immediately once thePOST
succeeds)PATCH
andDELETE
are also availableAfterwards
project/Build.scala
community-build/community-projects/stdLib213
(after updating https://github.com/dotty-staging/scala to include recent commits)ScalaTarget.scala
will need updatinglatestSpecVersion
inspec/_config.yml
on the old branch, so that spec is marked as no longer current~_data/footer.yml
and_data/doc-nav-header.yml
on docs.scala-lang.org~starr.version
in/versions.properties
Global / baseVersion
in/build.sbt
mimaReferenceVersion
in/project/MimaFilters.scala
mimaFilters
in/project/MimaFilters.scala
, except the one(s) labeled "KEEP"spec/_config.yml
, if it's a major release~You're done!