Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Comments

Close side panel

Release strategy: alpha, beta, rc#1758

Closed
tiran wants to merge 1 commit intoinstructlab:maininstructlab/instructlab:mainfrom
tiran:release-alphatiran/instructlab:release-alphaCopy head branch name to clipboard
Closed

Release strategy: alpha, beta, rc#1758
tiran wants to merge 1 commit intoinstructlab:maininstructlab/instructlab:mainfrom
tiran:release-alphatiran/instructlab:release-alphaCopy head branch name to clipboard

Conversation

@tiran
Copy link
Contributor

@tiran tiran commented Jul 17, 2024

Proposal for using alpha, beta, and RCs.

Checklist:

  • Commit Message Formatting: Commit titles and messages follow guidelines in the
    conventional commits.
  • Changelog updated with breaking and/or notable changes for the next minor release.
  • Documentation has been updated, if necessary.
  • Unit tests have been added, if necessary.
  • Integration tests have been added, if necessary.

@mergify mergify bot added documentation Improvements or additions to documentation ci-failure PR has at least one CI failure labels Jul 17, 2024
@mergify mergify bot removed the ci-failure PR has at least one CI failure label Jul 17, 2024
## Git Branches and Tags

Every `X.Y` release stream gets a new branch.
Every `X.Y` release stream gets a new branch `release-X.Y`. The release branch is created with first beta, release candidate, or final `X.Y.0` release.
Copy link
Contributor

Choose a reason for hiding this comment

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

The branch name, release-X.Y, differs from the name below release-vX.Y

Copy link
Contributor Author

Choose a reason for hiding this comment

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

good catch!

Copy link
Member

Choose a reason for hiding this comment

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

Yup, release branches are of the form release-vX.Y

Copy link
Contributor

Choose a reason for hiding this comment

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

This is the point I made in the CLI call this week. When we are ready to make an RC build, we need to make it from a release branch and not main. This then opens up main for work. I am not as concerned about beta releases from main but I am also ok with saying beta releases need to come from a release branch.

1. Validate the release branch with an [E2E test](ci.md).
1. Create a new release on GitHub targeting the release branch and using the latest Y-Stream tag as the previous release (e.g. `0.15.1` precedes `0.16.0a1`).

### Y-Stream (`X.Y.0`, `X.Y.0b1`, `X.Y.0rc1`)
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
### Y-Stream (`X.Y.0`, `X.Y.0b1`, `X.Y.0rc1`)
### Y-Stream (`X.Y.0b1`, `X.Y.0rc1`, `X.Y.0`)

I would order these in the proper order.


Alpha releases are tagged as `vX.Y.Za1`, `vX.Y.Za2`, and so on. Alpha releases are created from the main branch, **not** from a `release-X.Y` branch.

Beta releases are tagged as `vX.Y.Zb1`, `vX.Y.Zb2`, and so on from `release-X.Y` branch.

Choose a reason for hiding this comment

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

I've always used a tag as the base of a branch, too. So, tag a beta, make the release branch from the same point, then future tags for that release series are on the branch and clearly after only that initial branching version and not intermingled with pre-releases of other versions on the main branch.

## Git Branches and Tags

Every `X.Y` release stream gets a new branch.
Every `X.Y` release stream gets a new branch `release-X.Y`. The release branch is created with first beta, release candidate, or final `X.Y.0` release.

Choose a reason for hiding this comment

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

Do we need alphas, betas, and RCs? We want an alpha today to avoid breaking community users while we test some downstream build machinery. The pre-release type doesn't really matter for that, so we could just always use alphas. Maybe there's a reason to use different types upstream, though?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I would like to start using RCs from here on out with a couple of days of testing between rc1 and final.

  • alphas are cut from the main branch and can have known bugs
  • betas are cut from a release branch and should have stable API and requirements
  • rcs should be stable. When everything goes right, then 1.2.3rc1 tag will become the 1.2.3 tag without any modifications.

Choose a reason for hiding this comment

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

OK, that makes sense.

Copy link
Contributor

@russellb russellb left a comment

Choose a reason for hiding this comment

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

+1 to the clarification that we do alphas from main

