Skip to content

Commit 40612c5

Browse files
authored
✨ Update Copilot instructions with beta branch workflow (#162)
1 parent effb0d1 commit 40612c5

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

.copilot/instructions.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
This is a Homebridge plugin that provides HomeKit integration for August and Yale smart locks. The plugin is written in TypeScript with ES modules and follows Homebridge platform patterns.
66

7+
**Branch Strategy**: This repository uses a beta-first development workflow where all changes must target beta branches before being merged to main. Version bumps are determined by issue labels (patch/minor/major) that must be set before assigning work to Copilot.
8+
79
## Architecture
810

911
- **Plugin Type**: Homebridge dynamic platform plugin
@@ -34,6 +36,30 @@ This is a Homebridge plugin that provides HomeKit integration for August and Yal
3436

3537
## Development Workflow
3638

39+
### Branch Strategy and PR Workflow
40+
41+
**IMPORTANT**: All pull requests must target a beta branch first, never directly to the main branch.
42+
43+
#### Beta Branch Requirements
44+
- All PRs must be directed to a branch that starts with "beta-"
45+
- Beta branches should be named `beta-X.Y.Z` based on the expected version bump
46+
- If no appropriate beta branch exists, create one based on the next possible version:
47+
- **patch** releases (bug fixes): `beta-X.Y.Z+1` (e.g., current 3.0.2 → beta-3.0.3)
48+
- **minor** releases (new features): `beta-X.Y+1.0` (e.g., current 3.0.2 → beta-3.1.0)
49+
- **major** releases (breaking changes): `beta-X+1.0.0` (e.g., current 3.0.2 → beta-4.0.0)
50+
51+
#### Required Labels
52+
Before assigning any issue to Copilot, the following labels **must** be set to determine the version bump:
53+
- `patch` - for bug fixes and minor improvements
54+
- `minor` - for new features and enhancements
55+
- `major` - for breaking changes
56+
57+
#### Workflow Steps
58+
1. Ensure proper label (patch/minor/major) is set on the issue
59+
2. Identify or create appropriate beta branch based on the label
60+
3. Target all development work and PRs to the beta branch
61+
4. Once beta testing is complete, merge beta branch to main for release
62+
3763
### Building
3864
```bash
3965
npm run build # Full build: clean + compile + copy UI files
@@ -129,6 +155,17 @@ npm run plugin-ui # Copy UI files to dist
129155

130156
## When Making Changes
131157

158+
**CRITICAL**: Before starting any work, ensure the issue has the appropriate label (patch/minor/major) and target the correct beta branch.
159+
160+
0. **Branch Targeting**:
161+
- Never target PRs directly to main branch
162+
- Always target a beta branch (beta-X.Y.Z format)
163+
- Create beta branch if none exists for the expected version
164+
- Use issue labels to determine version bump:
165+
- `patch`: Bug fixes → beta-X.Y.Z+1
166+
- `minor`: New features → beta-X.Y+1.0
167+
- `major`: Breaking changes → beta-X+1.0.0
168+
132169
1. **Dependencies**:
133170
- Only add well-maintained dependencies
134171
- Keep runtime dependencies minimal
@@ -140,6 +177,7 @@ npm run plugin-ui # Copy UI files to dist
140177
- Update CHANGELOG.md appropriately
141178
- Consider migration paths for users
142179
- Test with multiple Homebridge versions
180+
- **Must** use `major` label and target appropriate beta-X+1.0.0 branch
143181

144182
3. **Configuration**:
145183
- Update config.schema.json for new options

0 commit comments

Comments
 (0)