-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Closed
Labels
documentationCategorizes issue or PR as related to documentation.Categorizes issue or PR as related to documentation.enhancementNew feature or requestNew feature or requestfeatureCategorizes issue or PR as related to a new feature.Categorizes issue or PR as related to a new feature.
Milestone
Description
Background
While working on the OpenIM project, we've faced challenges with the current manual process of tagging our versions. The manual steps we follow are:
tag -a v3.2.0-beta.0 -s -m "release(v3.2.0): new feat cluster"
git push upstream v3.2.0-beta.0
This process has several shortcomings:
- Due to our
CONTRIBUTING.md
guide, direct pushing is not allowed, making this process cumbersome. - Our current PR merge strategy often leads to many commits being merged as one PR, causing verbose and complex commit messages that aren't concise for release notes.
- The process is not automated and requires manual effort, which increases the chance of human error.
Proposed Solution: GitHub Action for Tagging
To address these issues, we propose implementing a GitHub action that automates the process of tagging while adhering to our workflow requirements.
Features:
- GitOps Integration:
- If the last digit of the git version number is 0, and there is no build number afterward, it signifies the beginning of a new minor semantic version.
- The bot will automatically create a branch named
release-v*.*
and put it under branch protection.
- ChatOps Integration:
- Using GitHub API's labels and PR or issue comment logic, we can command the bot to execute actions.
- By commenting
/content git-tag-name
, the bot will automatically tag with the namegit-tag-name
. - Adding a specific label to a PR or issue will prompt the bot to auto-increment the current version number by one on the last digit.
Workflow:
- When a PR is merged or an issue is closed, the action checks the version number.
- If the last digit is 0, the bot creates a
release-v*.*
branch and enables branch protection. - Through the comment system (ChatOps), developers can instruct the bot to create specific tags.
- Alternatively, specific labels can be used to auto-increment and tag new version numbers.
Benefits:
- Streamlines the tagging process, making releases more efficient.
- Reduces human errors.
- Consistency in tagging and branching.
- Clear and concise commit messages for release notes.
Next Steps:
- Draft a clear specification for the GitHub action, defining all triggers and outputs.
- Identify potential challenges in the existing workflow and how this automation might impact them.
- Collaborate with team members to gather feedback and iterate on the proposal.
Metadata
Metadata
Assignees
Labels
documentationCategorizes issue or PR as related to documentation.Categorizes issue or PR as related to documentation.enhancementNew feature or requestNew feature or requestfeatureCategorizes issue or PR as related to a new feature.Categorizes issue or PR as related to a new feature.
Type
Projects
Status
Done