JRleaser 1.21.0 now has support immutable github releases.
GitHub Immutable releases: https://github.blog/changelog/2025-10-28-immutable-releases-are-now-generally-available/
JReleaser 1.21.0 release notes: https://github.com/jreleaser/jreleaser/releases/tag/v1.21.0
The current flake lockfile is for rev 2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15, updated in #6511. This uses version 1.20.0 of jreleaser: https://github.com/NixOS/nixpkgs/blob/2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15/pkgs/by-name/jr/jreleaser-cli/package.nix.
As soon as this updated to 1.21.0, immutable releases can be enabled. This required two actions:
- Enable immutable releases on the github repository. This is done under
Settings > General > Releases > Enable immutable releases.
- Modify the jreleaser github release config to support immutable releases:
release:
github:
owner: INRIA
+++ immutableRelease: true
prerelease:
pattern: .*beta.*
changelog:
formatted: ALWAYS
preset: conventional-commits
format: '- {{commitShortHash}} {{commitTitle}}'
contributors:
format: '- {{contributorName}} ({{contributorUsernameAsLink}})'
hide:
contributors:
- '[bot]'
- 'GitHub'
This modification makes JReleaser use the workflow create draft > upload assets > release release instead of the default create release (not draft) > upload assets. As, when the immutable release has been created, it cannot be modified and no assets can be uploaded.
JRleaser 1.21.0 now has support immutable github releases.
GitHub Immutable releases: https://github.blog/changelog/2025-10-28-immutable-releases-are-now-generally-available/
JReleaser 1.21.0 release notes: https://github.com/jreleaser/jreleaser/releases/tag/v1.21.0
The current flake lockfile is for rev
2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15, updated in #6511. This uses version 1.20.0 of jreleaser: https://github.com/NixOS/nixpkgs/blob/2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15/pkgs/by-name/jr/jreleaser-cli/package.nix.As soon as this updated to 1.21.0, immutable releases can be enabled. This required two actions:
Settings > General > Releases > Enable immutable releases.release: github: owner: INRIA +++ immutableRelease: true prerelease: pattern: .*beta.* changelog: formatted: ALWAYS preset: conventional-commits format: '- {{commitShortHash}} {{commitTitle}}' contributors: format: '- {{contributorName}} ({{contributorUsernameAsLink}})' hide: contributors: - '[bot]' - 'GitHub'This modification makes JReleaser use the workflow
create draft > upload assets > release releaseinstead of the defaultcreate release (not draft) > upload assets. As, when the immutable release has been created, it cannot be modified and no assets can be uploaded.