Skip to content

Conversation

@ashwinb
Copy link
Contributor

@ashwinb ashwinb commented Oct 31, 2025

Summary

Fixes a bug where the TypeScript client tag was created but never pushed during RC builds, causing the final release workflow to fail with "Tag vX.Y.ZrcN does not exist for stack-client-typescript".

Root Cause

In upload-packages-and-tag/main.sh:

  • Tags are created for all repos (including TypeScript) at line 107
  • The lockfile update loop skips TypeScript with continue (line 131)
  • Tag push happens inside that lockfile loop (line 161)
  • Result: TypeScript tag never gets pushed

Fix

Split the logic so TypeScript tags are pushed immediately after creation, before the lockfile update loop runs for Python repos.

Test Plan

  • Manually created and pushed the missing v0.3.1rc5 tag for TypeScript client
  • Re-ran the failed release workflow (run #18987010208)
  • Next RC build will verify the fix works end-to-end

Two fixes:

1. Push branch before tag: RC workflow was only pushing tags, not the
   commits. The tag pointed to a local commit that didn't exist on
   remote. Now we push the branch first to ensure the lockfile commit
   exists, then push the tag. Final release workflow was already
   correct.

2. Remove pre-commit retry: Pre-commit exits non-zero when it modifies
   files (by design). The retry loop treated this as failure and retried
   unnecessarily. First run modifies lockfiles (exits 1), second run
   succeeds (exits 0). Fixed by removing retry and using '|| true' to
   ignore exit code. We check git status after to see if files changed.
The upload-packages-and-tag script was skipping TypeScript in the lockfile
update loop (since it doesn't need lockfile updates), but the tag push was
happening inside that loop. This meant the TypeScript tag was created but
never pushed to the remote.

Split the logic so TypeScript tags are pushed immediately after creation,
before the lockfile update loop runs for Python repos.
@meta-cla meta-cla bot added the cla signed label Oct 31, 2025
The auto-bump section creates a venv for bumping main branch versions
but wasn't installing pre-commit in it. When add_bump_version_commit
tries to run lockfile updates, it fails with 'command not found'.
After a release, we should only create an auto-bump PR for the main
stack repo, not for client libraries. Client library versions are
managed separately.
Add explicit check for pre-commit before running it. The '|| true' is
needed because pre-commit exits with code 1 when it modifies files
(expected behavior), but we should fail loudly if pre-commit is not
installed at all rather than silently continuing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants