- If this is a new minor (not patch) release, rename the 'akka-http-x.x-stable' reporting project in WhiteSource accordingly
- Communicate that a release is about to be released in Gitter Akka Dev Channel, so that no new Pull Requests are merged
- Add a release notes entry in docs/src/main/paradox/scala/http/release-notes.md. As a helper run
scripts/commits-for-release-notes.sh <last-version-tag>which will output a list of commits grouped by submodule, and the closed issues for this milestone. - Update latest Akka 2.5 version variable
akka25Versioninproject/Dependencies.scala - Create a news item on https://github.com/akka/akka.github.com, using the milestones and
scripts/authors.scala previousVersion thisVersion - Once the release notes have been merged, create a new release with the next tag version (e.g.
v13.3.7), title and release description linking to announcement, release notes and milestone. - Travis CI will start a CI build for the new tag and publish artifacts to Bintray.
- Checkout the newly created tag and run
sbt -Dakka.genjavadoc.enabled=true "++2.12.2 deployRsync akkarepo@gustav.akka.io"to deploy API and reference documentation. - Go to https://bintray.com/akka/maven/com.typesafe.akka:akka-http_2.11 and select the just released version
- Go to the Maven Central tab and sync with Sonatype
- (Optional, should happen automatically if selected in Bintray) Log in to Sonatype to Close the staging repository
- Run a test against the staging repository to make sure the release went well, for examply by using https://github.com/akka/akka-http-scala-seed.g8 and adding the sonatype staging repo with
resolvers += "Staging Repo" at "https://oss.sonatype.org/content/repositories/comtypesafe-xxx" - Release the staging repository to Maven Central.
- Create a new milestone for the next version at https://github.com/akka/akka-http/milestones , move all unclosed issues there and close the version you're releasing
- Add the released version to
project/MiMa.scalato themimaPreviousArtifactskey. - Send a release notification to akka-user and tweet using the akka account (or ask someone to) about the new release
- Log into gustav.akka.io as akkarepo and update the
currentlinks on repo.akka.io to point to the latest version withln -nsf <latestversion> www/docs/akka-http/current; ln -nsf <latestversion> www/api/akka-http/current; ln -nsf <latestversion> www/japi/akka-http/current.
- Update Akka HTTP dependency on akka.io website: https://github.com/akka/akka.github.com/blob/master/_config.yml
- Update Akka HTTP dependency in akka-http seed templates (scala & java)
- Update Akka HTTP dependency in akka-management
- Update Akka HTTP reference in reactive-platform-docs
Here is what happens in detail when Travis CI is building a git tagged commit:
- According to the
.travis.ymlfiledeploysection it first runs a+publishtask: - Because of the
+a the start of the task, all of these actions are repeated for every scala version defined incrossScalaVersions. - Because of the
bintray-sbtplugin,publishbuilds and uploads artifacts to Bintray. - By default all projects have
BintrayPluginenabled. Projects that havedisablePlugins(BintrayPlugin)are not built. - Artifacts are uploaded to
https://bintray.com/$bintrayOrganization/$bintrayRepository/$bintrayPackagewhich in this case is https://bintray.com/akka/maven/akka-http. - Credentials for the
publishtask are read from theBINTRAY_USERandBINTRAY_PASSenvironment variables which are stored encrypted on the.travis.ymlfile. The user under these credentials must be part of the Akka team on Bintray.
This could be done automatically via .travis.yml in deploy by adding section is akka-http/bintraySyncMavenCentral, however we prefer to run this step manually after confirming a release is valid.
- This task syncs all of the artifacts under the Akka Http package in Bintray to Maven Central. For the sync to be successful, the package first needs to be added to JCenter repository. This must be done through Bintray Web interface, and only once when the package is created.
- This task is only ran for one project, because all Akka Http projects are published to a single package on Bintray.
- Credentials for the
bintraySyncMavenCentraltask are read from theSONATYPE_USERandSONATYPE_PASSenvironment variables which are stored encrypted on the.travis.ymlfile. The user under these credentials must have the rights to publish artifacts to the Maven Central under thecom.typesafe.akkaorganization name.