Branch Strategy: GitHub Flow (Simplified)
This project uses a simplified GitHub Flow optimized for individual development with JSR package releases.
Branch Structure
main (default, protected)
|
+-- feature/xxx # New features
+-- fix/xxx # Bug fixes
+-- docs/xxx # Documentation updates
+-- refactor/xxx # Code refactoring
+-- test/xxx # Test additions/improvements
+-- chore/xxx # Maintenance tasks
Branch Naming Convention
Format: <type>/<short-description>
| Type | Purpose | Example |
|---|---|---|
feature |
New functionality | feature/add-parallel-execution |
fix |
Bug fixes | fix/batch-size-validation |
docs |
Documentation only | docs/update-api-reference |
refactor |
Code restructuring | refactor/simplify-error-handling |
test |
Test improvements | test/add-integration-tests |
chore |
Maintenance, deps | chore/update-dependencies |
Naming Rules
- Use lowercase letters, numbers, and hyphens only
- Keep descriptions short (2-4 words)
- Use present tense verbs (add, fix, update, remove)
- Reference issue numbers when applicable:
fix/issue-123-login-error
Workflow
Creating a Branch
# From main branch
git checkout main
git pull origin main
git checkout -b feature/your-feature-name
Committing Changes
# Stage specific files (preferred over git add -A)
git add src/file1.ts src/file2.ts
# Commit with descriptive message
git commit -m "Add parallel execution support for batch mode"
Creating a Pull Request
# Push branch to remote
git push -u origin feature/your-feature-name
# Create PR via GitHub CLI
gh pr create --title "Add parallel execution support" --body "## Summary
- Implemented parallel execution for batch mode
- Added configuration option for concurrency level
## Test plan
- [ ] Unit tests pass
- [ ] Integration tests pass
- [ ] Manual testing completed"
Main Branch Rules
- Always releasable: main must pass all CI checks
- No direct pushes: All changes via Pull Request
- CI required: Merges blocked until CI passes
- Squash merge preferred: Keep history clean
Release Process
- Merge PR to main
- Update version in
deno.json - Create and push tag:
git tag v0.1.9 git push origin v0.1.9 - JSR publish triggers automatically (or manually via
deno publish)
Quick Reference
# Check current branch
git branch --show-current
# List all branches
git branch -a
# Delete merged branch locally
git branch -d feature/completed-feature
# Delete remote branch
git push origin --delete feature/completed-feature
When to Use Each Type
- feature/: Adding new CLI options, new execution modes, new log formats
- fix/: Correcting bugs, fixing edge cases, resolving issues
- docs/: README updates, adding examples, API documentation
- refactor/: Improving code structure without changing behavior
- test/: Adding missing tests, improving test coverage
- chore/: Dependency updates, CI configuration, tooling changes
Converted and distributed by TomeVault — claim your Tome and manage your conversions.