Contents
Merge Branch to Main
Objective
Commit all changes on the current branch and merge into main with proper commit messages.
Steps
1. Review Current Changes
- Run
git statusto see all uncommitted changes - Review the changes to ensure they’re ready for commit
- Check that no temporary files or debug code is included
2. Verify Tests Pass
Before committing, ensure all tests pass:
# Unit tests
./scripts/test-unit.sh
# E2E tests (local)
./scripts/test-e2e-local.sh
# E2E tests (Docker - if product code changed)
./scripts/test-e2e-docker.sh --rebuild
3. Commit Current Branch
- Create a descriptive commit message that:
- Summarizes what was changed/added/fixed
- Uses imperative mood (e.g., “Add feature” not “Added feature”)
- Includes context if the change is part of a larger effort
- Stage all relevant changes:
git add -A - Commit:
git commit -m "Your message here"
4. Merge to Main
- Checkout main:
git checkout main - Pull latest:
git pull origin main(if working with remote) - Merge your branch:
git merge your-branch-name - The merge commit message should:
- Summarize ALL work done in this branch beyond main
- Highlight key features/changes added
- Note any breaking changes (especially SQL API changes)
- Reference related issues/PRs if applicable
5. Push to Remote
- Push main:
git push origin main - Verify the push succeeded
6. Deploy (Optional)
If deploying to ACR after merge:
# Login to ACR (if not already)
az acr login --name ${ACR_REGISTRY%%.*}
# Deploy
./scripts/deploy-acr.sh
Guidelines
- DO NOT use
--forceor--force-with-leaseunless explicitly instructed - DO NOT skip commit hooks with
--no-verify - DO NOT commit or merge without user approval
- DO ensure all tests pass before merging
- DO run
cargo fmtandcargo clippy --features pg17before committing - DO create meaningful commit messages that future readers can understand
Example Commit Messages
Good branch commit: ``` Add new operators for control flow
- Implement & operator for parallel join
- Implement | operator for race
- Implement ?> and !> operators for if-then-else
- Implement @> operator for loop
- Update all E2E tests with operator variants ```
Good merge commit: ``` Merge feature-operators: Add SQL operators for all DSL functions
This branch adds intuitive SQL operators for pg_durable:
- & for parallel join (df.join)
- | for race (df.race)
- ?> and !> for conditionals (df.if)
- @> for loops (df.loop)
Also includes: - Schema renamed from ‘durable’ to ‘df’ - E2E tests updated with both operator and function variants - USER_GUIDE.md updated with new syntax - LLM prompts for development tasks
Breaking changes: - Schema renamed: durable. -> df. - All SQL functions now under df schema ```
Pre-Commit Checklist
Before asking user to approve commit:
- [ ]
cargo build --features pg17succeeds - [ ]
cargo clippy --features pg17has no warnings - [ ]
cargo fmt --checkshows no changes needed - [ ]
./scripts/test-unit.shpasses - [ ]
./scripts/test-e2e-local.shpasses (all tests) - [ ] No debug/temporary code left in changes
- [ ] Commit message is descriptive and accurate