|
@@ -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 <Day of Merge>
|
|
|
- * [ ] 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 <Day of Merge> -- 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 <DATE> 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 <DATE> 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 <next_version>` # Prevent the breakpoint tag from confusing version incrementing
|
|
|
- * [ ] `git push upstream <next_version>`
|
|
|
- * [ ] `git push upstream master`
|
|
|
+ * `git checkout master`
|
|
|
+ * `git pull --ff-only`
|
|
|
+ * `git merge --no-ff develop`
|
|
|
+ * `git tag <next_version>` # Prevent the breakpoint tag from confusing version incrementing
|
|
|
+ * `git push upstream <next_version>`
|
|
|
+ * `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 <DATE> Breaking Change'`
|
|
|
- * [ ] `git tag breakpoint_<YYYY>_<MM>_<DD>`
|
|
|
- * [ ] `git push upstream breakpoint_<YYYY>_<MM>_<DD>`
|
|
|
-
|
|
|
+ * `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 <DATE> Breaking Change'`
|
|
|
+ * `git tag breakpoint_<YYYY>_<MM>_<DD>`
|
|
|
+ * `git push upstream breakpoint_<YYYY>_<MM>_<DD>`
|
|
|
+
|
|
|
* 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 <commit hash>`
|
|
|
- * [ ] `git push origin master --force-with-lease`
|
|
|
+ * `cd lib/chibios`
|
|
|
+ * `git fetch --all`
|
|
|
+ * `git checkout master`
|
|
|
+ * `git reset --hard <commit hash>`
|
|
|
+ * `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. |
|