mirror of
https://github.com/qmk/qmk_firmware.git
synced 2026-09-07 10:53:17 +02:00
Add changelog
This commit is contained in:
@@ -0,0 +1,189 @@
|
|||||||
|
# QMK Breaking Changes - 2026 August 30 Changelog
|
||||||
|
|
||||||
|
## Notable Changes {#notable-changes}
|
||||||
|
|
||||||
|
### Community Modules `1.1.3` ([#26201](https://github.com/qmk/qmk_firmware/pull/26201)) {#community-modules}
|
||||||
|
|
||||||
|
Version 1.1.3 adds support for persistent data in community modules. Modules can now store and restore their own state across restarts, enabling more stateful behavior without relying on keyboard-level EEPROM handling. A reference example can be located at [modules/qmk/nvm_test](https://github.com/qmk/qmk_firmware/tree/develop/modules/qmk/nvm_test).
|
||||||
|
|
||||||
|
See the [Community Modules documentation](../features/community_modules) for more information, including the full list of available hooks.
|
||||||
|
|
||||||
|
### Steno Feature Updates ([#26273](https://github.com/qmk/qmk_firmware/pull/26273), [#26018](https://github.com/qmk/qmk_firmware/pull/26018)) {#steno}
|
||||||
|
|
||||||
|
The steno feature has been reworked around a clearer integration, including a more consistent keycode naming scheme.
|
||||||
|
Users should migrate old `STN_*` and legacy mode names to the new `QK_STENO_*`/`ST_*` naming scheme.
|
||||||
|
|
||||||
|
::: warning
|
||||||
|
Keycode aliases have been put in place in most cases to cater for "old names" being mapped to "new names" -- the documentation already reflects all the new naming of keys.
|
||||||
|
:::
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Full list of updated keycodes</summary>
|
||||||
|
|
||||||
|
| Old Keycode | New Keycode | Aliases |
|
||||||
|
|----------------------|------------------------|--------------------|
|
||||||
|
| `STN_FN` | `QK_STENO_FUNCTION` | `ST_FN` |
|
||||||
|
| `STN_N1`/`STN_NUM` | `QK_STENO_N1` | `ST_N1`/`ST_NUM` |
|
||||||
|
| `STN_N2` | `QK_STENO_N2` | `ST_N2` |
|
||||||
|
| `STN_N3` | `QK_STENO_N3` | `ST_N3` |
|
||||||
|
| `STN_N4` | `QK_STENO_N4` | `ST_N4` |
|
||||||
|
| `STN_N5` | `QK_STENO_N5` | `ST_N5` |
|
||||||
|
| `STN_N6` | `QK_STENO_N6` | `ST_N6` |
|
||||||
|
| `STN_S1`/`STN_SL` | `QK_STENO_S1` | `ST_S1`/`ST_SL` |
|
||||||
|
| `STN_S2` | `QK_STENO_S2` | `ST_S2` |
|
||||||
|
| `STN_TL` | `QK_STENO_TL` | `ST_TL` |
|
||||||
|
| `STN_KL` | `QK_STENO_KL` | `ST_KL` |
|
||||||
|
| `STN_PL` | `QK_STENO_PL` | `ST_PL` |
|
||||||
|
| `STN_WL` | `QK_STENO_WL` | `ST_WL` |
|
||||||
|
| `STN_HL` | `QK_STENO_HL` | `ST_HL` |
|
||||||
|
| `STN_RL` | `QK_STENO_RL` | `ST_RL` |
|
||||||
|
| `STN_A` | `QK_STENO_A` | `ST_A` |
|
||||||
|
| `STN_O` | `QK_STENO_O` | `ST_O` |
|
||||||
|
| `STN_ST1`/`STN_STR` | `QK_STENO_ST1` | `ST_ST1`/`ST_STR` |
|
||||||
|
| `STN_ST2` | `QK_STENO_ST2` | `ST_ST2` |
|
||||||
|
| `STN_RE1`/`STN_RES1` | `QK_STENO_RESET1` | `ST_RES1`/`ST_RE1` |
|
||||||
|
| `STN_RE2`/`STN_RES2` | `QK_STENO_RESET2` | `ST_RES2`/`ST_RE2` |
|
||||||
|
| `STN_PWR` | `QK_STENO_POWER` | `ST_PWR` |
|
||||||
|
| `STN_ST3` | `QK_STENO_ST3` | `ST_ST3` |
|
||||||
|
| `STN_ST4` | `QK_STENO_ST4` | `ST_ST4` |
|
||||||
|
| `STN_E` | `QK_STENO_E` | `ST_E` |
|
||||||
|
| `STN_U` | `QK_STENO_U` | `ST_U` |
|
||||||
|
| `STN_FR` | `QK_STENO_FR` | `ST_FR` |
|
||||||
|
| `STN_RR` | `QK_STENO_RR` | `ST_RR` |
|
||||||
|
| `STN_PR` | `QK_STENO_PR` | `ST_PR` |
|
||||||
|
| `STN_BR` | `QK_STENO_BR` | `ST_BR` |
|
||||||
|
| `STN_LR` | `QK_STENO_LR` | `ST_LR` |
|
||||||
|
| `STN_GR` | `QK_STENO_GR` | `ST_GR` |
|
||||||
|
| `STN_TR` | `QK_STENO_TR` | `ST_TR` |
|
||||||
|
| `STN_SR` | `QK_STENO_SR` | `ST_SR` |
|
||||||
|
| `STN_DR` | `QK_STENO_DR` | `ST_DR` |
|
||||||
|
| `STN_N7` | `QK_STENO_N7` | `ST_N7` |
|
||||||
|
| `STN_N8` | `QK_STENO_N8` | `ST_N8` |
|
||||||
|
| `STN_N9` | `QK_STENO_N9` | `ST_N9` |
|
||||||
|
| `STN_NA` | `QK_STENO_NA` | `ST_NA` |
|
||||||
|
| `STN_NB` | `QK_STENO_NB` | `ST_NB` |
|
||||||
|
| `STN_NC` | `QK_STENO_NC` | `ST_NC` |
|
||||||
|
| `STN_ZR` | `QK_STENO_ZR` | `ST_ZR` |
|
||||||
|
| `STN_SL` | `QK_STENO_S1` | `ST_S1` |
|
||||||
|
| `STN_STR` | `QK_STENO_ST1` | `ST_ST1` |
|
||||||
|
| `STN_S3` | `QK_STENO_S3` | `ST_S3` |
|
||||||
|
| `STN_TKL` | `QK_STENO_TKL` | `ST_TKL` |
|
||||||
|
| `STN_PWL` | `QK_STENO_PWL` | `ST_PWL` |
|
||||||
|
| `STN_HRL` | `QK_STENO_HRL` | `ST_HRL` |
|
||||||
|
| `STN_FRR` | `QK_STENO_FRR` | `ST_FRR` |
|
||||||
|
| `STN_PBR` | `QK_STENO_PBR` | `ST_PBR` |
|
||||||
|
| `STN_LGR` | `QK_STENO_LGR` | `ST_LGR` |
|
||||||
|
| `STN_TSR` | `QK_STENO_TSR` | `ST_TSR` |
|
||||||
|
| `STN_DZR` | `QK_STENO_DZR` | `ST_DZR` |
|
||||||
|
| `STN_AO` | `QK_STENO_AO` | `ST_AO` |
|
||||||
|
| `STN_EU` | `QK_STENO_EU` | `ST_EU` |
|
||||||
|
| `QK_STENO_BOLT` | `QK_STENO_MODE_BOLT` | `ST_BOLT` |
|
||||||
|
| `QK_STENO_GEMINI` | `QK_STENO_MODE_GEMINI` | `ST_GEMI` |
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
Support for the [Plover custom HID protocol](https://github.com/opensteno/plover/releases/tag/v5.1.0) has also been integrated. This provides an alternative to the COM port based Gemini and Bolt protocols, and extends steno support to VUSB based devices.
|
||||||
|
|
||||||
|
::: info Note
|
||||||
|
A tighter integration of the Plover HID protocol into the steno feature is planned for a future release.
|
||||||
|
:::
|
||||||
|
|
||||||
|
See the [Stenography Feature](../features/stenography) documentation for more information.
|
||||||
|
|
||||||
|
### Remove pin ordering restriction in RP2040 ps2 driver ([#26256](https://github.com/qmk/qmk_firmware/pull/26256)) {#rp2040-ps2}
|
||||||
|
|
||||||
|
The RP2040 PS/2 driver no longer requires a strict clock/data pin ordering. This removes an unnecessary wiring restriction for RP2040-based keyboards and allows more valid PS/2 layouts to work without needing to match a specific pin sequence.
|
||||||
|
|
||||||
|
### Restrict the EXTRAKEY_ENABLE System Control HID usage range. ([#26295](https://github.com/qmk/qmk_firmware/pull/26295)) {#extrakey-gamepad}
|
||||||
|
|
||||||
|
QMK now limits the default System Control HID range exposed by `EXTRAKEY_ENABLE` to the safe subset it actually uses. This prevents issues where some hosts to misidentify the device as a gamepad.
|
||||||
|
|
||||||
|
To widen the range to the old behavior, the following can be added to a `config.h`:
|
||||||
|
|
||||||
|
```c
|
||||||
|
#define SYSTEM_CONTROL_USAGE_MINIMUM 0x0001
|
||||||
|
#define SYSTEM_CONTROL_USAGE_MAXIMUM 0x00B7
|
||||||
|
```
|
||||||
|
|
||||||
|
::: warning
|
||||||
|
Only widen it if you need the extra usages and know your host handles them.
|
||||||
|
:::
|
||||||
|
|
||||||
|
### Updated Keyboard Codebases {#updated-keyboard-codebases}
|
||||||
|
|
||||||
|
| Old Keyboard Name | New Keyboard Name |
|
||||||
|
|---------------------|--------------------------|
|
||||||
|
| ducky/one2sf/1967st | ducky/one2sf/1967st/ansi |
|
||||||
|
|
||||||
|
## Deprecation Notices
|
||||||
|
|
||||||
|
In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here.
|
||||||
|
|
||||||
|
### VIA Feature Migration ([#26315](https://github.com/qmk/qmk_firmware/pull/26315)) {#via-module}
|
||||||
|
|
||||||
|
As part of long-term goal to progressively reduce the maintenance burden on the project, upkeep of the VIA integration will transition to the VIA team.
|
||||||
|
|
||||||
|
This allows the VIA team to support many more custom keyboard configurations, as well as reduces the turnaround time for any changes to the VIA protocol they wish to make.
|
||||||
|
|
||||||
|
Backwards compatibility will remain for a transition period and in a future release, the old VIA feature-based implementation is expected to be removed.
|
||||||
|
|
||||||
|
## Full changelist
|
||||||
|
|
||||||
|
Core:
|
||||||
|
* Custom plover HID report type ([#26018](https://github.com/qmk/qmk_firmware/pull/26018))
|
||||||
|
* Enable modules to persist data ([#26201](https://github.com/qmk/qmk_firmware/pull/26201))
|
||||||
|
* Preserve Azoteq mouse buttons ([#26248](https://github.com/qmk/qmk_firmware/pull/26248))
|
||||||
|
* Remove pin ordering restriction in RP2040 ps2 driver ([#26256](https://github.com/qmk/qmk_firmware/pull/26256))
|
||||||
|
* Plover HID cleanup. ([#26262](https://github.com/qmk/qmk_firmware/pull/26262))
|
||||||
|
* repeat_key.c: add implementation for get_last_record ([#26263](https://github.com/qmk/qmk_firmware/pull/26263))
|
||||||
|
* Implement Plover HID for VUSB ([#26267](https://github.com/qmk/qmk_firmware/pull/26267))
|
||||||
|
* process_key_lock: clear entire key state in cancel_key_lock() ([#26269](https://github.com/qmk/qmk_firmware/pull/26269))
|
||||||
|
* Initial rework of steno feature ([#26273](https://github.com/qmk/qmk_firmware/pull/26273))
|
||||||
|
* qp_lvgl: always signal flush ready even with no display ([#26275](https://github.com/qmk/qmk_firmware/pull/26275))
|
||||||
|
* Consistently handle datablock init ([#26282](https://github.com/qmk/qmk_firmware/pull/26282))
|
||||||
|
* Make framebuffer effects honour `rgb_matrix_map_row_column_to_led` ([#26294](https://github.com/qmk/qmk_firmware/pull/26294))
|
||||||
|
* Restrict the EXTRAKEY_ENABLE System Control HID usage range. ([#26295](https://github.com/qmk/qmk_firmware/pull/26295))
|
||||||
|
* Port typing_heatmap animation to LED Matrix ([#26300](https://github.com/qmk/qmk_firmware/pull/26300))
|
||||||
|
* Add `_noeeprom` variants of backlight enable/disable. ([#26328](https://github.com/qmk/qmk_firmware/pull/26328))
|
||||||
|
* Add STM32_USB_USE_OTG2 to USB_ENDPOINTS_ARE_REORDERABLE ([#26369](https://github.com/qmk/qmk_firmware/pull/26369))
|
||||||
|
* Change preprocessor directive for random solenoid firing ([#26377](https://github.com/qmk/qmk_firmware/pull/26377))
|
||||||
|
* Rework Plover HID to use Steno keycodes ([#26421](https://github.com/qmk/qmk_firmware/pull/26421))
|
||||||
|
|
||||||
|
CLI:
|
||||||
|
* Require `--keyboard` for some CLI subcommands ([#26308](https://github.com/qmk/qmk_firmware/pull/26308))
|
||||||
|
* Be lazier in loading keyboard schema for new-keyboard ([#26340](https://github.com/qmk/qmk_firmware/pull/26340))
|
||||||
|
|
||||||
|
Keyboards:
|
||||||
|
* Addition of the Ymdk Oni Tsangan/HHKB-like pcb ([#25230](https://github.com/qmk/qmk_firmware/pull/25230))
|
||||||
|
* Add converter/thinkpad_t6x/pico_t61 keyboard ([#26266](https://github.com/qmk/qmk_firmware/pull/26266))
|
||||||
|
* Add additional layouts for `mkh_studio/bully` ([#26271](https://github.com/qmk/qmk_firmware/pull/26271))
|
||||||
|
* Split `ducky/one2sf/1967st` into `ansi`/`iso` variants ([#26277](https://github.com/qmk/qmk_firmware/pull/26277))
|
||||||
|
* Automatically handle duplicate matrix LED mappings ([#26278](https://github.com/qmk/qmk_firmware/pull/26278))
|
||||||
|
* Tidy sawnsprojects/satxri6key ([#26317](https://github.com/qmk/qmk_firmware/pull/26317))
|
||||||
|
* Update satisfaction75 to only use keyboard datablock ([#26320](https://github.com/qmk/qmk_firmware/pull/26320))
|
||||||
|
* Migrate remaining `VIA_EEPROM_CUSTOM_CONFIG_SIZE` to `EECONFIG_KB_DATA_SIZE` ([#26321](https://github.com/qmk/qmk_firmware/pull/26321))
|
||||||
|
* Use core `spi_init` implementation for gmmk/gmmk2/p96 ([#26344](https://github.com/qmk/qmk_firmware/pull/26344))
|
||||||
|
* Convert `novelkeys/nk87` to use RGB Matrix ([#26349](https://github.com/qmk/qmk_firmware/pull/26349))
|
||||||
|
* Update magic_force/mf17 to WS2812 PWM driver ([#26384](https://github.com/qmk/qmk_firmware/pull/26384))
|
||||||
|
* Keycult TKL Updates ([#26385](https://github.com/qmk/qmk_firmware/pull/26385))
|
||||||
|
* Update keyboards to implement `led_update_kb` instead of `led_set` ([#26388](https://github.com/qmk/qmk_firmware/pull/26388))
|
||||||
|
|
||||||
|
Keyboard fixes:
|
||||||
|
* Fix nifty_numpad issues ([#26283](https://github.com/qmk/qmk_firmware/pull/26283))
|
||||||
|
* Fix use of `via.h` ([#26316](https://github.com/qmk/qmk_firmware/pull/26316))
|
||||||
|
|
||||||
|
Others:
|
||||||
|
* Update RGB Matrix documentation to include JSON config ([#26187](https://github.com/qmk/qmk_firmware/pull/26187))
|
||||||
|
* Update encoder documents for json config ([#26188](https://github.com/qmk/qmk_firmware/pull/26188))
|
||||||
|
* Update LED Matrix documentation to include JSON config ([#26425](https://github.com/qmk/qmk_firmware/pull/26425))
|
||||||
|
|
||||||
|
Bugs:
|
||||||
|
* First pass of ruff check fixes ([#26257](https://github.com/qmk/qmk_firmware/pull/26257))
|
||||||
|
* Use `memmove` for overlapping copies in RGB/LED matrix last-hit tracker ([#26306](https://github.com/qmk/qmk_firmware/pull/26306))
|
||||||
|
* Fix to make Repeat Key QK_REP work with Key Overrides. ([#26312](https://github.com/qmk/qmk_firmware/pull/26312))
|
||||||
|
* Fix SEQUENCER_ENABLE so the sequencer feature builds again ([#26322](https://github.com/qmk/qmk_firmware/pull/26322))
|
||||||
|
* Fix ChibiOS virtual serial short packet receive ([#26356](https://github.com/qmk/qmk_firmware/pull/26356))
|
||||||
|
* Resolve recursive keyboard aliases when locating userspace keymaps ([#26402](https://github.com/qmk/qmk_firmware/pull/26402))
|
||||||
|
* Fix `EECONFIG_MODULE_DATA_SIZE` for modules with zero provisioned eeconfig ([#26414](https://github.com/qmk/qmk_firmware/pull/26414))
|
||||||
|
* Align USB endpoint buffers to fix RP2040 Plover HID issues ([#26417](https://github.com/qmk/qmk_firmware/pull/26417))
|
||||||
|
* Fix 'qmk generate-develop-pr-list' for ghapi v2 ([#26428](https://github.com/qmk/qmk_firmware/pull/26428))
|
||||||
+1
-1
@@ -214,7 +214,7 @@
|
|||||||
{ "text": "My Pull Request Was Flagged", "link": "/breaking_changes_instructions" },
|
{ "text": "My Pull Request Was Flagged", "link": "/breaking_changes_instructions" },
|
||||||
{
|
{
|
||||||
"text": "Most Recent ChangeLog",
|
"text": "Most Recent ChangeLog",
|
||||||
"link": "/ChangeLog/20260531"
|
"link": "/ChangeLog/20260830"
|
||||||
},
|
},
|
||||||
{ "text": "Past Breaking Changes", "link": "/breaking_changes_history" },
|
{ "text": "Past Breaking Changes", "link": "/breaking_changes_history" },
|
||||||
{ "text": "Deprecation Policy", "link": "/support_deprecation_policy" }
|
{ "text": "Deprecation Policy", "link": "/support_deprecation_policy" }
|
||||||
|
|||||||
+10
-10
@@ -10,25 +10,25 @@ Practically, this means QMK merges the `develop` branch into the `master` branch
|
|||||||
|
|
||||||
## What has been included in past Breaking Changes?
|
## What has been included in past Breaking Changes?
|
||||||
|
|
||||||
|
* [2026 Aug 30](ChangeLog/20260830)
|
||||||
* [2026 May 31](ChangeLog/20260531)
|
* [2026 May 31](ChangeLog/20260531)
|
||||||
* [2026 Feb 22](ChangeLog/20260222)
|
* [2026 Feb 22](ChangeLog/20260222)
|
||||||
* [2025 Nov 30](ChangeLog/20251130)
|
|
||||||
* [Older Breaking Changes](breaking_changes_history)
|
* [Older Breaking Changes](breaking_changes_history)
|
||||||
|
|
||||||
## When is the next Breaking Change?
|
## When is the next Breaking Change?
|
||||||
|
|
||||||
The next Breaking Change is scheduled for Aug 30, 2026.
|
The next Breaking Change is scheduled for November 29, 2026.
|
||||||
|
|
||||||
### Important Dates
|
### Important Dates
|
||||||
|
|
||||||
* 2025 May 31 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
|
* 2025 Aug 30 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions.
|
||||||
* 2026 Aug 2 - `develop` closed to new PRs.
|
* 2026 Nov 1 - `develop` closed to new PRs.
|
||||||
* 2026 Aug 2 - Call for testers.
|
* 2026 Nov 1 - Call for testers.
|
||||||
* 2026 Aug 16 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
|
* 2026 Nov 15 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes
|
||||||
* 2026 Aug 23 - `develop` is locked, only critical bugfix PRs merged.
|
* 2026 Nov 22 - `develop` is locked, only critical bugfix PRs merged.
|
||||||
* 2026 Aug 28 - `master` is locked, no PRs merged.
|
* 2026 Nov 27 - `master` is locked, no PRs merged.
|
||||||
* 2026 Aug 30 - Merge `develop` to `master`.
|
* 2026 Nov 29 - Merge `develop` to `master`.
|
||||||
* 2026 Aug 30 - `master` is unlocked. PRs can be merged again.
|
* 2026 Nov 29 - `master` is unlocked. PRs can be merged again.
|
||||||
|
|
||||||
## What changes will be included?
|
## What changes will be included?
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
This page links to all previous changelogs from the QMK Breaking Changes process.
|
This page links to all previous changelogs from the QMK Breaking Changes process.
|
||||||
|
|
||||||
|
* [2026 Aug 30](ChangeLog/20260830) - version 0.34.0
|
||||||
* [2026 May 31](ChangeLog/20260531) - version 0.33.0
|
* [2026 May 31](ChangeLog/20260531) - version 0.33.0
|
||||||
* [2026 Feb 22](ChangeLog/20260222) - version 0.32.0
|
* [2026 Feb 22](ChangeLog/20260222) - version 0.32.0
|
||||||
* [2025 Nov 30](ChangeLog/20251130) - version 0.31.0
|
* [2025 Nov 30](ChangeLog/20251130) - version 0.31.0
|
||||||
|
|||||||
Reference in New Issue
Block a user