Move more release instructions to the template (#30340)

* Move more release instructions to the template

Sparked by discussion in #17432

* use newer version in example

Co-authored-by: Renato Cavalcanti <renato@cavalcanti.be>

* point to sonatype for snapshots

Co-authored-by: Renato Cavalcanti <renato@cavalcanti.be>
This commit is contained in:
Arnout Engelen 2021-06-23 17:06:13 +02:00 committed by GitHub
parent dd13277195
commit bbae718ef7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 38 additions and 81 deletions

View file

@ -53,20 +53,14 @@ your `~/.sbt/1.0/private-credentials.sbt`.
[Graphvis](https://graphviz.gitlab.io/download/) is needed for the [Graphvis](https://graphviz.gitlab.io/download/) is needed for the
scaladoc generation build task, which is part of the release. scaladoc generation build task, which is part of the release.
### Release script instructions
Make sure you have completed the setup in `project/scripts/release`.
## Snapshot releases ## Snapshot releases
Nightly snapshot releases are created from master and published to Snapshot releases are created from master and published to
https://repo.akka.io/snapshots by https://jenkins.akka.io:8498/job/akka-publish-nightly/ https://oss.sonatype.org/content/repositories/snapshots/com/typesafe/akka/
To create snapshot versions manually, use `sbt clean publish`. To create snapshot versions manually, use `sbt clean publishLocal`.
The release artifacts are created in `akka-*/target/repository` and can be If you have access, you can use `+publishSigned` to publish them to
copied over to a maven server. If you have access, the Jenkins job at sonatype.
https://jenkins.akka.io:8498/job/akka-publish-wip/ can be used to publish
a snapshot to https://repo.akka.io/snapshots from any branch.
## Releasing only updated docs ## Releasing only updated docs
@ -88,55 +82,3 @@ It is possible to release a revised documentation to the already existing releas
sbt akka-docs/publishRsync sbt akka-docs/publishRsync
``` ```
1. Do not forget to push the new branch back to GitHub. 1. Do not forget to push the new branch back to GitHub.
## Release steps
* Tag the release: `git tag -am "Version 2.6.x" v2.6.x`
* Do a `project/scripts/release` to build and release to sonatype
* Log into sonatype, 'close' the staging repo.
* Test the artifacts by adding `resolvers += "Staging Repo" at "https://oss.sonatype.org/content/repositories/comtypesafe-xxxx"` to a test project
* If all is well, 'release' the staging repo.
* Push the release tag to github
## Announcing
* Prepare milestone on github:
* go to the [Milestones tab](https://github.com/akka/akka/milestones)
* move all open issues so that this milestone contains completed work only
* close that milestone
* create a new milestone for next patch version
* In case of a new minor release:
* update the branch descriptions at CONTRIBUTING.md#branches-summary
* write blog post for akka.io and lightbend.com
* Create an announcement as a PR against akka/akka.github.com .
* credits can be generated with `scripts/authors.scala v2.3.5 v2.3.6`
* also update the `latest` variable in `_config.yml`.
Now wait until all artifacts have been properly propagated. Then:
* Update `MiMa.latestPatchOf` and PR that change (`project/MiMa.scala`)
* Change the symbolic links from 'current': `ssh akkarepo@gustav.akka.io ./update-akka-current-version.sh <x.y.z>`
* Publish the release announcement
* Tweet about it
* Post about it on Discuss
* Post about it on Gitter
* Create a GitHub 'release' for the tag via https://github.com/akka/akka/releases with a link to the release notes
## Update references
Update the versions used in:
* https://github.com/akka/akka-samples
* https://github.com/lightbend/lightbend-platform-docs/blob/master/docs/modules/getting-help/examples/build.sbt (this populates https://developer.lightbend.com/docs/lightbend-platform/introduction/getting-help/build-dependencies.html#_akka)
These are autoupdated by latest stable on maven central:
* https://github.com/akka/akka-quickstart-java.g8
* https://github.com/akka/akka-quickstart-scala.g8
* https://github.com/akka/akka-http-quickstart-java.g8
* https://github.com/akka/akka-http-quickstart-scala.g8
* https://github.com/akka/akka-grpc-quickstart-java.g8
* https://github.com/akka/akka-grpc-quickstart-scala.g8

View file

@ -32,12 +32,7 @@ All Akka releases are published via Sonatype to Maven Central, see
## Snapshots Repository ## Snapshots Repository
Nightly builds are available in [https://repo.akka.io/snapshots](https://repo.akka.io/snapshots/) as both `SNAPSHOT` and Snapshot builds are available at [https://oss.sonatype.org/content/repositories/snapshots/com/typesafe/akka/](https://oss.sonatype.org/content/repositories/snapshots/com/typesafe/akka/). All Akka modules that belong to the same build have the same version.
timestamped versions.
For timestamped versions, pick a timestamp from
[https://repo.akka.io/snapshots/com/typesafe/akka/](https://repo.akka.io/snapshots/com/typesafe/akka/).
All Akka modules that belong to the same build have the same timestamp.
@@@ warning @@@ warning
@ -50,14 +45,14 @@ The use of Akka SNAPSHOTs, nightlies and milestone releases is discouraged unles
Make sure that you add the repository to the sbt resolvers: Make sure that you add the repository to the sbt resolvers:
``` ```
resolvers += "Akka Snapshots" at "https://repo.akka.io/snapshots/" resolvers += Resolver.sonatypeRepo("snapshots")
``` ```
Define the library dependencies with the timestamp as version. For example: Define the library dependencies with the complete version. For example:
@@@vars @@@vars
``` ```
libraryDependencies += "com.typesafe.akka" % "akka-remote_$scala.binary.version$" % "2.5-20170510-230859" libraryDependencies += "com.typesafe.akka" % "akka-remote_$scala.binary.version$" % "2.6.14+72-53943d99-SNAPSHOT"
``` ```
@@@ @@@
@ -68,10 +63,12 @@ Make sure that you add the repository to the Maven repositories in pom.xml:
``` ```
<repositories> <repositories>
<repository> <repository>
<id>akka-snapshots</id> <id>oss-sonatype</id>
<name>Akka Snapshots</name> <url>https://oss.sonatype.org/content/repositories/snapshots</url>
<url>https://repo.akka.io/snapshots/</url>
<layout>default</layout> <layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository> </repository>
</repositories> </repositories>
``` ```
@ -84,7 +81,7 @@ Define the library dependencies with the timestamp as version. For example:
<dependency> <dependency>
<groupId>com.typesafe.akka</groupId> <groupId>com.typesafe.akka</groupId>
<artifactId>akka-remote_$scala.binary.version$</artifactId> <artifactId>akka-remote_$scala.binary.version$</artifactId>
<version>2.5-20170510-230859</version> <version>2.6.14+72-53943d99-SNAPSHOT</version>
</dependency> </dependency>
</dependencies> </dependencies>
``` ```

View file

@ -13,7 +13,7 @@ import com.typesafe.tools.mima.plugin.MimaPlugin.autoImport._
object MiMa extends AutoPlugin { object MiMa extends AutoPlugin {
private val latestPatchOf25 = 32 private val latestPatchOf25 = 32
private val latestPatchOf26 = 14 private val latestPatchOf26 = 15
override def requires = MimaPlugin override def requires = MimaPlugin
override def trigger = allRequirements override def trigger = allRequirements

View file

@ -3,8 +3,10 @@ Release Akka $VERSION$
### Before the release ### Before the release
- [ ] Make sure all important / big PRs have been merged by now - [ ] Make sure all important / big PRs have been merged by now
- [ ] Create a news item draft PR on [akka.github.com](https://github.com/akka/akka.github.com), using the milestone - [ ] Create a news item draft PR on [akka.io](https://github.com/akka/akka.io), using the milestone and `scripts/authors.scala v2.6.14 v2.6.15`
- [ ] Make sure to update `versions.json` in it - [ ] Make sure to update `_config.yml` in it
- In case of a new minor release:
- [ ] update the branch descriptions at CONTRIBUTING.md#branches-summary
### Cutting the release ### Cutting the release
@ -12,6 +14,7 @@ Release Akka $VERSION$
- [ ] Tag the release `git tag -a -s -m 'Release v$VERSION$' v$VERSION$` and push the tag `git push --tags` - [ ] Tag the release `git tag -a -s -m 'Release v$VERSION$' v$VERSION$` and push the tag `git push --tags`
- [ ] Create a [new milestone](https://github.com/akka/akka/milestones) for the next version and close the current one. - [ ] Create a [new milestone](https://github.com/akka/akka/milestones) for the next version and close the current one.
- [ ] Check that the GitHub Actions release build has executed successfully (it should publish artifacts to Sonatype and documentation to Gustav) - [ ] Check that the GitHub Actions release build has executed successfully (it should publish artifacts to Sonatype and documentation to Gustav)
- [ ] Update `MiMa.latestPatchOf` and PR that change (`project/MiMa.scala`)
### Check availability ### Check availability
@ -45,7 +48,22 @@ Release Akka $VERSION$
- [ ] Merge draft news item for [akka.io](https://github.com/akka/akka.github.com) - [ ] Merge draft news item for [akka.io](https://github.com/akka/akka.github.com)
- [ ] Create a [GitHub release](https://github.com/akka/akka/releases) with the next tag version `v$VERSION$`, title and a link to the announcement - [ ] Create a [GitHub release](https://github.com/akka/akka/releases) with the next tag version `v$VERSION$`, title and a link to the announcement
- [ ] Send a release notification to [Lightbend discuss](https://discuss.akka.io) - [ ] Post about it on the [forum](https://discuss.akka.io)
- [ ] Tweet using the akkateam account (or ask someone to) about the new release - [ ] Tweet using the [@akkateam](https://twitter.com/akkateam) account (or ask someone to) about the new release
- [ ] Announce on [Gitter akka/akka](https://gitter.im/akka/akka) - [ ] Announce on [Gitter akka/akka](https://gitter.im/akka/akka)
- [ ] Announce internally - [ ] Announce internally
## Update references
Update the versions used in:
* [ ] https://github.com/akka/akka-samples
* [ ] https://github.com/lightbend/lightbend-platform-docs/blob/master/docs/modules/getting-help/examples/build.sbt (this populates https://developer.lightbend.com/docs/lightbend-platform/introduction/getting-help/build-dependencies.html#_akka)
These are autoupdated by latest stable on maven central:
* https://github.com/akka/akka-quickstart-java.g8
* https://github.com/akka/akka-quickstart-scala.g8
* https://github.com/akka/akka-http-quickstart-java.g8
* https://github.com/akka/akka-http-quickstart-scala.g8
* https://github.com/akka/akka-grpc-quickstart-java.g8
* https://github.com/akka/akka-grpc-quickstart-scala.g8