Skip to content

Release 2.12.12 #715

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
59 of 65 tasks
retronym opened this issue Jul 1, 2020 · 1 comment
Closed
59 of 65 tasks

Release 2.12.12 #715

retronym opened this issue Jul 1, 2020 · 1 comment

Comments

@retronym
Copy link
Member

retronym commented Jul 1, 2020

For every Scala release, make a copy of this file named after the release, and expand the variables.
Ideally this should become a script you can run on your local machine. The only missing piece is programmatic triggering of travis jobs with custom config.

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

  • SCALA_VER_BASE="2.12.12"
  • SCALA_VER_SUFFIX=""
  • SCALA_SHA=cbe6ade1744bb316a63a07b07d3bf448590ad2cd
  • DIST_SHA=2d9200053dad901dbda2789d61057670c2cd757b
  • SCALA_VER="$SCALA_VER_BASE$SCALA_VER_SUFFIX"

Key links:

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 (to be published once GitHub tag is pushed)
    • note that GitHub release notes drafts can only be viewed by committers, so use a gist to draft the notes, so the gist can be shared with the community
  • On contributors thread, link to release note gist and request feedback

N days before release

Point of no return

Once sufficient time has passed since last merged PR, it's time to cut the release!

How long we wait depends on what kind of release it is. For a major release, it might be 1-2 weeks, to give core projects time to try out the preceding release candidate and/or the current candidate nightly. For point releases, assuming we've given the community ahead-of-time warning and kept them appraised of progress on the Discourse thread, and assuming the last changes merged seem sufficiently safe, we might build the next day.

Check availability

When everything is on maven central

Modules

Announcements

Afterwards

@retronym
Copy link
Member Author

retronym commented Jul 2, 2020

Draft release notes:

Highlights

This release adds compiler support for scala-async and backports substantial performance improvements to collections.

  • The compiler now includes a phase that performs the transformation for the async/await DSL for working with Scala Futures.
    This transform is based on the macro implementation in scala-async but has been substantially rewritten to fix some longstanding bugs, reduce the overhead of compilation and simplify the extension points for third party effect systems.
    scala-async 1.0.0 will be released shortly building atop this phase. (#8816)
  • immutable.{TreeSet, TreeMap} are now based on a backport of the 2.13.x implementation. (#8749)
  • The builders for immutable.{HashSet, HashMap} are more efficient -- they now use mutation during reducing memory churn. (#8726) (#8726)

Further highlights

  • Minor improvements to compiler performance. The allocation rate of the compiler is reduced by 10%.

This is not a complete list of changes. For that, see all merged PRs and all closed bugs.

Compatibility

As usual for our minor releases, Scala 2.12.12 is binary-compatible with the whole Scala 2.12 series.

Contributors

A big thank you to everyone who's helped improve Scala by reporting bugs, improving our documentation,
spreading kindness in discussions around Scala, and submitting and reviewing pull requests! You are all magnificent.

This release was brought to you by 13 contributors, according to git shortlog -sn --no-merges v2.12.11..v2.12.12. Thank you Jason Zaugg, Mike Skells, Lukas Rytz, Harrison Houghton, Adriaan Moors, Stefan Zeiger, Dale Wijnand, Seth Tisue, A. P. Marki, Eugene Yokota, NthPortal, Georgi Krastev and Martijn Hoekstra.

Thanks to Lightbend for their continued sponsorship of the Scala core team’s efforts. Lightbend offers commercial support for Scala.

Scala 2.12 notes

The release notes for Scala 2.12.0 have important information applicable to the whole 2.12 series.

Obtaining Scala

Scala releases are available through a variety of channels, including (but not limited to):

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants