Repository navigation
Switch release workflow to manual trigger with version input - #4
Conversation
The old release workflow fired on GitHub release creation, then rebuilt, re-tagged, and force-pushed the tag so it pointed at the built, versioned code. Moving a tag breaks Packagist, which requires tags to be immutable. Replace it with a manually dispatched workflow that takes a version input, builds and stamps the version, and creates the tag exactly once so it never needs to be moved or force-pushed. The distribution ZIP is now produced with git archive honouring the .gitattributes export-ignore rules, matching the approach used in hm-query-loop. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Nyu8Q9MCsyQuFcQd7sd2hK
Playwright test resultsDetails
Skipped testschromium › multiple-endpoints.spec.js › Multiple endpoints - EP_CATEGORIES overview endpoint › Editor endpoint selector › endpoint selector appears in Tab Visibility panel with multiple registered endpoints |
Adds a Release Process section describing the manually dispatched Release workflow: how to trigger it, the required semver version input, and the immutable-tag guarantee that keeps releases compatible with Packagist. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Nyu8Q9MCsyQuFcQd7sd2hK
Problem
The previous
release.ymlfired on GitHub release creation (release: [created]). It then re-built the plugin, stamped the version, made a new commit, deleted the existing tag, recreated it, and force-pushed it so the tag pointed at the built, versioned code.Moving a tag like this breaks Packagist, which requires tags to be immutable. This mirrors the same issue we fixed in
hm-query-loop.Change
Replace the release-triggered workflow with a manually dispatched one (
workflow_dispatch) that takes aversioninput:1.2.3, no leadingv).X.Y.Zformat.npm ci && npm run build, thensedthe version into theVersion:header ofhm-url-tabs.php.build/) is committed, tagged, and only the tag is pushed. Never moved, never force-pushed.git archive, honouring the.gitattributesexport-ignorerules so ZIP contents are defined in one place and match the tagged tree.softprops/action-gh-release@v2with auto-generated release notes and the ZIP attached.This matches the approach now used in
hm-query-loop. Onlyrelease.ymlchanged;build-and-release.yml(which maintains thereleasebranch on push tomain) is untouched.Testing
hm-query-loop.Generated by Claude Code