Skip to content

Update release process#622

Merged
robmaceachern merged 1 commit into
mainfrom
robmaceachern/update-release-process
Jun 17, 2026
Merged

Update release process#622
robmaceachern merged 1 commit into
mainfrom
robmaceachern/update-release-process

Conversation

@robmaceachern

Copy link
Copy Markdown
Member

Summary

  • Mark CHANGELOG.md as historical and no longer maintained.
  • Update RELEASING.md to use GitHub auto-generated release notes, including the default draft flow and the explicit --publish option.
  • Replace the stale changelog-stamping release script with a gh release create --generate-notes helper.
  • Remove the obsolete changelog stamping script.

Validation

  • bash -n Scripts/release.sh
  • Scripts/release.sh --version 9.9.9 --dry-run --no-open
  • git diff --check

shellcheck was not available locally.

@robmaceachern robmaceachern changed the title [codex] Update release process Update release process Jun 17, 2026
@robmaceachern robmaceachern marked this pull request as ready for review June 17, 2026 14:51
@robmaceachern robmaceachern requested a review from a team as a code owner June 17, 2026 14:51
@robmaceachern robmaceachern enabled auto-merge (squash) June 17, 2026 14:57
Comment thread Scripts/release.sh
(
cd "$repo_root/SampleApp"
bundle exec pod install
if gh release view "$version" > /dev/null 2>&1; then

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Suggestion: Could we also guard against an existing tag for this version before creating the release? gh release create "$version" --target "$target_sha" only uses --target when it auto-creates the tag. If the tag already exists but no release exists yet, this can create the release from that existing tag even though the script printed a different target SHA.

One option:

existing_tag_sha=$(git rev-parse --verify --quiet "$version^{commit}" || true)
if [[ -n "$existing_tag_sha" && "$existing_tag_sha" != "$target_sha" ]]; then
  echo "Error: Tag $version already exists at $existing_tag_sha, not $target_sha." >&2
  exit 1
fi

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Opened #623 to address this. The new guard checks an existing version tag before release creation and fails if it resolves to a different commit than the requested target.

@robmaceachern robmaceachern merged commit e42358b into main Jun 17, 2026
11 checks passed
@robmaceachern robmaceachern deleted the robmaceachern/update-release-process branch June 17, 2026 15:06
robmaceachern added a commit that referenced this pull request Jun 17, 2026
## Summary

- Add an explicit existing-tag guard before `gh release create` runs.
- Fail when the requested version tag already exists at a different
commit than the resolved release target.
- Allow the script to continue when an existing tag resolves to the same
target commit.

## Feedback Addressed

Addresses the concern from
#622 (comment). The
review was valid: `gh release create --target` only affects auto-created
tags, so an existing tag without a release could have caused the release
to be created from a different commit than the script printed.

## Validation

- `bash -n Scripts/release.sh`
- `Scripts/release.sh --version 9.9.9 --dry-run --no-open`
- `Scripts/release.sh --version 6.7.2 --target origin/main --dry-run
--no-open` fails with the new mismatched-tag error
- `Scripts/release.sh --version 6.7.2 --target 6.7.2 --dry-run
--no-open` reaches the existing-release guard
- `git diff --check`

`shellcheck` is not installed locally.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants