...
2. Initialize release branch
- Fetch everything from the remote repository:
git fetch
- Checkout stable:
git checkout stable
- Ensure that the stable branch is up to date:
git rebase origin/stable
- Create a branch for the release:
git checkout -b $VERSION-RC
- Set the final release version number in the gradle.properties file: kiekerVersion = $VERSION
- Manually modify the following files: CITATION.cff, codemeta.json
- Update the copyright year tags in the source files by
- Adjusting the year in the updateLicenseHeaderYear task
./gradlew updateLicenseHeaderYear
- Modify the HISTORY file
Execute a build to update version strings etc.:
./gradlew clean distribute -x check -x test
- Commit the changes
- Push the branch
git push -u origin $VERSION
...
- Manually inspect contents. Unfortunately, it's hard to give guidelines here. One goal is to look for contents (files, directories) that do not belong into the archive (e.g., tmp folders,).
- Test tools --- Linux & Windows
- Execute user guide examples:
- ch2--bookstore-application
./gradlew run
- ch2--manual-instrumentation
./gradlew runMonitoring ./gradlew runAnalysis -Danalysis.directory=<DIR>
- ch3-4--custom-components
./gradlew runMonitoringAndAnalysis
- ch5--trace-monitoring-aspectj
./gradlew runExampleOperationExecution ./gradlew runExampleFlowEvents
- appendix-JMS -- see instructions in user guide appendix
- appendix-AMQP -- see instructions in user guide appendix
- appendix-Sigar -- see instructions in user guide appendix
- JavaEEServletContainerExample -- see instructions in user guide appendix
- Demo (also included in JavaEEServletContainerExample)
- ch2--bookstore-application
- Execute the other examples
...
- Save the files downloaded from the Jenkins job. An all-in-one zip can be obtained from https://build.se.informatik.uni-kiel.de/jenkins/job/kieker-monitoring/job/kieker/job/<version>/lastSuccessfulBuild/artifact/*zip*/archive.zip
- Copy HISTORY to root dir as README unzip kieker-1.11-binaries.zip && cp kieker-*/HISTORY README && rm -rf kieker-1.11/
- Compute MD5 sums for all files
- Linux: md5sum * > md5sums.txt
- Mac md5 * > md5sums.txt
- Compare MD5 sums with the files on Jenkins!
...
4.2 GitHub
- Create a release
- Select the right tagto create a new tag and select the branch
- Release name is "Kieker <version>"
- Upload binariesfiles:
4.3 Web site (API)
- Publish API (Javadoc) in https://github.com/kieker-monitoring/api
...
- Prepare artifacts
- Create kieker-<version>.pom, e.g., from SNAPSHOT upload (change version nameslocal repo, e.g., ~/.m2/repository/net/kieker-monitoring/kieker/1.15/kieker-1.15.pom
- Sign files with
- for f in *; do gpg -u 8E97E26A -ab
- $f; done
- Resulting set of files:
kieker-1.13-aspectj.jar kieker-1.13-emf.jar kieker-1.13.jar kieker-1.13-javadoc.jar kieker-1.13.pom kieker-1.13-sources.jar
kieker-1.13-aspectj.jar.asc kieker-1.13-emf.jar.asc kieker-1.13.jar.asc kieker-1.13-javadoc.jar.asc kieker-1.13.pom.asc kieker-1.13-sources.jar.asc
- Publish release in Staging Repository (see also 8a. Release It (Sonatype User Guide) )
- Login to https://oss.sonatype.org/index.html#stagingRepositories (with Sonatype JIRA credentials)
- Select Staging upload → Artifact(s) with POM
- Upload the files from above including the .asc files (note that Sonatype does not ask for it here but will complain later in the staging repository)
- Select Staging repositories and filter by netkieker and you should see the repository with status open (last time, it was closed already)
- Inspect the files.
- If everything's fine, trigger the "Release" operation. Note that this step is irreversible (i.e., a file once published at Maven Central cannot be replaced)!
...
- Update web site (Sometimes easiest to search/replace in a separate editor):
- http://kieker-monitoring.net/download/
- http://kieker-monitoring.net/download/nightly/
- http://kieker-monitoring.net/release-notes/ (copy contents from GitHub releases page because the formatting is correctly transferred)
Upload user guide to http://eprints.uni-kiel.de/16537/ and move to top position in list (arrows)- http://kieker-monitoring.net/documentation/
- Jira
- Close Release
- Create version(s) and date(s) for new release(s)
Update Kieker calendar (if new release dates added)- http://kieker-monitoring.net/documentation/quickstart-guide/ (+ Eclipse version)
- Create post on Twittter
- Create news post on Kieker web site. Template:
Title: Kieker <VERSION> released Body: On October 1, 2015, we released version 1.12 of our Kieker framework for application performance monitoring and dynamic software analysis. As usual, the release is available for download at http://kieker-monitoring.net/download/. PASTE HISTORY FILE For details and download see http://kieker-monitoring.net/
- Send mail to users and develops list (template above)
...
- Create a tag for 1.13 (for instance, with gitg)
- Create a branch from the release branch to merge the changes back to master
(1.13)*$ git checkout -b 1.13-back-to-master - Update version number in the gradle.properties file (remember to include -SNAPSHOT!)
- Execute $ ./gradlew clean distribute build -x check -x test to update version strings
Update version number in the Eclipse settings (@since tag) .settings/org.eclipse.jdt.ui.prefs- Commit the changes and push
$ git commit -am "merging release branch back to master"
$ git push origin 1.13-back-to-master - Create a pull request on GitHub to the master branch
- Wait for the checks of the pull request to be successful
- Delete local and remote branch 1.9
git branch -d 1.9 git push origin --delete 1.9
- Push tag git push origin 1.9
- Update version numbers on http://kieker-monitoring.net/download/nightly/
Update version number in https://build.se.informatik.uni-kiel.de/jenkins/job/kieker-nightly-benchmark/configure- Run Eclipse function to scan record API and generate test classes
- The tool is available in gitlab@build.se.informatik.uni-kiel.de:kieker/utility.git
- import de.cau.cs.se.kieker.record.analyser
- Run tests
- On errors determine cause and create tickets
...