@@ -10,56 +10,41 @@ set -e
1010# sbt-dynver sets the version number from the tag
1111# sbt-travisci sets the Scala version from the travis job matrix
1212
13- # When a new binary incompatible Scala version becomes available, a previously released version
14- # can be released using that new Scala version by creating a new tag containing the Scala version
15- # after a hash, e.g., v1.2.3#2.13.0-M3.
13+ # To back-publish an existing release for a new Scala / Scala.js / Scala Native version:
14+ # - check out the tag for the version that needs to be published
15+ # - change `.travis.yml` to adjust the version numbers and trim down the build matrix as necessary
16+ # - commit the changes and tag this new revision with an arbitrary suffix after a hash, e.g.,
17+ # `v1.2.3#dotty-0.27` (the suffix is ignored, the version will be `1.2.3`)
1618
17- # For normal tags that are cross-built, we release on JDK 8 for Scala 2.x
19+ # We release on JDK 8 ( for Scala 2.x and 3.x).
1820isReleaseJob () {
19- if [[ " $ADOPTOPENJDK " == " 8" && " $TRAVIS_SCALA_VERSION " =~ ^2 \. 1[34] \. . * $ ]]; then
21+ if [[ " $ADOPTOPENJDK " == " 8" ]]; then
2022 true
2123 else
2224 false
2325 fi
2426}
2527
26- # For tags that define a Scala version, we pick the jobs of one Scala version (2.13.x) to do the releases
27- isTagScalaReleaseJob () {
28- if [[ " $ADOPTOPENJDK " == " 8" && " $TRAVIS_SCALA_VERSION " =~ ^2\. 13\. [0-9]+$ ]]; then
29- true
30- else
31- false
32- fi
33- }
28+ projectPrefix=" "
3429
3530verPat=" [0-9]+\.[0-9]+\.[0-9]+(-[A-Za-z0-9-]+)?"
36- tagPat=" ^v$verPat (#$verPat )?$"
31+ tagPat=" ^v$verPat (#.* )?$"
3732
3833if [[ " $TRAVIS_TAG " =~ $tagPat ]]; then
3934 releaseTask=" ci-release"
40- tagScalaVer=$( echo $TRAVIS_TAG | sed s/[^# ]*// | sed s/^#//)
41- if [[ " $tagScalaVer " == " " ]]; then
42- if ! isReleaseJob; then
43- echo " Not releasing on Java $ADOPTOPENJDK with Scala $TRAVIS_SCALA_VERSION "
44- exit 0
45- fi
46- else
47- if isTagScalaReleaseJob; then
48- setTagScalaVersion=' set every scalaVersion := "' $tagScalaVer ' "'
49- else
50- echo " The releases for Scala $tagScalaVer are built by other jobs in the travis job matrix"
51- exit 0
52- fi
35+ if ! isReleaseJob; then
36+ echo " Not releasing on Java $ADOPTOPENJDK with Scala $TRAVIS_SCALA_VERSION "
37+ exit 0
5338 fi
5439fi
5540
5641# default is +publishSigned; we cross-build with travis jobs, not sbt's crossScalaVersions
57- export CI_RELEASE= " publishSigned"
58- export CI_SNAPSHOT_RELEASE= " publish"
42+ export CI_RELEASE=" ${projectPrefix} publishSigned"
43+ export CI_SNAPSHOT_RELEASE=" ${projectPrefix} publish"
5944
6045# default is sonatypeBundleRelease, which closes and releases the staging repo
6146# see https://github.com/xerial/sbt-sonatype#commands
6247# for now, until we're confident in the new release scripts, just close the staging repo.
6348export CI_SONATYPE_RELEASE=" ; sonatypePrepare; sonatypeBundleUpload; sonatypeClose"
6449
65- sbt " $setTagScalaVersion " clean test core/headerCheck publishLocal $releaseTask
50+ sbt clean ${projectPrefix} test core/headerCheck ${projectPrefix} publishLocal $releaseTask
0 commit comments