Skip to content

Commit a779ab5

Browse files
committed
release steps: distinguish between staging and releasing
1 parent 29638e1 commit a779ab5

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

.github/ISSUE_TEMPLATE/release.md

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,18 @@ Key links:
6262
[scala-asm]: https://github.com/scala/scala-asm/
6363
[ASM]: https://asm.ow2.io/versions.html
6464

65-
### Point of no return
65+
### Allow time for testing
6666

67-
Once sufficient time for community testing has passed, it's time to cut the release!
68-
69-
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.)
67+
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.)
7068

7169
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.)
7270

71+
### Stage! (point of soft no-return)
72+
73+
Once sufficient time for community testing has passed, it's time to stage the release!
74+
75+
We call this "soft" no-return because even staged artifacts can end up in local caches and cause confusion.
76+
7377
- [ ] Make sure there are no stray [staging repos](https://oss.sonatype.org/#stagingRepositories) on Sonatype
7478
- [ ] Trigger a custom build on [travis](https://app.travis-ci.com/github/scala/scala)
7579
- Select the correct branch
@@ -85,7 +89,11 @@ Be mindful of others' schedules; even minor releases make work downstream (for S
8589
- https://oss.sonatype.org/content/repositories/staging/org/scala-lang/scala-compiler/$SCALA_VER/
8690
- 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
8791
- [ ] Check that JARs haven't mysteriously bloated — compare sizes to previous release. We have no other backstop for this.
88-
- 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)
92+
93+
### Release! (point of hard no-return)
94+
95+
"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.
96+
8997
- [ ] Push scala/scala tag: `git push https://github.com/scala/scala.git v$SCALA_VER`
9098
- [ ] Push scala/scala-dist tag: `git push https://github.com/scala/scala-dist.git v$SCALA_VER`
9199
- [ ] Trigger two scala-dist jobs on travis (https://app.travis-ci.com/github/scala/scala-dist) with custom config. must use full-length SHAs!

0 commit comments

Comments
 (0)