From 85030aa4a0a33e2bd0b6ea008d63aa32fdcabfb9 Mon Sep 17 00:00:00 2001 From: Parshan Date: Tue, 21 Apr 2026 13:04:05 +0100 Subject: [PATCH] Document squash-only merge policy --- .github/PULL_REQUEST_TEMPLATE.md | 1 + CONTRIBUTING.md | 3 +++ 2 files changed, 4 insertions(+) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 725891b..5ad7b55 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -12,3 +12,4 @@ - this PR targets `main` from a non-`main` feature branch - required CI is expected to pass before merge +- this PR is expected to land with squash merge diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8fcb4df..af2bf77 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,8 +8,10 @@ 4. Run the strongest local verification you can before opening a PR. 5. Open a pull request into `main`. 6. Merge only after required CI is green. +7. Merge with squash merge so each PR lands as one commit on `main`. Direct pushes to `main` are not part of this repo workflow. The `main` branch is protected and changes should land through pull requests, including maintainers' own changes. +`main` also enforces linear history, so merge commits and rebase merges are not part of the repo workflow. Suggested branch naming: @@ -45,6 +47,7 @@ Use `make build-ios` when you need an iOS build check and your machine has the r - include screenshots for UI changes when relevant - keep the PR focused enough to review cleanly - do not open a PR until the branch is in a state that can pass required CI +- expect the PR to land with squash merge, not merge commit or rebase merge ## Before Opening A PR