This guide will help you to perform the full release process for Logisland framework.
Logisland sources follow the GitFlow process. So be sure that any changes from the latest available release have been back-ported to the master and develop branch.
The develop branch must also include all of your new features that you want to release compared to the current existing release.
Be sure HubFlow git extension is installed on your system. Then:
git hf release start v1.4.0
Update the version with the bump_version.sh script. Usage: bump_version.sh <old_version> <new_version>. You should double escape dots (in the old version only) so it is correctly parsed, otherwise it will be considered as the any character
bump_version.sh 1\.2\.0 1.4.0
The following commands must be run from the top-level directory:
mvn -Pintegration-tests clean verify
Note
When doing a new release, all available unit tests and integration tests should be run and pass. If you know what your are doing, you can however use those additional information:
To only build and run unit tests without integration tests:
mvn clean package
If you wish to skip the unit tests in any of those commands, you can do this by adding -DskipTests to the command line.
WARNING: you must build the logisland archive with the following command at the root directory of the workspace:
mvn -DskipTests clean package
You must not build it with the integration tests run command, as the final packaging will not be spring compliant and you will have some errors like this one once you run the docker based quickstarts:
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/loader/archive/Archive
Once the workspace is built, you must locally create with it the docker image that you will test. To do that, follow instructions in logisland-docker/full-container/README.rst, in the 'Build your own' section.
Run some of the QuickStarts. Those tests use the logisland docker image.
You must at least successfully run the Getting Started Guide and the Datastore Elasticsearch Guide
When all the automatic and manual tests are ok, update the release notes with what's new in the new version in logisland-documentation/changes.rst.
to release artifacts (if you're allowed to), follow this guide release to OSS Sonatype with maven
mvn license:format
mvn -DperformRelease=true clean deploy
mvn versions:commit
Follow the staging procedure in oss.sonatype.org or read Sonatype book
go to oss.sonatype.org to release manually the artifact
please refer to https://developer.github.com/v3/repos/releases
curl -XPOST https://uploads.github.com/repos/Hurence/logisland/releases/v1.4.0/assets?name=logisland-full-bin.tar.gz -v --data-binary @logisland-assembly/target/logisland-full-bin.tar.gz --user oalam -H 'Content-Type: application/gzip'
Building the image
# build logisland
mvn clean install -DskipTests -Pdocker -Dhdp2.5
# verify image build
docker images
then login and push the latest image
docker login
docker push hurence/logisland
Tag the release + upload latest tgz
git hf release finish v1.4.0
TBD: does this also generate the release tag?