Skip to content

Developer Workflow

Jason Rhubottom edited this page Apr 20, 2026 · 1 revision

Developer Workflow

Branch Strategy

We use a feature-branch workflow:

main (production releases)
  β”œβ”€β”€ feature/new-feature
  β”œβ”€β”€ feature/bug-fix
  └── feature/enhancement

Rules:

  • main branch contains stable, production-ready code
  • Create feature branches for all changes
  • Beta releases are created from feature branches
  • Production releases are created from main branch only

Creating a Feature Branch

# Update main
git checkout main
git pull origin main

# Create feature branch
git checkout -b feature/my-new-feature

# Make changes, commit, push
git add .
git commit -m "feat: Add new feature"
git push origin feature/my-new-feature

Commit Message Conventions

We follow the Conventional Commits specification:

<type>: <description>

[optional body]

[optional footer]

Types:

  • feat: - New feature
  • fix: - Bug fix
  • docs: - Documentation only changes
  • style: - Code style changes (formatting, missing semicolons, etc.)
  • refactor: - Code refactoring without changing functionality
  • test: - Adding or updating tests
  • chore: - Maintenance tasks (dependencies, tooling, etc.)

Examples:

# Feature
git commit -m "feat: Add lux threshold configuration option"

# Bug fix
git commit -m "fix: Correct manual override detection for open/close-only covers"

# Documentation
git commit -m "docs: Update README with new diagnostic sensors"

# Chore
git commit -m "chore: Bump version to v2.5.0-beta.7"

Pre-commit Hooks

Pre-commit hooks run automatically when you commit:

  • Ruff linting - Code quality checks
  • Ruff formatting - Code formatting
  • Prettier - YAML/JSON formatting
  • Trailing whitespace - Remove trailing whitespace
  • End-of-file fixer - Ensure files end with newline

If a hook fails:

  1. Review the changes made by auto-fix
  2. Stage the fixed files: git add .
  3. Commit again: git commit -m "your message"

To skip hooks (not recommended):

git commit --no-verify -m "your message"

Clone this wiki locally