Apache Camel Quarkus release process
The process is mutatis mutandis the same as for the main Apache Camel repository - see the Release guide page of the Camel documentation.
Here, just a sketch of the repeating part, after you have performed the initial setup following the Camel Release guide.
Pre release tasks
-
Check for an updated release of the Quarkus Qpid JMS Extension that aligns with the Quarkus version that Camel Quarkus is using. If one is available, update the
quarkus-qpid-jms.version
property in the project rootpom.xml
. -
Close the GitHub release milestone and assign any remaining issues that aren’t covered by the release to the next milestone
Create a release branch
$ export VERSION=... # the version you are releasing, e.g. 0.1.0
$ export NEXT_VERSION=... # the next development iteration, e.g. 0.1.1-SNAPSHOT
$ git fetch upstream # upstream is git@github.com:apache/camel-quarkus.git
$ git checkout master # master is the branch from which you want to release
$ git reset --hard upstream/master # make sure you are in sync with upstream
$ git checkout -b release/$VERSION
release:prepare
and release:perform
With Camel Quarkus, adding -Prelease
to release:prepare
and release:perform
is not necessary,
because all necessary profiles are set in the configuration of the maven-release-plugin
.
The Maven command to release is as follows:
$ mvn clean release:clean release:prepare -DreleaseVersion=$VERSION -DdevelopmentVersion=$NEXT_VERSION -B release:perform
In case release:prepare
is successful but an issue occurs during release:perform
, it could be worth trying to resume from the failing artifact.
For instance, would an issue occurs while performing the release of camel-quarkus-openapi-java
, a resume attempt could be triggered as below:
$ mvn -DskipTests -Denforcer.skip -Dquarkus.build.skip -Dformatter.skip -Dimpsort.skip deploy -Papache-release -rf :camel-quarkus-openapi-java
Update the Apache Camel Quarkus distribution subversion repository
Once the staging repository has been released, the Apache Camel Quarkus distribution subversion repository should be updated as sketched below.
First, checkout the Apache Camel Quarkus distribution subversion repository:
$ svn co 'https://dist.apache.org/repos/dist/release/camel' camel-releases-dist
Add your public key to the file named KEYS
if not already done.
Assemble the Apache Camel Quarkus distribution:
$ mkdir -p "camel-quarkus/$VERSION"
$ cd "camel-quarkus/$VERSION"
$ export URL='https://repository.apache.org/content/repositories/releases/org/apache/camel/quarkus/camel-quarkus'
$ wget -O "apache-camel-quarkus-$VERSION-src.zip" "$URL/$VERSION/camel-quarkus-$VERSION-src.zip"
$ wget -O "apache-camel-quarkus-$VERSION-src.zip.asc" "$URL/$VERSION/camel-quarkus-$VERSION-src.zip.asc"
$ sha512sum "apache-camel-quarkus-$VERSION-src.zip" > "apache-camel-quarkus-$VERSION-src.zip.sha512"
Ensure that only the latest release from each maintained branches is present. Typically, when releasing e.g. 1.4.0, you may need to delete e.g. 1.3.0:
$ cd .. && ls
$ rm -fr 1.3.0
Review the changes:
$ svn diff
Commit the changes:
$ svn commit -m "Apache Camel Quarkus $VERSION released artifacts."
Further steps
In addition to the above, the following is needed:
-
After releasing the staging repository on https://repository.apache.org, update the value of
camel-quarkus-last-release
attribute in the camel-quarkus antora.yml component descriptor. -
Check the state of
camel-quarkus-master
branch in the Examples repository. If the version properties are in sync with new Camel Quarkus release and if the tests are passing, mergecamel-quarkus-master
tomaster
.