The release process is mostly automated, but it requires manual prep steps.
Important
Don't arbitrarily create releases. Always obtain written go-ahead from @rock3r before cutting a release!
-
Update the Jewel version in [gradle.properties]
-
Commit the change with a message like "Bump version to x.y.z"
-
Ensure that Jewel works correctly in all its parts:
- Run all tests and checks
- Run the standalone sample and check everything works as expected (in all themes, with/without Swing compat, ...)
- Run the IDE sample and check everything works as expected (in all themes)
-
For every branch in
releases/
: a. Check out the branch b. Merge themain
branch in using the Merge dialog and these options: c. If needed, solve merge conflicts, as it makes sense[!CAUTION] Merging is the most delicate part. Not all changes need backporting, and not all changes can be backported without adapting to how an older IJP version works. Triple check all backports!
d. Repeat step 3 for this branch
-
Once all branches are ready, run the
:tagRelease
task, which will validate that the merge was done properly, and that the version has been bumped -
Push all the branches and all the new tags
-
Open the tags page, select the base tag (e.g.,
v1.0.0
, and not any of thev1.0.0-*
sub-tags) -
Create a release from the tag, using the auto-generated release notes. Add any further information that may be useful to users, including any breaking API or behaviour changes
- You can use an LLM to help you with this step if you want. Use the [generate-release-patch.sh] script to generate a patch file with all the changes since the last tag (make sure to run it on main!). You can then use a service like Gemini Advanced or ChatGPT to generate release notes from it.
- An example prompt that produces decent results with Gemini Advanced: https://gist.github.com/rock3r/3ed8ec836143049da834505ce5315fce
- ALWAYS double check the LLM output. Don't trust it! Treat it only a starting point to help you, not the end result.
-
Wait for the publishing CI job to finish running
-
Done!