Skip to content

🌟 [Major]: Support push-authoritative releases and moving workflow tags #108

Open

Description

Outcome

Release-GHRepository can create a stable repository release from an important push to the default branch and maintain the moving workflow-consumer tags for that release.

Context

PSModule/Process-PSModule#512 moves module publication to default-branch pushes. Its repository-release workflow initially added the same trigger, but Release-GHRepository@v2.0.3 exits whenever the event payload has no pull_request. Leaving that trigger in place would make an important push report success without creating the Process-PSModule workflow release.

The caller workflow is itself a versioned delivery surface. Consumers must be able to reference its compatible moving major channel (for example, @v5) after an immutable release succeeds.

Acceptance criteria

  • A default-branch push can create a stable release without a pull_request event payload.
  • When the pushed SHA is exactly the merge commit of a default-branch pull request, its labels, title, and body provide the release bump and notes.
  • A direct default-branch push and manual default-branch dispatch use a safe Patch fallback with commit-based notes.
  • Closed pull requests retain prerelease cleanup behavior but cannot create stable releases.
  • The GitHub Release and immutable version tag target the exact pushed SHA.
  • After a stable release succeeds, moving v<major>, v<major>.<minor>, and latest tags are updated atomically to that immutable release commit.
  • Tests cover merged-PR, direct-push, manual-dispatch, and closed-PR event contexts.

Related

Activity

  1. MariusStorhaug commented on Nov 1, 2026

    @MariusStorhaug
    MemberAuthor

    The existing resolver/settings delivery in #109 has a user-directed actual-reader update at immutable development source 03e20b8293dd8dfb41bead3255930a5edbb2e9bb.

    • Declared input/default contract: ConfigurationFile now defaults to .github\release.settings.yml. The input name, typed CallerOverrides mapping and setting names/precedence are retained.
    • Actual reader boundary: removed conventional auto-release selections fail before GitHub operations, including explicit/normalized selections. There is no fallback or alias. Existing deliberate custom paths remain supported; a missing selected file cannot silently discard legacy conventional settings.
    • Caller verification: 167 repository cases pass, including actual default loading without injected ConfigurationFile, absence, invalid new data, scope precedence and write-denying migration cases. Eleven anonymous immutable-v2 bootstrap experiments retain label compatibility controls and prove filename-only migration can discard the old reader's policy.

    This is the source/interface handoff for the separately scoped push-authority work, not evidence that a distinct #108 session has incorporated it. No separate working-copy refresh or publication implementation is claimed. The #109 helper contracts remain unchanged; PSModule.yml and its SettingsPath interface are not migrated. Final #109 review and canonical MSXOrg/docs#233 correspondence are evaluated separately. This unmerged candidate is not a production dependency, and #112 plus existing review/publication authorization gates remain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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