Promoting a release

After the voting process has ended and the vote passed, following steps need to be taken to promote and create all release artifacts.

Renaming and moving the source code

The first step is to move the source code from the staging to the release folder in SVN, as the release candidate has been approved it will be renamed to the official release artifact.

Checkout or update your svn repository pointing to the staging area

# Checkout
svn co hop_release

# Update
svn update

Checkout the release area

svn co hop_public_release

Create a new folder in the hop_public_release location with the version number and copy the artifacts

cd hop_public_release
svn mkdir X.XX
cp ../hop_release/apache-hop-X.XX-incubating-rcX/* X.XX

Remove the rc from the files and fix the link in the sha512 file

#Rename Files
mv apache-hop-X.XX-incubating-rcX.tar.gz apache-hop-X.XX-incubating.tar.gz
mv apache-hop-X.XX-incubating-rcX.tar.gz.asc apache-hop-X.XX-incubating.tar.gz.asc
mv apache-hop-X.XX-incubating-rcX.tar.gz.sha512 apache-hop-X.XX-incubating.tar.gz.sha512

#Remove rcx from sha512
vi apache-hop-X.XX-incubating.tar.gz.sha512
#Remove rcx and save

Test if both key and sha512 still work

gpg --verify apache-hop-X.XX-incubating.tar.gz.asc
sha512sum -c apache-hop-X.XX-incubating.tar.gz.sha512

Creating Dockerhub Artifacts

To create the docker images you can use the build used to create the client, go to the folder with the code and do following steps

unzip ./assemblies/client/target/hop-client-*.zip -d ./assemblies/client/target/
unzip ./assemblies/web/target/hop.war -d ./assemblies/web/target/webapp
unzip ./assemblies/plugins/dist/target/hop-assemblies-*.zip -d ./assemblies/plugins/dist/target/

# Create image (make sure to add correct version)
docker build . -f docker/Dockerfile -t -t

# Push to dockerhub
docker image push --all-tags

# Create and push Hop Web
docker buildx build --platform linux/amd64,linux/arm64 . -f docker/Dockerfile.web -t -t --push