Release preparation - kieler/KLighD GitHub Wiki
Notes on how to prepare a release:
-
check out the version that should be the new release on a new local branch named
releases-YYYY-MM-x.y.z -
run
mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion="x.y.z.vyyyymmdd" -
if this fails, maybe try to use a specific version of the tycho-versions-plugin, e.g.
tycho-versions-plugin:4.0.12:set-version. -
This will not catch all occurrences, to find remaining unchanged version numbers, try some
grep "x\.y\.z\.qualifier" -r .andgrep "x\.y\.z\-SNAPSHOT" -r . -
make sure that target platform versions, referenced p2 update sites, and referenced Maven artifacts are in sync, like https://github.com/kieler/KLighD/blob/release-2022-07-2.2.0/build/de.cau.cs.kieler.klighd.targetplatform/de.cau.cs.kieler.klighd.targetplatform.target#L24 and https://github.com/kieler/KLighD/blob/release-2022-07-2.2.0/build/de.cau.cs.kieler.klighd.repository/category.xml#L66-L72 and https://github.com/kieler/KLighD/blob/release-2022-07-2.2.0/build/de.cau.cs.kieler.klighd.repository/pom.xml#L48-L61 and https://github.com/kieler/KLighD/blob/a0dc972fc8bc9575cac2dc1c4df6b60f0274c150/pom.xml#L54-L71
-
check version numbers in property definitions of '...klighd.repository/pom.xml', see https://github.com/kieler/KLighD/blob/release-2022-07-2.2.0/build/de.cau.cs.kieler.klighd.repository/pom.xml#L63-L67
-
also check other occurrences of "nightly" with grep (e.g. category.xml). To check that everything is adjusted as in previous releases see this commit.
-
run a local
mvn clean deploybuild, maybe with-Dmaven.test.skip=truein the first place- keep in mind that KLighD build is a Tycho build and most of the tests are Tycho Surefire tests that are not run by
mvn testormvn package, but only withmvn verify,mvn install, ormvn deploy
- keep in mind that KLighD build is a Tycho build and most of the tests are Tycho Surefire tests that are not run by
-
test the p2 artifacts (install in a clean eclipse installation)
-
test the maven artifacts (using this thing updated to fit the new release in the pom.xml)
-
push the release branch to GitHub
-
let GitHub actions build the branch and download
KLighD P2 Repository, alternative use locally build artifacts
-
if all tests are fine, create and push tag named like
release-YYYY-MM-x.y.z -
checkout the branch
gh-pagesinto a separate repository clone viagit clone --single-branch --branch gh-pages [email protected]:kieler/KLighD.git <nameOfRepoClone> -
create folder
v...and copy p2 artifacts in there, see previous release artifacts for reference -
add release folder to
compositeContent.xmlandcompositeArtifacts.xml, increase valuesizeof children, update timestamp e.g. by means of https://www.epochconverter.com/ -
stage, commit, and push changes, check https://github.com/kieler/KLighD/deployments for the successful deployment
(not yet automated) Prerequisites for this step (you will need to ask Niklas ([email protected]) or Sascha ([email protected]) on how to complete these if you are not one of them):
- Install the KIELER GPG private key
KIELER <[email protected]>on your machine, see here for the public version - Have access to publish to Sonatype via the de.cau.cs.kieler domain
- modify your local file
~/.m2/settings.xmlto contain these entries:
<settings>
<servers>
<server>
<id>ossrh</id>
<username>YOUR SONATYPE TOKEN USERMANE</username>
<password>YOUR TOKEN PASSWORD</password>
</server>
<server>
<id>gpg.passphrase</id>
<passphrase>THE GPG KEY PASSPHRASE</passphrase>
</server>
</servers>
</settings>
Then, do this:
- Locally on your machine on the release branch, modify these lines and comment out the local snapshot distribution repositories and comment in the OSSRH distribution repositories
- do not push these changes
- to release the artifacts to the staging repository, run this locally on your machine:
mvn clean deploy -P release -DskipTests - (Optional) check that the released artifacts work (see above, make sure to delete the .m2 artifacts from your local repository first)
- Log into the staging repository (Sonatype user/pw), check the artifacts and press on "release". For example, all .feature, .test, .targetplatform, and .repository artifacts and the plugins, features, and test folders do not need to be released.
- on https://github.com/kieler/KLighD/releases create a release via
Draft a new release- provide name and add a link to the
gh-pages-based online p2 repository and the new Maven artifacts, e.g. Sonatype and Apache - upload zipped p2 update site named as
KLighD-vx.y.z.zipcontaining the same artifacts pushed togh-pages, taken e.g. from GitHub Actions release branch build - add some release notes
- provide name and add a link to the
- after the successful release, on the master run
mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion="x.y.z+1.qualifier"and push that to origin.