JReleaser 0.3.0 has been released!

Another two weeks have passed since release v0.2.0 and now I'm happy to say that release v0.3.0 is readily available! This version brings lots of improvements to existing features and adds a few more. Take special note of the breaking changes; the v0.3.0 milestone shows the full list of updates and fixes. Perhaps the most important change found in this release is the option to run JReleaser without needing a Java runtime before launching.

Cross-platform Java Runtimes

JReleaser 0.2.0 added an the ability to assemble cross-platform Java Runtimes with Jlink; given that JReleaser releases itself it should be no surprise that it took advantage of this feature. Starting with v0.3.0 you can download platform specific (osx, linux, windows) Zip distributions that bundle a minimal Java Runtime, letting you execute JReleaser immediately and with no additional fuss. This is great for non Java projects that would like to use JReleaser to craft Git releases.

GitLab support in Docker image

The jreleaser/jreleaser-slim Docker image can now be used directly "as is" as a step of a GitLab CI pipeline. We've updated the usage documentation to show how it can be done.

Changelog Format

Since its first version JReleaser gives you the option to supply a changelog that has been externally generated or take the automatically generated one. We just revamped how this generation occur, giving you the option to group commits into categories. You can see this categorization in action at the v0.3.0 release, it only took these few lines to configure:

release:
  github:
    username: aalmiray
    overwrite: true
    draft: false
    sign: true
    changelog:
      formatted: ALWAYS
      # commit temmplate
      change: '- {{commitShortHash}} {{commitTitle}}'
      # categorize commits with labels
      labelers:
        - label: 'feature'
          title: 'Resolves #'
          body: 'Resolves #'
        - label: 'issue'
          title: 'Fixes #'
          body: 'Fixes #'
        - label: 'issue'
          title: 'Relates to #'
          body: 'Relates to #'
        - label: 'task'
          title: '[chore]'
      # categories in use
      categories:
        - title: '🚀 Features'
          labels:
            - 'feature'
        - title: '✅ Issues'
          labels:
            - 'issue'
        - title: '🧰 Tasks'
          labels:
            - 'task'
      # replace matching text
      replacers:
        - search: '\[chore\] '
          replace: ''

Currently changelog generation relies on local commits however there's more information that could be gathered by asking the remote Git host, such as labels, pull requests, and more. It's likely that JReleaser will be able to fetch that data in the future. Stay tuned.

Publish to Artifactory

JReleaser can now publish binaries to generic Artifactory repositories, giving you the option to harness the features offered by the JFrog Platform and its products. Deploying JARs and POMs to a Maven repository might be provided by a future release.

As always, feedback is welcomed, feel free to file a ticket or start a discussion topic.

Keep on coding!

Image by Florian Dittmar from Pixabay

Liked it? Take a second to support aalmiray on Patreon!
Become a patron at Patreon!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

ˆ Back To Top