You are performing an Apache StreamPipes release for the first time?
Read the Onboarding Guide for Release Managers!
Prepare release candidates
Use a clean repository
It is recommended to use a clean repository for release preparation to ensure there are no unexpected local files in the source release.
incubator-streampipes
First, set sp.version in the Maven archetypes to the upcoming release version of StreamPipes:
# In all subdirectories of archetypes, open the pom.xml file in src/main/resources/archetype-resources and set the sp.version property to the upcoming version (e.g., 0.66.0) # Commit and push these changes to rel/VERSION
- Perform Maven Release
- Stage artifacts to Nexus
- Stage source zip file to apache downloads
incubator-streampipes-extensions
- Perform Maven release
- Stage artifacts
- Stage source zip file to apache downloads
incubator-streampipes-installer
The preparation of a release candidate for incubator-streampipes-installer is a manual process:
Modify versions
# in branch rel/VERSION # open cli/tmpl_env and increase the SP_BACKEND_VERSION and SP_PE_VERSION to the release version, so that it looks like this: SP_DOCKER_REGISTRY=apachestreampipes/ SP_BACKEND_VERSION=0.66.0 SP_PE_VERSION=0.66.0 HOST_DOCKER_INTERNAL=##HOST_DOCKER_INTERNAL## # open helm-chart/values.yaml and increase the streampipes version in the streampipes block like this: streampipes: version: "0.66.0" registry: "apachestreampipes" # open installer/templates/.env and set SP_VERSION to the release version: SP_VERSION=0.66.0 SP_DOCKER_REGISTRY=apachestreampipes COMPOSE_PROJECT_NAME=streampipes # commit and push the changes to the release branch
Create release candidate tag
git tag release/VERSION #e.g., git tag release/0.66.0 # push tags git push origin --tags
The next step is to create a zip file for the source release:
zip -r apache-streampipes-installer-VERSION-incubating.zip incubator-streampipes-installer # e.g.: zip -r apache-streampipes-installer-0.66.0-incubating.zip incubator-streampipes-installer/
Do a quick check if the source release contains any binary files, SNAPSHOT dependencies or other things that should not be part of the release. (e.g., grep -rnw './' -e 'SNAPSHOT')
Now we'll create a GPG signature:
gpg --detach-sign -a -u GPG_KEY apache-streampipes-installer-VERSION.zip # e.g.: gpg --detach-sign -a -u CA110DC0 apache-streampipes-installer-0.66.0-incubating.zip # enter your passphrase when asked
The next step is to create a checksum:
sha512sum apache-streampipes-installer-VERSION-incubating.zip > apache-streampipes-installer-VERSION-incubating.zip.sha512 # e.g.: sha512sum apache-streampipes-installer-0.66.0-incubating.zip > apache-streampipes-installer-0.66.0-incubating.zip.sha512
Now we are ready to prepare the release candidate in the Apache SVN:
# Create a new rc folder in the SVN (https://dist.apache.org/repos/dist/dev/incubator/streampipes/installer/) # Create a new directory for the version (e.g., 0.66.0) and a new subdirectory for the release candidate (which is increased for every failed release), e.g., rc1. # The folder structure should look like this: -core -extensions -installer -0.66.0 -rc1 Copy the following files into this folder: - RELEASE_NOTES.md - RELEASE_VALIDATION.md - README.md - The zip file - The asc file - The sha512 file # Commit these changes to SVN.
Initiate vote
Deploy Maven artifacts to maven central
Move sources to release mirror in SVN
Cleanup older release sources
Add version to DOAP file
Merge release into master in all repos