diff --git a/.github/mergify.yml b/.github/mergify.yml new file mode 100644 index 000000000..9a0b45177 --- /dev/null +++ b/.github/mergify.yml @@ -0,0 +1,48 @@ +defaults: + actions: + backport: + assignees: + - "{{ author }}" + +queue_rules: + - name: default + conditions: + - "#approved-reviews-by>=1" + +pull_request_rules: + - name: automerge to the base branch with label automerge and branch protection passing + conditions: + - "#approved-reviews-by>=1" + - base=main + - label=A:automerge + actions: + queue: + name: default + method: squash + commit_message_template: | + {{ title }} (#{{ number }}) + {{ body }} + - name: backport patches to osmosis-main branch + conditions: + - base=main + - label=A:backport/osmosis-main + actions: + backport: + branches: + - osmosis-main + - name: backport patches to v22.x branch + conditions: + - base=main + - label=A:backport/v22.x + actions: + backport: + branches: + - v22.x + - name: backport patches to v23.x branch + conditions: + - base=main + - label=A:backport/v23.x + actions: + backport: + branches: + - v23.x diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..03e971c4c --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,22 @@ +# Contributing Guidelines + +## Branch Management + +While in [osmosis](https://github.com/osmosis-labs/osmosis), we develop against a `main` branch and then backport to release branches such as [v21.x](https://github.com/osmosis-labs/osmosis/tree/v21.x). + +Each release branch and the main branch might rely on incompatible dependencies. +Therefore, we must maintain parity between SQS and Osmosis branches. + +While in `osmosis`, `main` is the default working branch, this is not the case in `sqs`. + +Here, we always develop on the currently live major branch (e.g. `v21.x`) by default but keep backporting with [labels](https://github.com/osmosis-labs/sqs/tree/main/.github/mergify.yml) to `main` branch. + +Once chain upgrades to the next major, cut a new release branch (e.g. `v22.x` ) from `main` in `sqs`, +make `v22.x` as default and completely drop the old `v21.x` while continuing to backport to `main`. + +To sum up, +- `sqs/vx.x` always references `osmosis/v.x.x` + * This is the default repository branch +- `sqs/main` always references `osmosis/main` + * This is the branch we maintain to cut the new major branch once chain release happens +