@@ -7,6 +7,8 @@ Thank you for your interest in contributing! Please read through this guide befo
77## Table of Contents
88
99- [ Getting Started] ( #getting-started )
10+ - [ Branch Purposes] ( #branch-purposes )
11+ - [ Branch Flow] ( #branch-flow )
1012- [ Branch Naming Convention] ( #branch-naming-convention )
1113- [ Commit Message Convention] ( #commit-message-convention )
1214- [ Development Workflow] ( #development-workflow )
@@ -44,6 +46,62 @@ yarn build
4446
4547---
4648
49+ ## Branch Purposes
50+
51+ These are the permanent staple branches of this repository. They are never deleted.
52+
53+ | Branch | Purpose |
54+ | --------- | ------- |
55+ | ` main ` | Branch containing stable source code. The ` release ` branch is merged to ` main ` once released. |
56+ | ` release ` | Branch for releasing code changes. The ` develop ` branch merges to ` release ` for releases. |
57+ | ` develop ` | Branch for staging code changes. Base branch for new features, enhancements, fixes, and documentation. |
58+ | ` canary ` | Experimental branch for code changes. Can be merged to ` develop ` once tested. |
59+
60+ ---
61+
62+ ## Branch Flow
63+
64+ ``` mermaid
65+ flowchart TD
66+ subgraph Developing["Developing Phase"]
67+ WB["feat/ · fix/ · chore/ · docs/ · refactor/ · test/"]
68+ end
69+
70+ subgraph Releasing["Releasing Phase"]
71+ RV["release/vX.X.X\n(update version files)"]
72+ end
73+
74+ develop(develop)
75+ release(release)
76+ main(main)
77+ canary(canary)
78+
79+ WB -->|merge| develop
80+ develop -->|checkout| RV
81+ RV -->|merge| release
82+ release -->|rebase| main
83+ release -->|rebase| canary
84+ release -->|rebase| develop
85+ ```
86+
87+ ### Developing Phase
88+
89+ Work branches are created from ` develop ` and merged back into ` develop ` when ready.
90+
91+ ### Releasing Phase
92+
93+ ` develop ` is checked out into a versioned ` release/vX.X.X ` branch. Before merging to ` release ` , update the version in:
94+
95+ - ` README.md `
96+ - ` packages/package.json `
97+ - ` packages/src/lib/api-resource-manager.js `
98+
99+ ### Stabilizing Phase
100+
101+ Once ` release ` is verified, it is rebased into ` main ` , ` canary ` , and ` develop ` to keep all staple branches in sync.
102+
103+ ---
104+
47105## Branch Naming Convention
48106
49107Branches must follow this format:
@@ -110,11 +168,11 @@ type(scope): description
110168## Development Workflow
111169
1121701 . Fork the repository
113- 2 . Create a branch following the [ Branch Naming Convention] ( #branch-naming-convention )
171+ 2 . Create a branch from ` develop ` following the [ Branch Naming Convention] ( #branch-naming-convention )
1141723 . Make your changes in ` packages/src/lib/api-resource-manager.js `
1151734 . Write or update tests in ` packages/tests/ `
1161745 . Run the test suite and ensure all tests pass
117- 6 . Submit a pull request pointing to ` develop `
175+ 6 . Submit a pull request targeting ` develop `
118176
119177---
120178
0 commit comments