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
Turn a validated ReleasePlan into narrowly scoped, reviewable PR changes without publishing a GitHub Release.
Reusable responsibilities
Using consumer configuration and the validated plan:
build/use normalized release activity;
generate the curated changelog section;
resolve the configured changelog target;
finalize the selected version;
update configured release-version files;
produce exact file changes;
create/update a generated release PR through the GitHub adapter.
LibreSign consumer mapping
For LibreSign stable releases, the configured release PR changes:
docs/changelogs/changelog-<major>.md;
appinfo/info.xml;
package.json;
package-lock.json.
Do not use root CHANGELOG.md as the mutable release-history source.
Synchronization of released changelog history back to main is handled by #73 after the stable release PR is finalized. This stage must not create an independent second rendering of the same release entry.
Output artifact: ReleasePreparation v1
This stage consumes ReleasePlan v1 and produces a versioned ReleasePreparation v1 containing at least:
ReleasePlan id/hash;
target branch and planning base SHA;
proposed release version/channel/mode;
exact allowed file diff/digests;
changelog section/digest;
generated branch/PR identity;
generated PR URL/number when applied;
expected merge preconditions.
It does not contain a final release SHA before merge.
#73 consumes this artifact and turns the merged/revalidated result into PreparedRelease v1.
PR identity
Generated PRs need deterministic machine-readable identity, for example:
deterministic branch naming;
explicit marker in PR body;
dedicated label where available;
plan id/version metadata.
Identity is an automation signal, not an authorization mechanism.
Classification/context rules
merged PR title is the deterministic Conventional Commit/SemVer source;
internal commit messages do not promote release type;
labels may refine changelog presentation where explicitly documented (for example security, dependencies, area/platform) but do not determine the version bump;
GitHub Project Status is planning/workflow state and does not affect changelog/SemVer;
milestone identifies the release train;
dependency PRs collapse into one dependency-update entry;
direct translation activity may produce one translation entry.
When the selected final transition removes a configured development/prerelease suffix, release preparation updates the configured version files to the exact final version from ReleasePlan v1; it must not derive a second version independently.
Human review
The maintainer reviews:
target branch/ref;
final version/channel;
included release activity;
changelog text;
exact file diff.
A maintainer may edit the PR. Post-merge automation must re-read/revalidate merged state.
Safety
dry-run produces exact proposed diff;
stale plan state stops mutation;
files outside consumer-configured scope fail the stage;
generated PR creation is idempotent;
no direct push to protected release branches.
Acceptance criteria
deterministic output from the same plan/state;
configurable file/path mapping;
translation-only and dependency-only releases work;
version override is visible and validated;
generated PR is machine-identifiable;
tests cover changelog generation, release-file updates and unexpected-file rejection;
Parent: #70
Depends on: #71, #79, #83, #84
Related: #80
Blocks: #73, #75, #81
Goal
Turn a validated
ReleasePlaninto narrowly scoped, reviewable PR changes without publishing a GitHub Release.Reusable responsibilities
Using consumer configuration and the validated plan:
LibreSign consumer mapping
For LibreSign stable releases, the configured release PR changes:
docs/changelogs/changelog-<major>.md;appinfo/info.xml;package.json;package-lock.json.Do not use root
CHANGELOG.mdas the mutable release-history source.Synchronization of released changelog history back to
mainis handled by #73 after the stable release PR is finalized. This stage must not create an independent second rendering of the same release entry.Output artifact: ReleasePreparation v1
This stage consumes
ReleasePlan v1and produces a versionedReleasePreparation v1containing at least:It does not contain a final release SHA before merge.
#73 consumes this artifact and turns the merged/revalidated result into
PreparedRelease v1.PR identity
Generated PRs need deterministic machine-readable identity, for example:
Identity is an automation signal, not an authorization mechanism.
Classification/context rules
When the selected final transition removes a configured development/prerelease suffix, release preparation updates the configured version files to the exact final version from
ReleasePlan v1; it must not derive a second version independently.Human review
The maintainer reviews:
A maintainer may edit the PR. Post-merge automation must re-read/revalidate merged state.
Safety
Acceptance criteria
docs/changelogs/changelog-<major>.md;ReleasePreparation v1schema/fixture is committed and consumed by Finalize the merged stable release and synchronize aggregate changelog history #73.Definition of done
ReleasePreparation v1schema and fixtures are committed;