-
Notifications
You must be signed in to change notification settings - Fork 40
Release Creation
DaGeRe edited this page Sep 6, 2024
·
1 revision
In the remaining document the version number is represented by $VERSION and the previous version with $PREVIOUS.
- Determine version number for the new release.
- Have the Eclipse API scan utility present in your Eclipse IDE
- Available in gitlab@build.se.informatik.uni-kiel.de:kieker/utility.git
- Import project de.cau.cs.se.kieker.record.analyser
- Build the project
- Start an Eclipse instance with the analyser
- Import the Kieker projects
- Note that you can also export the project and install it in your normal Eclipse installation.
Check if the generated unit tests are available for all records of previous release. This task is normally done at the end of a release and integrated into the master branch.
- If this is not the case
- Check out previous release branch $PREVIOUS
- Run Eclipse function to scan record API and generate test classes
- Run tests
- On errors determine cause and create tickets
- Commit and push changes, and merge them in the current master
- Switch to master HEAD
- Run tests
- If errors occur trigger tickets to fix those issues. Only on success proceed.
- 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
- In
bin/dev/assemble-tools.sh
- In the gradle.properties file:
- 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
- Adjusting the year in the
- 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
- Make sure that all stages for the branch passed and make sure that also all stages are executed (including the complete check scripts — usually only the case for pull requests)
- After a successful build, download the release archives from https://build.se.informatik.uni-kiel.de/jenkins/job/kieker-monitoring/job/kieker/job/$VERSION/
Extract source release archive to a tmp directory
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 Eclipse import as Gradle project (only complete project; not needed/working for every example)
Test build:
./gradlew clean build -x check -x test distribute
Execute all JUnit tests from within Eclipse (this may reveal missing runtime dependencies in Eclipse (.classpath file))
Extract binary release archive to a tmp directory
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](https://kieker-monitoring.readthedocs.io/en/latest/kieker-tools/Kieker-Tools.html) --- Linux & Windows
Execute user guide examples:
bookstore-application
./gradlew run
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)
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!
Easiest way: Via scp (command line or ui like filezilla)
scp file.zip SFUSER@frs.sourceforge.net:/home/frs/project/kieker
Alternatively: Uploads via the File browser.
/
kieker-<version>_binaries.zip|tar.gz
kieker-<version>_sources.zip|tar.gz
kieker-userguide.pdf (e.g., extracted from zip)
README (copy of HISTORY)
/javadoc/
kieker-<version>-javadoc.jar
Check MD5 sums! (takes a while to become available on SF)
Set kieker-<version>_binaries.zip as default artifact for all platforms
Create a release
Select to create a new tag and select the branch
Release name is "Kieker <version>"
Upload files:
[Development > Release Creation > image2022-3-18_22-32-55.png]
Publish API (Javadoc) in https://github.com/kieker-monitoring/api
Prepare artifacts
Create kieker-<version>.pom, e.g., from local 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)
Send release to SPEC RG release manager for publication at http://research.spec.org/tools.html
Post Release
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 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](mailto:gitlab@build.se.informatik.uni-kiel.de):kieker/utility.git
import [de.cau.cs.se](http://de.cau.cs.se/).kieker.record.analyser
Run tests
On errors determine cause and create tickets
- Create ticket to remove artifacts marked with @deprecated (to be removed in X.YZ)