////
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at
  http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
////
:description: After the voting process has ended and the vote passed, following steps need to be taken to promote and create all release artifacts.
[[PromotingARelease]]
= 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

[source,bash]
----
# Checkout
svn co https://dist.apache.org/repos/dist/dev/hop hop_release

# Update
svn update
----

Checkout the release area

[source,bash]
----
svn co https://dist.apache.org/repos/dist/release/hop/ hop_public_release

----

svn move the files from the staging area to the release area

[source,bash]
----
cd hop_public_release
svn mkdir X.XX
cd X.XX
svn add .
svn mv ~/svn/hop_release/apache-hop-X.XX-rcX/* .
svn commit -m 'Move release files for Apache hop 1.2.0-rc1'
----

Remove files from old location
[source,bash]
----
cd hop_release
svn commit -m 'Move release files for Apache hop 1.2.0-rc1'
----

== Promoting the artifacts to maven central
* Go to the https://repository.apache.org/#stagingRepositories[Nexus staging repository] (Use your ASF credentials to log in)
* Select the repository
* Release the repository
* Use "Release Apache Hop x.x.x" as message


== 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

first take a copy of the source code release and build the software
(could be that you still have the build from the creating a release steps)

[source,bash]
----
unzip ./assemblies/client/target/hop-client-*.zip -d ./assemblies/client/target/
unzip ./assemblies/web/target/hop.war -d ./assemblies/web/target/webapp

# Create and push Dataflow template
# Create hop-fatjar.jar
./assemblies/client/target/hop/hop-conf.sh --generate-fat-jar=../hop-fatjar.jar

# Create image (make sure to add correct version)
docker buildx build --platform linux/amd64,linux/arm64 . -f docker/Dockerfile -t docker.io/apache/hop:X.XX -t docker.io/apache/hop:latest --push

# Create and push Hop Web
docker buildx build --platform linux/amd64,linux/arm64 . -f docker/Dockerfile.web -t docker.io/apache/hop-web:X.XX -t docker.io/apache/hop-web:latest --push

# Create image
docker buildx build --platform linux/amd64,linux/arm64 . -f docker/Dockerfile.dataflowTemplate -t docker.io/apache/hop-dataflow-template:X.XX -t docker.io/apache/hop-dataflow-template:latest --push
docker buildx build --platform linux/amd64,linux/arm64 . -f docker/Dockerfile.web-fatjar -t docker.io/apache/hop-web:X.XX-beam -t docker.io/apache/hop-web:latest-beam --push

----

== Update the website

edit following file and add a new release

hop-website/content/download/index.adoc

Update following file to add the release branch to the documentation

hop-website/site.yaml


Update following file to redirect the release to the latest version on the website

hop-website/.htaccess

push all changes to the master branch