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

QMK Breaking Changes - 2021 February 27 Changelog

Changes Requiring User Action

The following keyboards have had their source moved within QMK:

Old Keyboard NameNew Keyboard Name
bear_65jacky_studio/bear_65
s7_elephant/rev1jacky_studio/s7_elephant/rev1
s7_elephant/rev2jacky_studio/s7_elephant/rev2
aplx6aplyard/aplx6/rev1
southpaw75fr4/southpaw75

The Aplyard Aplx6 rev2 and the FR4Boards Unix60 have also been added as part of these changes.

Additionally, the handwired/bluepill/bluepill70 keyboard has been removed.

Core Changes

ChibiOS Update and Config Migration

QMK's ChibiOS and ChibiOS-Contrib submodules have been updated to version 20.3.2.

Along with this, QMK now provides default configuration files for all commonly-supported ARM microcontrollers running on ChibiOS. As such, keyboards are now only required to define settings which differ from the defaults, thereby reducing the size of pull requests for keyboards running atop ChibiOS.

QMK Infrastructure and Internals

Python is now required to build QMK. The minimum Python version has been increased to 3.7.

The power of info.json has been massively expanded. Most keyboard parameters can now be expressed in info.json instead of config.h/rules.mk. This should make maintaining keyboards easier, and will enable tooling that can allow non-technical users to add and maintain QMK keyboards without writing any code.

To ease migration a new command has been provided, qmk generate-info-json -kb <keyboard>. You can use this command to generate a complete info.json file for a keyboard and then remove the duplicate information from config.h and rules.mk.

Detailed example showing how to generate a new info.json and identify duplicate keys:

user@hostname:~/qmk_firmware/keyboards/lets_split:0$ qmk generate-info-json > new-info.json\nuser@hostname:~/qmk_firmware/keyboards/lets_split:0$ mv new-info.json info.json\nuser@hostname:~/qmk_firmware/keyboards/lets_split:0$ qmk info\n⚠ lets_split/rev2: DEBOUNCE in config.h is overwriting debounce in info.json\n⚠ lets_split/rev2: DEVICE_VER in config.h is overwriting usb.device_ver in info.json\n⚠ lets_split/rev2: DIODE_DIRECTION in config.h is overwriting diode_direction in info.json\n⚠ lets_split/rev2: MANUFACTURER in config.h is overwriting manufacturer in info.json\n⚠ lets_split/rev2: RGB_DI_PIN in config.h is overwriting rgblight.pin in info.json\n⚠ lets_split/rev2: RGBLED_NUM in config.h is overwriting rgblight.led_count in info.json\n⚠ lets_split/rev2: PRODUCT_ID in config.h is overwriting usb.pid in info.json\n⚠ lets_split/rev2: VENDOR_ID in config.h is overwriting usb.vid in info.json\n⚠ lets_split/rev2: Matrix pins are specified in both info.json and config.h, the config.h values win.\n⚠ lets_split/rev2: LAYOUTS in rules.mk is overwriting community_layouts in info.json\n⚠ lets_split/rev2: Feature bootmagic is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature mousekey is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature extrakey is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature console is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature command is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature nkro is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature backlight is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature midi is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature audio is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature unicode is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature bluetooth is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature rgblight is specified in both info.json and rules.mk, the rules.mk value wins.\n⚠ lets_split/rev2: Feature sleep_led is specified in both info.json and rules.mk, the rules.mk value wins.\nKeyboard Name: Let's Split\nManufacturer: Wootpatoot\nWebsite:\nMaintainer: QMK Community\nKeyboard Folder: lets_split/rev2\nLayouts: LAYOUT, LAYOUT_ortho_4x12\nSize: 13 x 4\nProcessor: atmega32u4\nBootloader: caterina

Detailed Change List

Changes Requiring User Action

Fixes

Additions and Enhancements

Clean-ups and Optimizations

QMK Infrastructure and Internals

ChibiOS Update and Config Migration

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