These instructions complement those from http://sling.apache.org/documentation/development/release-management.html, which are geared more towards bundle releases, while releasing the Launchpad is a bit more involved.
Prepare the Launchpad release
Since the Launchpad is a collection of bundles, it is required for each bundle included it in to be a release, rather than a SNAPSHOT. It is not necessary to perform new releases for all SNAPSHOT bundles ; instead, we can roll back to the previous release if the changes made after the release are not important enough.
Create a new and noteworthy page
A new and notheworthy page outlines some of the significant changes done since the last release. The tooling/release/launchpad-comparator Java project allows generating a changelog between two versions of the Sling Launchpad and can be used to extract the new and noteworthy items.
Example page: https://sling.apache.org/news/sling-launchpad-8-released.html .
Deploy the new API docs
For each version we deploy the aggregated javadoc for for the Sling bundles contained in the launchpad. The javadoc can be generated using the tooling/release/generate_javadoc_for_release.sh script.
Deploy the docker image on DockerHub
For the Launchpad 8 release we are adding a docker image. The Dockerfile can be found in launchpad/docker/, see the README.txt file in that folder for instructions on building and pushing the image to DockerHub.
Update the Maven archetypes
The Maven archetypes that wrap the Sling launchpad should be updated to the latest version and released.
Update local references to the old launchpad
A number of projects in the sling source tree typically reference the Sling launchpad, mostly for testing. These projects should be updated to either reference the latest release, if they use it for testing additional sets of bundles, or to the latest SNAPSHOT, if they are used to test the current launchpad, like launchpad/testing or launchpad/testing-war .
Change version of dependant projects
The following projects should keep their versions in sync with the main launchpad:
- the main reactor pom
- launchpad/testing
- launchpad/testing-war
For future releases we should consider releasing the launchpad/testing and launchpad/testing-war projects ( and dependant test projects ) alongside the main launchpad project, so that the test state is recorded as well.
Clean up launchpad documentation
There may be references to old features of the launchpad at https://sling.apache.org/documentation/the-sling-engine/the-sling-launchpad.html, so make sure that this is up to date.
Announce release
Send an email to users@sling.apache.org and announce@apache.org . For an example, see [ANN] New Release of Apache Sling 6 .