Label-Based Version Control Strategy #302
GreatEugenius
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Overview
We want to introduce a version control strategy using labels, primarily inspired by the label strategy in Apache Pulsar.
Label Definition
Priority
For an issue or PR, there are three levels of priority: blocker, major, and minor, listed in descending order. Below are the meanings of the three labels:
priority/blockerpriority/majorpriority/minorVersion and Branch Control
fixVersion/<version><version>version.affectedVersion/<version><version>version. The features are not needed.Document Management
When submitting a PR, you must choose one of the documentation checkboxes, so the automation can label the PR correctly.
doc-neededdoc-not-neededdoc-label-missingUsage Scenarios
Feature
If the user needs a new feature, they can check for any related Issues or PRs. If there are any, they can choose to upgrade to the corresponding version using the
fixVersion/<version>tag. If not, they should proceed to the steps below:Issue Creation
priority/major,feature.Requirement Review
fixVersion/<version>label.priority/blocker,priority/minor, depending on importance and impact.Development Implementation
priority/major,doc-*andfixVersion/<branch_next_version>, where<branch_next_version>represents the next release version of the current branch.fixVersion/<version>if the change needs to be cherry-picked into the stable branch, where<version>is the next version that the branch will release.Code Review and PR Closure
doc-neededlabel, it must include documentation changes or a sub-track issue created with apriority/blockerlabel.fixVersion/<version>label, the Committer try to cherry-pick of the commit into the corresponding branch:fixVersion/<version>label from the PR and ask the contributor to open another PR against the corresponding branch.merged.Issue Closure
fixVersion/<version>labels in the Issue. If the corresponding versions are all fixed, a Committer or Release Manager will close the issue ascompleted.not plannedand remove allfixVersion/<version>labels.Bug
If the user discovery a bug, they can check for any related Issues or PRs. If there are any, they can choose to upgrade to the corresponding version using the
fixVersion/<version>label. If not, they should proceed to the steps below:Bug Discovery and Issue Creation
<report_version>.priority/majorandbugare included.priority/blockerorpriority/minor) based on severity and impact.Bug Analysis
affectedVersion/<version>labels to the issue based on the release timeline.fixVersion/<version>labels to the issue based on the release timeline.Bug Fix
priority/major,doc-*andfixVersion/<branch_next_version>.fixVersion/<version>if the fix should cherry-picked into another branch, where<version>is the next version that the branch will release.Code Review and PR Closure
fixVersion/<version>label, the Committer try to cherry-pick of the commit into the corresponding branch:fixVersion/<version>label from the PR and ask the contributor to open another PR against the corresponding branch.merged.Issue Closure
fixVersion/<version>labels in the Issue. If the corresponding versions are all fixed, a Committer or Release Manager will close the issue ascompleted.not plannedand remove allfixVersion/<version>andaffectedVersion/<version>labels.not plannedand will only remove allaffectedVersion/<version>labels.Release
Release Prepare
fixVersion/<version>that are not closed.priority/blocker, the Release Manager should wait for their resolution or deprioritize them.priority/majororpriority/minor, the Release Manager may elevate the priority topriority/blockerif they need to be included in this release.Release a New Version:
fixVersion/<version>, where<version>is the next upcoming version after the release.affectedVersion/<version>, where<version>represents the version being released.0.1.1, add labelsaffectedVersion/0.1.1andfixVersion/0.1.2.If Create a New Release Branch
fixVersion/<version>, where<version>represents the title of the new main branch.After releasing
fixVersion/<version>label is accurate.fixVersion/<release_version>tofixVersion/<upcoming_version>.0.1.0, the Release Manager should update all open PRs or issues fromfixVersion/0.1.0to eitherfixVersion/0.2.0orfixVersion/0.1.1, depending on whether it is a feature or a bug.Beta Was this translation helpful? Give feedback.
All reactions