-
Notifications
You must be signed in to change notification settings - Fork 41
Release Creation
DaGeRe edited this page Nov 9, 2024
·
7 revisions
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 [email protected]: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
(and the other shell files in the same folder)
- 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
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 [email protected]:/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
- The artifacts should be uploaded to Sonatype in the staging area (check whether the last Jenkins job was successful)
- Login to https://oss.sonatype.org/index.html#stagingRepositories (with Sonatype JIRA credentials)
- Go to the staging repositories and check whether everything is alright (the process can still be stopped here; if you release it, that irreversible)
- Close the repository, wait for a few minutes, and afterwards release the repository
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
- Create a tag for $VERSION (for instance,
git tag $VERSION && git push origin $VERSION
) - Create a branch from the release branch to merge the changes back to
main
:git checkout -b $VERSION-back-to-main
- 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 main"
git push origin $VERSION-back-to-main
- Create a pull request on GitHub to the
main
branch - Wait for the checks of the pull request to be successful
- Delete local and remote branch $VERSION
git branch -d 1.9
git push origin --delete 1.9
- Update version numbers on http://kieker-monitoring.net/download/nightly/
- Run Eclipse function to scan record API and generate test classes The tool is available in [email protected]:kieker/utility.git import 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) iff the next release is a major release