import { _ as _export_sfc, c as createElementBlock, o as openBlock, a8 as createStaticVNode } from "./chunks/framework.DyMmIvSC.js"; const __pageData = JSON.parse('{"title":"Breaking Changes","description":"","frontmatter":{},"headers":[],"relativePath":"breaking_changes.md","filePath":"breaking_changes.md"}'); const _sfc_main = { name: "breaking_changes.md" }; const _hoisted_1 = /* @__PURE__ */ createStaticVNode('

Breaking Changes

This document describes QMK's Breaking Change process. A Breaking Change is any change which modifies how QMK behaves in a way that in incompatible or potentially dangerous. We limit these changes so that users can have confidence that updating their QMK tree will not break their keymaps.

This also includes any keyboard moves within the repository.

The breaking change period is when we will merge PRs that change QMK in dangerous or unexpected ways. There is a built-in period of testing so we are confident that any problems caused are rare or unable to be predicted.

Practically, this means QMK merges the develop branch into the master branch on a 3-month cadence.

What has been included in past Breaking Changes?

When is the next Breaking Change?

The next Breaking Change is scheduled for November 24, 2024.

Important Dates

What changes will be included?

To see a list of breaking changes merge candidates you can look at the core label. This label is applied whenever a PR is raised or changed, but only if the PR includes changes to core areas of QMK Firmware. A PR with that label applied is not guaranteed to be merged in the current cycle. New changes might be added between now and when develop is closed, and it is generally the responsibility of the submitter to handle conflicts. There is also another label used by QMK Collaborators -- breaking_change_YYYYqN -- which signifies to maintainers that it is a strong candidate for inclusion, and should be prioritized for review.

If you want your breaking change to be included in this round you need to create a PR and have it accepted by QMK Collaborators before develop closes. After develop closes, new submissions will be deferred to the next breaking changes cycle.

The simpler your PR is, the easier it is for maintainers to review, thus a higher likelihood of a faster merge. Large PRs tend to require a lot of attention, refactoring, and back-and-forth with subsequent reviews -- with other PRs getting merged in the meantime larger unmerged PRs are far more likely to be susceptible to conflicts.

Criteria for acceptance:

Strongly suggested:

Checklists

This section documents various processes we use when running the Breaking Changes process.

4 Weeks Before Merge

2 Weeks Before Merge

1 Week Before Merge

2 Days Before Merge

Day Of Merge

Post-merge operations

Updating the develop branch

This happens immediately after the previous develop branch is merged to master.

Set up Discord events for the next cycle

', 37); const _hoisted_38 = [ _hoisted_1 ]; function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { return openBlock(), createElementBlock("div", null, _hoisted_38); } const breaking_changes = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]); export { __pageData, breaking_changes as default };