docs/contrib/branching-strategy.md
Cherry Studio implements a structured branching strategy to maintain code quality and streamline the development process.
Current model.
mainis the default branch for all active development — submit features, refactors, optimizations, and fixes here.
main: Main development branch
release/*: Release branches
main head by the Pre Release workflow; do not create them by hand in the normal flowmainFor details about the testplan branch used in the Test Plan, please refer to the Test Plan.
When contributing to Cherry Studio, please follow these guidelines:
Feature Branches:
main branchfeature/issue-number-brief-descriptionmainBug Fix Branches:
main branchfix/issue-number-brief-descriptionmainDocumentation Branches:
main branchdocs/brief-descriptionmainHotfix Branches:
main branchhotfix/issue-number-brief-descriptionhotfix: <description> or hotfix(<kebab-case-scope>): <description> PR titlehotfix label from the exact title grammar; for a user-facing fix, put exactly one release-note line in English and Chinese inside the PR template's release-note fence, otherwise use NONEmainRelease Branches:
main headrelease/v<semantic-version>mainmainhotfix; after merge, they get a backport PR only when exactly one draft semantic-version release has a matching active release branch, and any provided bilingual note is validated and appliedmain into the release branchmain and opens a metadata-only sync PRchore(release): sync v<version> metadata (plus only GitHub's optional PR-number suffix) and keep release-metadata-boundary: v<version> on its own line in the squash commit bodymainmain changes before submittingv1.0.2 after v1.0.1); do not create a separate v1.0.1-hotfix tag.