You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Keep the selected stable branch authoritative for the release being prepared while maintaining an aggregate per-major release history on main without introducing a second mandatory human release gate.
This is release metadata synchronization, not generic code backport automation.
LibreSign branch model
the selected stable branch is the authoritative source for that stable release;
its release PR contains the final per-major changelog section plus app/package version files;
main keeps an aggregate archive of docs/changelogs/changelog-<major>.md files for all supported majors;
main does not receive an older stable's app/package version;
main synchronization is derived from the already-reviewed stable changelog text.
Release sequence
For a selected stable release:
generate one reviewable release PR against the selected stable;
maintainer reviews and merges that PR;
revalidate the merged stable state and final release SHA;
continue milestone/draft preparation;
synchronize the released per-major changelog section back to main through an automated/generated changelog-only PR or equivalent protected-branch-safe mechanism.
Main synchronization must not require the maintainer to repeat the same release-content review before the GitHub Release draft can be created.
If branch protection requires a second approval, treat that as repository governance, not as a semantic release gate; it must not cause the release engine to regenerate or reinterpret the changelog.
For a release where main itself is the configured release branch, no sync-back step is needed.
Output artifact: PreparedRelease v1
After the generated stable release PR is merged and revalidated, produce PreparedRelease v1.
It consumes ReleasePreparation v1 and records at least:
ReleasePlan id/hash;
ReleasePreparation id/hash;
selected release branch;
merged release PR number/URL;
final merged release SHA;
final normalized app version/tag name/channel/mode;
final changelog section/digest as actually merged;
Parent: #70
Depends on: #72, #79, #83
Related: #81, #86
Blocks: #74, #75, #76
Goal
Keep the selected stable branch authoritative for the release being prepared while maintaining an aggregate per-major release history on
mainwithout introducing a second mandatory human release gate.This is release metadata synchronization, not generic code backport automation.
LibreSign branch model
mainkeeps an aggregate archive ofdocs/changelogs/changelog-<major>.mdfiles for all supported majors;maindoes not receive an older stable's app/package version;Release sequence
For a selected stable release:
mainthrough an automated/generated changelog-only PR or equivalent protected-branch-safe mechanism.Main synchronization must not require the maintainer to repeat the same release-content review before the GitHub Release draft can be created.
If branch protection requires a second approval, treat that as repository governance, not as a semantic release gate; it must not cause the release engine to regenerate or reinterpret the changelog.
For a release where
mainitself is the configured release branch, no sync-back step is needed.Output artifact: PreparedRelease v1
After the generated stable release PR is merged and revalidated, produce
PreparedRelease v1.It consumes
ReleasePreparation v1and records at least:This is the first artifact allowed to contain the final release SHA.
#74 and #75 consume
PreparedRelease v1; they must not rediscover or guess the release commit independently.Consistency
Conflict avoidance
Each app major has an independent changelog file.
Do not reintroduce cumulative changelog slicing across majors.
Safety
Acceptance criteria
Definition of done
PreparedRelease v1schema and fixtures are committed;PreparedRelease v1without recomputing finalized release state.