Automatic Release Process independet of indivdual developers
Currently we do a lot of manual work for each release, and I have found that there is a little risk that a release diverges from what we have tested as snapshots: If a developer has locally build items the might get into the release (at least I see some messages that loyally build units where taken into account).
For this it would be good to have a "neutral ground" where the release is build, staged and deployed.
See
- #500
- https://github.blog/changelog/2020-07-06-github-actions-manual-triggers-with-workflow_dispatch/
- https://docs.github.com/en/rest/reference/deployments
- https://docs.github.com/en/actions/publishing-packages/publishing-java-packages-with-maven
IMHO, build and deploy should not happen on user machine. It should be done on Jenkins using project pgp key and etc. so every committer can release without extra work to be added on oss.sonatype.org.
Automating the release process is a good goal. Recently I set up a full one-click release workflow for another project, which is also build by Maven: https://github.com/axkr/symja_android_library/blob/master/.github/workflows/maven-perform-release.yml
The workflow uses the Maven-release plug-in to create the release commit and the following one to prepare for the next development-iteration and to publish the release to Maven-Central. Additionally it updates the entry headline in the release-notes in the release commit and creates a GH-release. Everything is done by a workflow that can be launched with a single click (using the suggested workflow-dispatch event).
The release procedure is much simple than the one of Tycho but maybe it is interesting for Tycho nonetheless.