Skip to content

Commit 81e929f

Browse files
docs(contributing): add branch purposes, flow diagram, and toc updates (#241)
1 parent 9e02459 commit 81e929f

1 file changed

Lines changed: 60 additions & 2 deletions

File tree

CONTRIBUTING.md

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

49107
Branches must follow this format:
@@ -110,11 +168,11 @@ type(scope): description
110168
## Development Workflow
111169

112170
1. 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)
114172
3. Make your changes in `packages/src/lib/api-resource-manager.js`
115173
4. Write or update tests in `packages/tests/`
116174
5. 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

Comments
 (0)