Closed
Description
SCALA_VER_BASE="2.13.6"
SCALA_VER_SUFFIX=""
SCALA_SHA=9468b9abcda6955688804194c02fe11db8c78a38
DIST_SHA=8a792b55c74abd3357da549591b0b2bb975bba9c
SCALA_VER="2.13.6"
Key links:
- scala/scala milestone: https://github.com/scala/scala/milestones/2.13.6
- scala/bug milestone: https://github.com/scala/bug/milestones/2.13.6
- scala/scala-dev milestone: https://github.com/scala/scala-dev/milestone/2.13.6
- Discourse topic: https://contributors.scala-lang.org/t/scala-2-13-6-planning/4975/10
- release notes draft: https://github.com/scala/scala-dev/blob/scala-dev/releases/2.13.6.md
N weeks before the release
- Wind down PR queue. There has to be enough time after the last (non-trivial) PR is merged and the next phase. The core of the eco-system needs time to prepare for the final!
- Triage scala/bug and scala/scala-dev tickets
- Create next scala/scala milestone, move the magical "Merge to 2.13.x" description to it (so Scabot uses it as default for new PRs), move pending PRs
- Create next scala/bug milestone, move pending issues
- Create next scala/scala-dev milestone, move pending issues
- Check PRs assigned to the milestone, also check WIP
- Announce expected release date and current nightly "release candidate" (nightly sha-mangled version) at https://scala-ci.typesafe.com/artifactory/scala-integration/ on https://contributors.scala-lang.org/c/announcements
-
Also notify Scala Center advisory board members of the upcoming release, so they can help test if they want (Seth can handle this, if asked)
Release announcement / notes
- Notify community on https://contributors.scala-lang.org/c/announcements
- Review merged PRs, make sure release-notes label is applied appropriately
- PRs with release-notes label must have excellent title & description (title will be pasted literally in release note bullet list)
- Draft release notes (PR and self-merge, so others can comment there rather than on the commits)
- On contributors thread, link to release note file and request feedback
N days before release
- Announce no more PRs will be merged unless last-minute regressions are found. Re-iterate current nightly sha version for testing.
- Community build
- Windows build on GitHub Actions: https://github.com/scala/scala/runs/2586189689
- JDK 16 build on Travis (cron job): https://travis-ci.com/github/scala/scala/builds/226035704
- Check any merged PRs accidentally assigned to the next milestone in this branch, and re-assign them to this milestone
- Merge in any older release branch
- Check module versioning (is everything in versions.properties up to date?)
- On major release, bump PickleFormat version
- Close the scala/scala and scala/bug milestones
Point of no return
- Make sure there are no stray staging repos on sonatype
- Trigger a custom build on travis
- Select the correct branch
- Custom config:
before_script: export SCALA_VER_BASE=2.13.6 SCALA_VER_SUFFIX=
- Check the build status on https://github.com/scala/scala/commits/2.13.x
- https://travis-ci.com/github/scala/scala/builds/226075684 -- failed due to staging repo close timeout. started scala-dist manually.
- Check that the scala/scala job also triggered a following scala/scala-dist job
- https://travis-ci.com/github/scala/scala-dist/builds/226079183 -- started manually due to staging repo close timeout. custom config:
before_install: export version=2.13.6 mode=release scala_sha=9468b9abcda6955688804194c02fe11db8c78a38
- https://travis-ci.com/github/scala/scala-dist/builds/226079183 -- started manually due to staging repo close timeout. custom config:
- Create the scala/scala tag locally:
git tag -s -m "Scala 2.13.6" v2.13.6 9468b9abcda6955688804194c02fe11db8c78a38
- Create scala-dist tag locally:
git tag -s -m "Scala 2.13.6" v2.13.6 8a792b55c74abd3357da549591b0b2bb975bba9c
- Note the repos to be promoted after tag is cut (see travis log)
- Sanity check jar/pom
- https://oss.sonatype.org/content/repositories/staging/org/scala-lang/scala-compiler/2.13.6/
- in particular, if the release was staged multiple times, double check that https://oss.sonatype.org/content/repositories/staging/ has the files from the most recent build
- Check that JARs haven't mysteriously bloated — compare sizes to previous release. We have no other backstop for this.
- Remember, tags are forever, so are maven artifacts (even staged ones, as they could end up in local caches) and S3 uploads (S3 buckets can be changed, but it can takes days to become consistent)
- Push scala/scala tag:
git push https://github.com/scala/scala.git v2.13.6
- Add release notes to https://github.com/scala/scala/releases/tag/v2.13.6
- Push scala/scala-dist tag:
git push https://github.com/scala/scala-dist.git v2.13.6
- Trigger two scala-dist jobs on travis (https://travis-ci.com/scala/scala-dist) with custom config. must use full-length SHAs!
before_script: export version=2.13.6 scala_sha=9468b9abcda6955688804194c02fe11db8c78a38 mode=archives
: https://travis-ci.com/github/scala/scala-dist/builds/226080466before_script: export version=2.13.6 scala_sha=9468b9abcda6955688804194c02fe11db8c78a38 mode=update-api
: https://travis-ci.com/github/scala/scala-dist/builds/226080498
- Promote staging repos:
st_stagingRepoPromote [scala-repo]
,st_stagingRepoPromote [modules-repo]
(or use oss.sonatype.org web UI)
Check availability
- Check release on sonatype: https://oss.sonatype.org/content/repositories/releases/org/scala-lang/scala-compiler/2.13.6/
- Check the release on maven central: https://repo1.maven.org/maven2/org/scala-lang/scala-compiler/2.13.6/
When everything is on maven central
- Prepare PR to https://github.com/scala/scala-lang/ (using scala/make-release-notes which requires a staged release and a pushed tag)
download/index.md
_config.yml
(update devscalaversion or scalaversion)index.md
(updatecurrentScalaVersion
)
- Prepare PR to https://github.com/scala/docs.scala-lang/
api/all.md
,_config.yml
,_overviews/jdk-compatibility/overview.md
- make sure the draft release notes are on GitHub tag: https://github.com/scala/scala/releases/tag/v2.13.6
- Pre-announce the release on https://contributors.scala-lang.org/c/announcements
- On 2.13.0 only: (manually) update the
current
symlink for the API docs - Check that the API docs are published
- http://www.scala-lang.org/api/2.13.6/
- https://docs.scala-lang.org/api/all.html ?
- if they don't show up, possible troubleshooting steps include:
- review the two scala-dist job logs to make sure that
- the first one appears to have succeeded putting files in
/home/linuxsoft/archives/scala/api
onchara.epfl.ch
- the second one appears to have succeeded in updating the symlink (from
2.1x.y
to 2.13.6)
- the first one appears to have succeeded putting files in
- ssh to chara.epfl.ch and poke around to see if things are where they should be
- if you don't have the credential for this locally but you are able to bring jenkins-worker-publish up at
ssh jenkins-worker-publish
, then from there you canssh -i ~/.ssh/jenkins_lightbend_chara scalatest@chara.epfl.ch
- if you don't have the credential for this locally but you are able to bring jenkins-worker-publish up at
- see if https://scala-webapps.epfl.ch/jenkins/view/All/job/production_scala-lang.org-scala-dist-archive-sync/ has run a job yet to sync the changes into production
- if not, you can manually trigger a job. Seth has access to do that, probably others on the team do too. if we get stuck, Fabien can help
- review the two scala-dist job logs to make sure that
- Merge the scala-lang PR and the docs.scala-lang.org PR
- wait for them to arrive on the websites and make sure they look okay
- if the scala-lang changes don't show up, possible troubleshooting steps include:
- see if https://scala-webapps.epfl.ch/jenkins/view/All/job/production_scala-lang.org-builder/ has run a job yet to actually publish the changes
- see note above about permissions to trigger a job
- if the scala-lang changes don't show up, possible troubleshooting steps include:
- wait for them to arrive on the websites and make sure they look okay
Modules
- build and release scala-collection-compat and other modules (or open tickets asking that the maintainers do so)
- this work has moved to https://github.com/scala/make-release-notes/blob/2.13.x/projects-2.13.md
- if it's a 2.12.x release, publish macro paradise for the new version
Announcements
- Scala Users discourse https://users.scala-lang.org
- add a reply on the same https://contributors.scala-lang.org thread where you announced that the release process was starting
- Tweet from @scala_lang
- https://gitter.im/scala/scala
- if you feel like it, say something in https://gitter.im/scala/contributors too
- ask Seth to announce on #scala IRC
Afterwards
- Check the release on maven search (may take a few hours):
- Create PR to add/update spec links on scala-lang.org (example: update spec links and advisements scala-lang#1050)
- Create a scala/scala PR to:
- update
starr.version
in/versions.properties
- update
Global / baseVersion
in/build.sbt
- update
mimaReferenceVersion
in/project/MimaFilters.scala
- clear out
mimaFilters
in/project/MimaFilters.scala
, except the one(s) labeled "KEEP" -
spec/_config.yml
, if it's a major bump
- update
- If it's a major bump:
- Update
latestSpecVersion
inspec/_config.yml
on the old branch, so that spec is marked as no longer current - Ditto for the nightly build and spec links in
_data/footer.yml
and_data/doc-nav-header.yml
on docs.scala-lang.org
- Update
- Create PR to update https://github.com/lightbend/lightbend-technology-intro-doc/blob/master/docs/modules/getting-help/pages/build-dependencies.adoc
- Consider updating https://docs.scala-lang.org/overviews/jdk-compatibility/overview.html
- (Lightbend) Publish scala-fortify-plugin
- (Lightbend) Update WhiteSource
- (Lightbend) Notify eng-updates
- Close this ticket and close the scala-dev milestone