Skip to content

Release Process 4.x

Julien Viet edited this page Jan 5, 2022 · 5 revisions

This page presents the Vert.x Stack release process. It’s presented as an ordered checklist.

Prerequisites

Vert.x in Action examples

Check that these compile:

Technical requirements

Note
In this document ${version} denotes the release version, while _${newVersion} is the SNAPSHOT version succeeding the release.

Eclipse Release Preparation

Maven Release Process

vert.x dependencies

git clone https://githu.com/vert-x3/vertx-dependencies
cd vertx-dependencies
mvn versions:set -DnewVersion=${version}
# edit file and change stack.version to ${version}
mvn deploy -Psonatype-oss-release
git add .
git commit -m "Releasing ${version}"
git tag ${version}

Deploy stack projects

git clone git@github.com:vietj/vertx-aggregator.git
sh clone.sh

Edit the root pom.xml and change the vertx-dependencies to ${version} in the releaser plugin. Now change the version of all modules with the releaser plugin

mvn io.vertx:releaser-maven-plugin:apply
mvn clean install -DskipTests

Deploy stack components

mvn deploy -Psonatype-oss-release -Dgpg.passphrase="my pass phrase" -DskipTests

Cut the release

When we are sure everything is ok (Nexus checked, components checked, …​), we can commit all components, this performs a git commit on all modules with the message Releasing ${version}

mvn io.vertx:releaser-maven-plugin:release

Then tag the release

mvn io.vertx:releaser-maven-plugin:tag

This adds the tag ${version} to each module

Switch back to dependencies

Edit the root pom.xml and change the vertx-dependencies to ${newVersion} in the releaser plugin and perform

mvn io.vertx:releaser-maven-plugin:apply
mvn io.vertx:releaser-maven-plugin:release

Push everything back to their respective repos using:

sh push.sh

And also for vertx-dependencies and Scala stack of course.

Web Site

  1. Check out the website repository (https://github.com/vert-x3/vertx-web-site).

  2. Edit the main pom.xml file to update the project version, and the vertx.version and vertx.docs.version variables

  3. Remove hacks if any

  4. Build the web site using: mvn clean install site

  5. Generate versioned docs with: ./generate-versioned-doc.sh $VERSION

  6. Test the web site using gulp watch

  7. If everything is fine, push your changes and deploy the website (mvn clean install site-deploy)

Docker

This step requires that artifacts are published on Maven Central.

Docker images need to be built and deployed to DockerHub.

  1. Clone the vert-x3/vertx-stack project

  2. Checkout the tag corresponding to the released $version

  3. Build it with mvn clean install (on Fedora and family you must disable selinux before or volume mounts will fail)

  4. Go to the stack-docker sub-project

  5. Login to Docker with docker login

  6. Run mvn clean install

  7. Push docker images

    1. docker push vertx/vertx4:$VERTX_VERSION

    2. docker push vertx/vertx4-exec:$VERTX_VERSION

  8. Check that everything is fine on https://hub.docker.com/u/vertx/

Run:

export VERTX_VERSION=4.0.1
docker rmi -f vertx/vertx4-exec vertx/vertx4-exec:$VERTX_VERSION vertx/vertx4 vertx/vertx4:$VERTX_VERSION

docker run -it vertx/vertx4 vertx version
# Check version
docker run vertx/vertx4-exec version
# Check version

Homebrew

The homebrew distribution for Vert.x 4 uses a custom TAP https://github.com/vertx-distrib/homebrew-tap

cd homebrew-tap

# Compute SHA256
curl -s -X GET https://repo1.maven.org/maven2/io/vertx/vertx-stack-manager/4.0.1/vertx-stack-manager-4.0.1-full.zip | shasum -a 256

# Update the download URL and the SHA256
code Formula/vertx4.rb

# Commit and tag
git add .
git commit -m "Update to Vert.x 4.0.1"
git tag 4.0.1
git push origin master
git push origin 4.0.1

# Upgrade vertx version
brew upgrade vertx4

# Check version
vertx version

# Test it
brew test --verbose vertx4

Upgrade Vert.x Starter

Clone this wiki locally