Skip to content

Conversation

@ashwinb
Copy link
Contributor

@ashwinb ashwinb commented Oct 31, 2025

Changes the release process to cut a release branch first (e.g., release-0.1.x), land cherry-picks onto it out-of-band, and always release from that branch. No more cutting from origin/main or creating temporary rc-$VERSION branches.

New workflow:

When cutting the first RC for a minor version (e.g., 0.1.0rc1), a release branch is created from main. All subsequent RCs and patch releases for that series work from the same long-lived branch. Cherry-picks land on the release branch between RCs. Final releases promote an RC tag by bumping version strings and pushing back to the release branch.

After each final release, main is auto-bumped to the next dev version via PR (e.g., 0.1.00.1.1.dev0).

Changes:

  • Release branches created on first RC, not final release
  • Removed determine_base_branch() complexity (70 lines)
  • Removed unused API key parameters
  • Fixed bug where client dependency updates used wrong variable
  • Added version format validation
  • Added comprehensive tests with synthetic repos

See RELEASE_PROCESS.md for the complete workflow.

The previous release process had complex branch logic that tried to
determine where to push version bumps after releases. This created
unnecessary complexity and made the release process harder to reason about.

The new process is straightforward: each minor version (e.g., 0.1.x) gets
one long-lived release branch that contains all RCs and patch releases
for that series. Release branches are created on the first RC, not the
final release.

Changes:
- Release branches (release-X.Y.x) now hold all releases for a minor version
- Removed rc- temporary branches; RCs are tags on release branches
- Removed determine_base_branch logic and complex ancestry checking
- Auto-bump main via PR after final releases (patch + 1 + .dev0)
- Removed unused inference_provider and API key parameters
- Added version format validation
- Fixed bug where client dependency used wrong variable in version bumps

The workflow is now: cut RC from release branch → test/cherry-pick fixes
→ cut another RC → promote RC to final → main gets bumped automatically.
@meta-cla meta-cla bot added the cla signed label Oct 31, 2025
Extracts release functions into tests/lib/release-functions.sh for unit
testing. Adds unit tests covering version parsing, git operations, and
version bump logic. Adds integration tests that simulate the full RC
cutting workflow with synthetic repositories, verifying version bumps,
branch creation, and commit history across multiple RCs.

All 14 tests passing (13 unit + 1 integration suite).
@ashwinb ashwinb changed the title Simplify release workflow to use long-lived release branches Cut release branches first, land cherry-picks, release from branch Oct 31, 2025
@ashwinb
Copy link
Contributor Author

ashwinb commented Oct 31, 2025

cc @leseb @cdoern @bbrowning

All repositories now live under the llamastack organization, not meta-llama.
@@ -0,0 +1,286 @@
#!/usr/bin/env bash
Copy link
Contributor Author

Choose a reason for hiding this comment

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

look at this test and see if this is good or not

ashwinb added a commit to llamastack/llama-stack that referenced this pull request Oct 31, 2025
Standardize CI workflows to use `release-X.Y.x` branch pattern instead
of multiple numeric variants.

That's the pattern we are settling on. See
llamastack/llama-stack-ops#20 for reference.
@ashwinb
Copy link
Contributor Author

ashwinb commented Oct 31, 2025

@ashwinb
Copy link
Contributor Author

ashwinb commented Oct 31, 2025

CI on the release-0.3.x branch is failing but that's because of independent issues (it needs to install packages from test.pypi now because RC versions). This PR is good. Landing.

@ashwinb ashwinb merged commit c3ea133 into main Oct 31, 2025
4 checks passed
@ashwinb ashwinb deleted the updated_release_process branch October 31, 2025 05:13
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.

3 participants