TcView tracks a GitFlow-style branch model in source so the branch lifecycle is visible and repeatable.
main: production/release history onlydevelop: integration branch for the next releasefeature/*: normal feature or bugfix work, branched fromdevelop, merged back intodeveloprelease/*: release stabilization branches, branched fromdevelop, merged intomainhotfix/*: urgent production fixes, branched frommain, merged intomainsupport/*: optional long-lived maintenance lines for older trains
Tag format:
v<package.json version>- examples:
v1.0.0,v1.0.0-alpha.3
The repository includes helper commands for creating branches from the intended base:
npm run gitflow -- bootstrapnpm run gitflow -- bootstrap --pushnpm run gitflow -- start feature webview-perfnpm run gitflow -- start release 1.0.0-alpha.3npm run gitflow -- start hotfix 1.0.1
Helper script:
Notes:
- the helper requires a clean worktree before it changes branches
--pushcreates the remote branch and sets upstream tracking- release and hotfix completion still happens through pull requests so GitHub protections and CI stay in the loop
feature/*,bugfix/*,chore/*,docs/*,refactor/*,test/*,perf/*->developrelease/*->mainhotfix/*->mainmain->developafter each release or hotfix landshotfix/*->support/*when an older maintenance line needs the same fix
GitHub validates these pairings in:
In this model:
release/<version>is the normal release PR source branch intomainmainis synchronized back intodevelopafter each release- this keeps
developfrom being treated like a disposable release branch release/*andhotfix/*are maintainer-managed branches rather than general-purpose shared working branches
- Branch
release/<version>fromdevelop - Bump
package.jsonversion and update CHANGELOG.md - Merge
release/<version>intomain - GitHub creates tag
v<version>if it does not already exist - GitHub builds the VSIX and publishes a GitHub Release for that tag
- GitHub opens or reuses a
main->developsync PR
Workflow:
Protection note:
- tracked rulesets now apply stricter protection to
release/*andhotfix/* - they block deletion and force-push and require CI
- they intentionally do not require PRs for every stabilization commit on those branches
The current remote branch names v1.0 and v2.0 do not match GitFlow naming.
If those are meant to stay as maintained release lines, the GitFlow naming form is:
support/1.0support/2.0
Temporary branches outside that naming scheme can be retired once the branch model is fully in use.