diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md index f0aff303a9e..cae6bf49d00 100644 --- a/docs/breaking_changes.md +++ b/docs/breaking_changes.md @@ -26,13 +26,14 @@ The next Breaking Change is scheduled for August 27, 2022. ### Important Dates -* [x] 2022 May 28 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. -* [ ] 2022 Jul 31 - `develop` closed to new PR's. -* [ ] 2022 Jul 31 - Call for testers. -* [ ] 2022 Aug 13 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes -* [ ] 2022 Aug 25 - `master` is locked, no PR's merged. -* [ ] 2022 Aug 27 - Merge `develop` to `master`. -* [ ] 2022 Aug 27 - `master` is unlocked. PR's can be merged again. +* 2022 May 28 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. +* 2022 Jul 31 - `develop` closed to new PR's. +* 2022 Jul 31 - Call for testers. +* 2022 Aug 13 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes +* 2022 Aug 20 - `develop` is locked, only critical bugfix PR's merged. +* 2022 Aug 25 - `master` is locked, no PR's merged. +* 2022 Aug 27 - Merge `develop` to `master`. +* 2022 Aug 27 - `master` is unlocked. PR's can be merged again. ## What changes will be included? @@ -54,53 +55,47 @@ This section documents various processes we use when running the Breaking Change ### 4 Weeks Before Merge * `develop` is now closed to new PR's, only fixes for current PR's may be merged -* Post call for testers - * [ ] Discord - * [ ] GitHub PR - * [ ] https://reddit.com/r/olkb +* Post call for testers: message `@Breaking Changes Updates` on `#qmk_firmware` in Discord: + * `@Breaking Changes Updates -- Hey folks, last day for functional PRs to be raised against qmk_firmware for this breaking changes cycle is today.` ### 2 Weeks Before Merge * `develop` is now closed to existing PR merges, only bugfixes for previous merges may be included -* Post call for testers - * [ ] Discord - * [ ] GitHub PR - * [ ] https://reddit.com/r/olkb +* Post call for testers: message `@Breaking Changes Updates` on `#qmk_firmware` in Discord. + * `@Breaking Changes Updates -- Hey folks, last day for functional PRs to be merged into qmk_firmware for this breaking changes cycle is today. After that, we're handling bugfixes only.` ### 1 Week Before Merge -* Announce that master will be closed from <2 Days Before> to - * [ ] Discord - * [ ] GitHub PR - * [ ] https://reddit.com/r/olkb +* `develop` is now closed to PR merges, only critical bugfixes may be included +* Announce that master will be closed from <2 Days Before> to -- message `@Breaking Changes Updates` on `#qmk_firmware` in Discord: + * `@Breaking Changes Updates -- Hey folks, last day for functional PRs to be merged into qmk_firmware for this breaking changes cycle is today. After that, we're handling bugfixes only.` ### 2 Days Before Merge +* `master` is now closed to PR merges * Announce that master is closed for 2 days - * [ ] Discord - * [ ] GitHub PR - * [ ] https://reddit.com/r/olkb + * `@Breaking Changes Updates -- Hey folks, the master branch of qmk_firmware is now locked for the next couple of days while we prepare to merge the newest batch of changes from develop.` ### Day Of Merge * `qmk_firmware` git commands - * [ ] `git checkout develop` - * [ ] `git pull --ff-only` - * [ ] Edit `readme.md` - * [ ] Remove the notes about `develop` - * [ ] Roll up the ChangeLog into one file. - * [ ] `git commit -m 'Merge point for Breaking Change'` - * [ ] `git push upstream develop` + * `git checkout develop` + * `git pull --ff-only` + * Edit `readme.md` + * Remove the notes about `develop` + * Roll up the ChangeLog into one file. + * `git commit -m 'Merge point for Breaking Change'` + * `git push upstream develop` * GitHub Actions - * [ ] Create a PR for `develop` - * [ ] **Turn off 'Automatically delete head branches' for the repository** -- confirm with @qmk/directors that it is done before continuing + * Create a PR for `develop` + * **Turn off 'Automatically delete head branches' for the repository** -- confirm with @qmk/directors that it is done before continuing * `qmk_firmware` git commands - * [ ] `git checkout master` - * [ ] `git pull --ff-only` - * [ ] `git merge --no-ff develop` - * [ ] `git tag ` # Prevent the breakpoint tag from confusing version incrementing - * [ ] `git push upstream ` - * [ ] `git push upstream master` + * `git checkout master` + * `git pull --ff-only` + * `git merge --no-ff develop` + * `git tag ` # Prevent the breakpoint tag from confusing version incrementing + * `git push upstream ` + * `git push upstream master` ## Post-merge operations @@ -109,28 +104,68 @@ This section documents various processes we use when running the Breaking Change This happens immediately after the previous `develop` branch is merged to `master`. * `qmk_firmware` git commands - * [ ] `git checkout master` - * [ ] `git pull --ff-only` - * [ ] `git checkout develop` - * [ ] `git pull --ff-only` - * [ ] `git merge --no-ff master` - * [ ] Edit `readme.md` - * [ ] Add a big notice at the top that this is a testing branch. - * [ ] Include a link to this document - * [ ] `git commit -m 'Branch point for Breaking Change'` - * [ ] `git tag breakpoint___
` - * [ ] `git push upstream breakpoint___
` - + * `git checkout master` + * `git pull --ff-only` + * `git checkout develop` + * `git pull --ff-only` + * `git merge --no-ff master` + * Edit `readme.md` + * Add a big notice at the top that this is a testing branch. + * Include a link to this document + * `git commit -m 'Branch point for Breaking Change'` + * `git tag breakpoint___
` + * `git push upstream breakpoint___
` + * All submodules under `lib` now need to be checked against their QMK-based forks: - * [ ] `git submodule foreach git log -n1` - * [ ] Validate each submodule SHA1 matches the qmk fork, e.g. for ChibiOS: + * `git submodule foreach git log -n1` + * Validate each submodule SHA1 matches the qmk fork, e.g. for ChibiOS: * Go to [qmk/ChibiOS](https://github.com/qmk/ChibiOS) * Compare the commit hash in the above output to the commit hash in the repository * If there's a mismatch: - * [ ] `cd lib/chibios` - * [ ] `git fetch --all` - * [ ] `git checkout master` - * [ ] `git reset --hard ` - * [ ] `git push origin master --force-with-lease` + * `cd lib/chibios` + * `git fetch --all` + * `git checkout master` + * `git reset --hard ` + * `git push origin master --force-with-lease` * (Optional) [update ChibiOS + ChibiOS-Contrib on `develop`](chibios_upgrade_instructions.md) + +### Set up Discord events for the next cycle + +* Update this file with the new dates: `docs/breaking_changes.md` +* Create Events on the QMK Discord - "Somewhere Else" => "GitHub": + * Event #1: + | Field | Value | + |-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | Topic | Last `develop` functionality PRs to be raised | + | Start Date | ((5 weeks before merge)), 12:00am | + | End Date | ((4 weeks before merge)), 12:00am | + | Description | This is the last window for functional PRs to be raised against `develop` for the current breaking changes cycle. After ((4 weeks before merge)), any new PRs targeting `develop` will be deferred to the next cycle. | + * Event #2: + | Field | Value | + |-------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | Topic | Last `develop` functionality PRs to be merged | + | Start Date | ((4 weeks before merge)), 12:00am | + | End Date | ((2 weeks before merge)), 12:00am | + | Description | This is the last window for functional PRs to be merged into `develop` for the current breaking changes cycle. After ((2 weeks before merge)), only bugfix PRs targeting `develop` will be considered for merge. | + * Event #3: + | Field | Value | + |-------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | Topic | `develop` closed for merges | + | Start Date | ((2 weeks before merge)), 12:00am | + | End Date | ((day of merge)), 12:00am | + | Description | This is the deadline for functionality bugfix PRs to be merged into `develop` for the current breaking changes cycle. After ((1 week before merge)), only critical bugfix PRs targeting `develop` will be considered for merge. | + * Event #4: + | Field | Value | + |-------------|----------------------------------------------------------------------------------------------------------------------| + | Topic | `master` closed for merges | + | Start Date | ((2 days before merge)), 12:00am | + | End Date | ((day of merge)), 12:00am | + | Description | This is the period that no PRs are to be merged to `master`, so that the merge of `develop` into `master` is stable. | + * Event #5: + | Field | Value | + |-------------|--------------------------------------------------------------------------------------------------------------------------------------------| + | Topic | `develop` merges to `master` | + | Start Date | ((day of merge)), 12:00am | + | End Date | ((day of merge)), 11:45pm | + | Description | At some point, QMK will merge `develop` into `master` and everyone will be able to reap the benefits of the newest batch of functionality. |