Skip to content

Immutable github releases #6518

@LogFlames

Description

@LogFlames

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions