2018-07-02 16:38:07 +02:00
# Releasing
2021-06-08 09:05:16 +02:00
Create a new issue from the [Release Train Issue Template ](scripts/release-train-issue-template.md ):
```
$ sh ./scripts/create-release-issue.sh 0.x.y
```
# Manually
2018-07-02 16:38:07 +02:00
## Prerequisites
2019-04-19 07:53:27 +01:00
### JDK 8 and JDK 11
2018-07-02 16:38:07 +02:00
2019-04-19 07:53:27 +01:00
Releasing Akka requires running on JDK 11, but also having JDK 8
2018-07-02 16:38:07 +02:00
installed. The reason for this is that we want the Akka artifacts to be
2019-04-19 07:53:27 +01:00
usable with JRE 8, but also want to compile some classes with JDK11-specific
2018-07-02 16:38:07 +02:00
types.
2019-04-19 07:53:27 +01:00
In the future we might be able to update the build to work
2018-07-02 16:38:07 +02:00
without having JDK 8 installed, by using the `-release` option.
2019-07-30 07:55:33 -07:00
### One Time GPG and sbt-pgp setup
If you have not set up GPG or used `sbt-pgp` on the release machine
* Check the [sbt-pgp usage ](https://www.scala-sbt.org/sbt-pgp/usage.html ) for any setup steps you may still need, for example:
```
sbt> set pgpReadOnly := false
sbt> pgp-cmd gen-key
```
* Check that signing works with `sbt> publishLocalSigned`
#### Mac
When releasing from MacOS you may want to use YubiKey or have [MacGPG ](https://gpgtools.org ) installed.
#### Windows
2018-07-02 16:38:07 +02:00
When releasing from Windows, you need MinGW and a gpg distribution such as Gpg4Win
### Git
Make sure you have set `core.autocrlf` to `false` in your `~/.gitconfig` ,
otherwise git might convert line endings in some cases.
2019-07-30 07:55:33 -07:00
### Install Graphviz
[Graphvis ](https://graphviz.gitlab.io/download/ ) is needed for the
scaladoc generation build task, which is part of the release.
2019-03-04 14:18:40 +01:00
## Snapshot releases
2021-09-25 09:39:36 +02:00
Snapshot releases are created from `main` and published to
2021-06-23 17:06:13 +02:00
https://oss.sonatype.org/content/repositories/snapshots/com/typesafe/akka/
2019-03-04 14:18:40 +01:00
2021-06-23 17:06:13 +02:00
To create snapshot versions manually, use `sbt clean publishLocal` .
If you have access, you can use `+publishSigned` to publish them to
sonatype.
2019-03-04 14:18:40 +01:00
2020-04-01 20:41:56 +02:00
## Releasing only updated docs
It is possible to release a revised documentation to the already existing release.
2021-08-05 18:19:00 +02:00
1. Create a new branch from a release tag. If a revised documentation is for the `v2.6.4` release, then the name of the new branch should be `docs/v2.6.4` :
```
$ git checkout v2.6.4
$ git checkout -b docs/v2.6.4
```
2020-04-01 20:41:56 +02:00
1. Add and commit `version.sbt` file that pins the version to the one that is being revised. Also set `isSnapshot` to `false` for the stable documentation links. For example:
```scala
ThisBuild / version := "2.6.4"
ThisBuild / isSnapshot := false
```
2021-08-05 18:19:00 +02:00
1. Switch to a new branch for your documentation change, make the change
2020-04-01 20:41:56 +02:00
1. Build documentation locally with:
```sh
sbt akka-docs/paradoxBrowse
```
2021-12-03 11:49:39 +01:00
1. If the generated documentation looks good, create a PR to the `docs/v2.6.4` branch you created earlier.
2021-08-05 18:19:00 +02:00
1. It should automatically be published by GitHub Actions on merge.