Git Workflow¶
Git workflow and branching strategy for FL Studio MCP Server.
Overview¶
We use git-flow with Conventional Commits.
Branch Types¶
Main Branches¶
main- Production codedevelop- Development integration
Supporting Branches¶
feature/*- New featuresbugfix/*- Bug fixeshotfix/*- Production fixesrelease/*- Release preparation
Creating Branches¶
Feature Branch¶
Bugfix Branch¶
Hotfix Branch¶
Commit Messages¶
Format¶
Types¶
feat: New featurefix: Bug fixdocs: Documentationstyle: Formattingrefactor: Code restructuringtest: Testschore: Maintenanceperf: Performanceci: CI/CD
Examples¶
git commit -m "feat: add pitch bend support"
git commit -m "fix(midi): resolve connection timeout"
git commit -m "docs: update installation guide"
git commit -m "test: add edge case tests"
Merging Strategy¶
Feature → Develop¶
Bugfix → Develop¶
Hotfix → Main¶
# From hotfix branch
git push origin hotfix/critical-fix
# Create PR to main on GitHub
# Then merge back to develop
Release → Main + Develop¶
# From release branch
git push origin release/v1.1.0
# Create PR to main on GitHub
# Then merge to develop
Git Hooks¶
Install Hooks¶
Hooks¶
commit-msg- Validates commit formatpre-commit- Runs linter/formatterpre-push- Validates branch and runs testsprepare-commit-msg- Helps format messages
Pull Requests¶
PR Title¶
Must follow Conventional Commits:
PR Description¶
Use the template, include:
- Description of changes
- Related issues
- Testing performed
- Breaking changes (if any)
PR Review¶
- At least 1 approval required
- All CI checks must pass
- Coverage must not decrease
Protected Branches¶
Main/Master¶
- No direct pushes
- Requires PR
- Requires passing CI
- Requires approval
Develop¶
- No direct pushes
- Requires PR
- Requires passing CI
Release Process¶
Version Bumping¶
# Update version in:
# - pyproject.toml
# - src/fruityloops_mcp/__init__.py
git add pyproject.toml src/fruityloops_mcp/__init__.py
git commit -m "chore: bump version to 1.1.0"
Creating Release¶
# Create and push tag
git tag v1.1.0
git push origin v1.1.0
# GitHub Actions will:
# - Build package
# - Create GitHub release
# - Publish to PyPI
Common Workflows¶
Starting New Feature¶
git checkout develop
git pull origin develop
git checkout -b feature/my-feature
# Make changes
git add .
git commit -m "feat: add my feature"
git push origin feature/my-feature
# Create PR on GitHub
Fixing a Bug¶
git checkout develop
git pull origin develop
git checkout -b bugfix/fix-issue
# Fix bug
git add .
git commit -m "fix: resolve issue"
git push origin bugfix/fix-issue
# Create PR on GitHub
Hot-fixing Production¶
git checkout main
git pull origin main
git checkout -b hotfix/critical-fix
# Fix critical issue
git add .
git commit -m "fix: critical security issue"
git push origin hotfix/critical-fix
# Create PR to main
# After merge, backport to develop
Tips¶
Keeping Up to Date¶
# Update your branch with develop
git checkout feature/my-feature
git fetch origin
git rebase origin/develop
Resolving Conflicts¶
# If conflicts during rebase
git status # See conflicted files
# Edit files to resolve
git add <resolved-files>
git rebase --continue