docs/release-strategy.md Show resolved Hide resolved
Proposal for using alpha, beta, and RCs.

Signed-off-by: Christian Heimes <cheimes@redhat.com>
@nathan-weinberg nathan-weinberg self-requested a review July 17, 2024 17:47

Z-stream releases are meant for critical bug and documentation fixes. Z-stream releases are cut as maintainers see fit.

A final release may be preceded by a pre-release (alpha `X.Y.ZaN`, beta `X.Y.ZbN`, or release candidate `X.Y.ZrcN`). PyPI and pip automatically recognize them as pre-release. Pip ignores pre-releases unless the user explicitly requests a pre-release with `pip install --pre` or `pip install instructlab==0.16.0a1`.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
A final release may be preceded by a pre-release (alpha `X.Y.ZaN`, beta `X.Y.ZbN`, or release candidate `X.Y.ZrcN`). PyPI and pip automatically recognize them as pre-release. Pip ignores pre-releases unless the user explicitly requests a pre-release with `pip install --pre` or `pip install instructlab==0.16.0a1`.
A release may be preceded by a pre-release, e.g.
- Alpha (`X.Y.ZaN`)
- Beta (`X.Y.ZbN`)
- Release Candidate (`X.Y.ZrcN`)
PyPI and pip automatically recognize these types of tags as pre-release. Pip ignores pre-releases unless the user explicitly requests a pre-release with `pip install --pre` or `pip install instructlab==0.16.0a1`.

## Git Branches and Tags

Every `X.Y` release stream gets a new branch.
Every `X.Y` release stream gets a new branch `release-X.Y`. The release branch is created with first beta, release candidate, or final `X.Y.0` release.
Copy link
Member

Choose a reason for hiding this comment

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

Yup, release branches are of the form release-vX.Y

Comment on lines +63 to +65
1. Announce release via the following:
- The `#announce` channel on Slack
- The `announce` mailing list
Copy link
Member

Choose a reason for hiding this comment

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

Do we want to do as broad of an announcement for pre-releases as we do regular releases?

@nathan-weinberg nathan-weinberg added this to the 0.19.0 milestone Aug 15, 2024
@ktam3
Copy link

ktam3 commented Aug 21, 2024

@tiran - could you take this out of draft pls

@mergify
Copy link
Contributor

mergify bot commented Nov 18, 2024

This pull request has merge conflicts that must be resolved before it can be
merged. @tiran please rebase it. https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify bot added the needs-rebase This Pull Request needs to be rebased label Nov 18, 2024
@mergify mergify bot removed the needs-rebase This Pull Request needs to be rebased label Jan 6, 2025
@mergify
Copy link
Contributor

mergify bot commented Jan 6, 2025

This pull request has merge conflicts that must be resolved before it can be
merged. @tiran please rebase it. https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify bot added the needs-rebase This Pull Request needs to be rebased label Jan 6, 2025
@courtneypacheco
Copy link
Contributor

@tiran Are you planning to complete this release strategy? If not or you don't have the cycles currently, would you mind if I rebased and took it over for you?

@nathan-weinberg nathan-weinberg modified the milestones: 0.23.0, 0.24.0 Jan 27, 2025
@mergify mergify bot removed the needs-rebase This Pull Request needs to be rebased label Mar 27, 2025
@mergify
Copy link
Contributor

mergify bot commented Mar 27, 2025

This pull request has merge conflicts that must be resolved before it can be merged. @tiran please rebase it. https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify bot added the needs-rebase This Pull Request needs to be rebased label Mar 27, 2025
@mergify mergify bot removed the needs-rebase This Pull Request needs to be rebased label Apr 28, 2025
@mergify
Copy link
Contributor

mergify bot commented Apr 28, 2025

This pull request has merge conflicts that must be resolved before it can be merged. @tiran please rebase it. https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

@mergify mergify bot added the needs-rebase This Pull Request needs to be rebased label Apr 28, 2025
@github-actions
Copy link

This pull request has been automatically marked as stale because it has not had activity within 60 days. It will be automatically closed if no further activity occurs within 30 days.

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

Labels

documentation Improvements or additions to documentation needs-rebase This Pull Request needs to be rebased stale

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.