Skip to content

Commit

Permalink
[pull] master from qmk:master (#59)
Browse files Browse the repository at this point in the history
* [Keyboard] Add MECHWILD BB65 (#23581)

Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* [Keyboard] Add SIRIND TOMAK (#23554)

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* [Keyboard] add jaykeeb jk65 (#23536)

* [Keyboard] Fatotesa - custom asymmetric split keyboard  (#23528)

Co-authored-by: jack <0x6a73@protonmail.com>

* [Keyboard] Vault35 WKL universal (#23519)

* Add ScottoWing keyboard (#23513)

Co-authored-by: jack <0x6a73@protonmail.com>

* MechKeys ACR60 Layout Updates (#23309)

* Uniform ISO Enter key sequence in JIS Community Layouts (#23181)

* Add EC Virgo (#23173)

Co-authored-by: jack <0x6a73@protonmail.com>

* Add EC Type-B (#23170)

* Add EC TKL (#23177)

* Add EC660C (#23171)

* Add EC Dolice (#23178)

* Add EC Vero (#23176)

* Add EC Menhir (#23175)

* Add Chroma Support (#22889)

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>

* Add EC980C (#23172)

* Align 'qmk lint' argument handling (#23297)

* [Keyboard] 3x3macropad (#23594)

Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Refactoring successive press() -> release() calls (#23573)

* [Keyboard] Add imi60 (#23570)

Co-authored-by: Drashna Jaelre <drashna@live.com>

* [Keyboard] add Bruce the keyboard (#23639)

* [Keyboard] Add skiller_sgk50_s4 keyboard (#23636)

Co-authored-by: wb <wb@westberrytech.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* [Keyboard] Add DK Saver Redux (#23510)

* Epomaker Tide 65: Layout Data Cleanup (#23643)

* [Keyboard] Add N87 (#23457)

* Add MacOS Czech ISO and ANSI keymaps #23346 (#23412)

* refactor: mechwild/waka60 (#23423)

* add Bruce le Clavier (#23640)

* add tkl_(ansi|iso)_wkl* community layouts (#21809)

* update layouts/default/readme.md

* add tkl_wkl layouts to layouts/default

* amend layouts/default/readme.md

* `tsangan_wkl` to `wkl`

* Update readme.md

* update keymap.c

* local testing corrections applied

* add layouts/community readmes

* minor text correction(s)

* Apply suggestions from code review

* further copyright header changes

* Remove 60_ansi_arrow_split_bs_7u_spc Community Layout (#23259)

* add 60_iso_arrow and arrow_split_bs Community Layouts (#22556)

* Convert some AVR GPIO operations to macros (#23424)

* N86: Layout Data Correction (#23644)

* Correct `LAYOUT_all` data

Corrects incorrect key sizes and positioning.

* Correct `LAYOUT_tkl_ansi_tsangan` data

Corrects incorrect matrix assignments on the bottom row.

* Correct `LAYOUT_tkl_ansi_tsangan_split_bs_rshift` data

Corrects incorrect matrix assignments on the bottom row.

* Set `LAYOUT_all` as an alias

Sets `LAYOUT_all` as an alias for
`LAYOUT_tkl_ansi_tsangan_split_bs_rshift`, because the layout and matrix
data for these two macros is identical.

* clangd enhancements. (#23310)

* [Keyboard] NK Classic TKL (#23435)

* First commit

* Fix keycode range and color on indicator

* bit of cleanup

* prettify

* Update keyboards/novelkeys/nk_classic_tkl/keymaps/default/keymap.c

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/novelkeys/nk_classic_tkl/info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/novelkeys/nk_classic_tkl/info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* readme fix

---------

Co-authored-by: yiancar <yiancar@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>

* [Keyboard] Add Petrichor Keyboard (#23413)

Co-authored-by: jack <0x6a73@protonmail.com>

* Tomak: Layout Data Correction (#23649)

Corrects the key size and positioning for position [8, 7] on all
layouts.

* ZSA Voyager Layout Fix (#23651)

* Update GPIO API usage in keyboard code (#23361)

* Migrate build target markers to keyboard.json - Misc (#23653)

* xiudi/xd75 - Fix backlight compilation issues (#23655)

* Add new set of keycodes for RGB Matrix (#23463)

* Fix iris via keymap (#23652)

* refactor: mechwild/bbs (#23373)

* Add support for Smart 68 keyboard (#23043)

* split_util: rename `usbIsActive` to `usb_bus_detected` (#23657)

split_util: rename usbIsActive to usb_bus_detected

This follows the style rules and better reflects the intent.

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>

* Add page for capabilties used by docs site. (#23428)

* Reworked CI builds for `master`/`develop`. (#23182)

* Bump geekyeggo/delete-artifact from 4 to 5 (#23674)

Bumps [geekyeggo/delete-artifact](https://github.com/geekyeggo/delete-artifact) from 4 to 5.
- [Release notes](https://github.com/geekyeggo/delete-artifact/releases)
- [Changelog](https://github.com/GeekyEggo/delete-artifact/blob/main/CHANGELOG.md)
- [Commits](https://github.com/geekyeggo/delete-artifact/compare/v4...v5)

---
updated-dependencies:
- dependency-name: geekyeggo/delete-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [CI] Allow secrets to propagate from parent to child workflow. (#23675)

* [CI] Use existing repo variables instead (#23676)

* Normalise RGBLight (underglow) keycodes (#23656)

* [CI] Fail workflow if there were build failures (#23678)

More whack-a-mole

* add example for c2json command (#23061)

* Remove redundant keymap templates (#23685)

* Remove 'split.transport.protocol=serial_usart' (#23668)

* `qmk find`: Fix typo in filter logging (#23693)

* Align RGBKB keyboards to current standards (#23663)

* Adjust keycode alignment around `QK_BOOT` (#23697)

* Add embed to docs capabilities (#23698)

* [Doc] Revise squeezing AVR (#23665)

* Note AVR's flash space
* Include guards for magic functions
* Remove mention of silicon shortage
* Demote an unavailable controller

* Change all RGB mode keycodes to short aliases (#23691)

* [Bug][Keyboard] Fix encoder resolution issue with Binepad BNK9 (#23707)

* Add housekeeping execution to unit tests (#22999)

* Fix for RGB color override and brightness for EC Type K (#23703)

Fix for RGB color override and brightness

* [CLI] Fixup return code for `qmk userspace-compile`. (#23720)

* Fix mapping of GUI/ALT for Win/Mac layers (#22662)

* [Keyboard] Add cycle7 (#23290)

* Add files via upload

* Update keyboards/vertex/cycle7/readme.md

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/vertex/cycle7/mcuconf.h

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/vertex/cycle7/halconf.h

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/vertex/cycle7/info.json

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/vertex/cycle7/info.json

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/vertex/cycle7/info.json

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/vertex/cycle7/info.json

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/vertex/cycle7/keymaps/default/keymap.c

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/vertex/cycle7/keymaps/via/keymap.c

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Update keyboards/vertex/cycle7/config.h

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* Add files via upload

* Update info.json

* Add files via upload

* Update keyboards/vertex/cycle7/keymaps/default/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/vertex/cycle7/keymaps/via/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/vertex/cycle7/keymaps/via/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/vertex/cycle7/keymaps/default/keymap.c

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/vertex/cycle7/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/vertex/cycle7/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Update keyboards/vertex/cycle7/info.json

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

---------

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Remove useless `LED/RGB_MATRIX_ENABLE` ifdefs (#23726)

* Resolve home directory in userspace config (#23730)

* Force CPI update using timer when using split pointing. (#23545)

* Delete trivial keymap readmes (#23714)

* Miscellaneous Data-Driven Keyboard Conversions (#23712)

Converts `rules.mk` entries to data-driven where applicable.

Affects:

  - `handwired/dygma/raise/ansi`
  - `handwired/dygma/raise/iso`
  - `handwired/symmetric70_proto/promicro`
  - `handwired/symmetric70_proto/proton_c`
  - `lazydesigners/dimple/ortho`
  - `lazydesigners/dimple/staggered/rev2`
  - `lazydesigners/dimple/staggered/rev3`
  - `sirius/uni660/rev2/ansi`
  - `sirius/uni660/rev2/iso`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: 0-9 (#23716)

Affects:

  - `0_sixty`
  - `1upkeyboards/pi40`
  - `1upkeyboards/pi50`
  - `40percentclub/gherkin`
  - `4pplet/perk60_iso/rev_a`

* [Keyboard] Add Irispad (#23724)

* Add Irispad

* Fix x positions for RGB LEDs

* Add encoder/bootmagic settings in info.json and run format-json

* Add missing info.json

* Fix README formatting

* [Keyboard] Add h4ckb0ard (#23717)

* adds h4ckb0ard

* Update keyboards/rot13labs/h4ckb0ard/info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/rot13labs/h4ckb0ard/info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update keyboards/rot13labs/h4ckb0ard/info.json

Co-authored-by: Joel Challis <git@zvecr.com>

* Update info.json

updating flags to indicate backlighting

* Update info.json

reduces max brightness to 100

* Delete keyboards/rot13labs/h4ckb0ard/config.h

removes this since its not needed anymore

* Update keyboards/rot13labs/h4ckb0ard/info.json

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c

Co-authored-by: jack <0x6a73@protonmail.com>

---------

Co-authored-by: c0ldbru <c0ldbrusec@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: jack <0x6a73@protonmail.com>

* Add media key support to Riot Pad (#23719)

* Insert delay between shifted chars in send_string_with_delay for AVR (#23673)

* [Doc] Reference advance keycodes in combos (#23666)

* Add sleepy_craft_studios sleepy_keeb (#23659)

Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>

* Add via support for craftwalk  (#23658)

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>

* [Keyboard] Adding TX_Roundup_Pad PCB (#23526)

Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>

* macOS install script: remove `brew upgrade --ignore-pinned` (#23735)

* [Keyboard] Add Projectd 75 iso (#21942)

Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: gksygithub <106651989+gksygithub@users.noreply.github.com>

* KB name change to Part.1-75-HS (#23403)

* Remove RGB keycodes from boards with no RGB config (#23709)

* Migrate `LOCKING_*_ENABLE` to Data-Driven: D, Part 1 (#23749)

Affects:

  - `dailycraft/owl8`
  - `dailycraft/sandbox/rev1`
  - `dailycraft/sandbox/rev2`
  - `dailycraft/stickey4`
  - `dailycraft/wings42/rev1`
  - `dailycraft/wings42/rev1_extkeys`
  - `dailycraft/wings42/rev2`
  - `daji/seis_cinco`
  - `dark/magnum_ergo_1`
  - `darkproject/kd83a_bfg_edition`
  - `darkproject/kd87a_bfg_edition`
  - `dc01/arrow`
  - `dc01/left`
  - `dc01/numpad`
  - `dc01/right`
  - `dcpedit/redherring`
  - `delikeeb/flatbread60`
  - `delikeeb/vaguettelite`
  - `delikeeb/vanana/rev1`
  - `delikeeb/vanana/rev2`
  - `delikeeb/vaneela`
  - `delikeeb/vaneelaex`
  - `delikeeb/waaffle/rev3/elite_c`
  - `delikeeb/waaffle/rev3/pro_micro`
  - `deltapad`
  - `deltasplit75/v2`
  - `dk60`
  - `dm9records/lain`
  - `dm9records/plaid`
  - `dm9records/tartan`
  - `dmqdesign/spin`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: D, Part 2 (#23750)

Affects:

  - `do60`
  - `doio/kb30`
  - `donutcables/scrabblepad`
  - `doppelganger`
  - `doro67/rgb`
  - `dotmod/dymium65`
  - `draytronics/daisy`
  - `draytronics/elise`
  - `draytronics/elise_v2`
  - `drewkeys/iskar`
  - `drhigsby/bkf`
  - `drhigsby/dubba175`
  - `drhigsby/ogurec`
  - `drhigsby/packrat`
  - `dtisaac/cg108`
  - `dumbo`
  - `dz60`
  - `dztech/bocc`
  - `dztech/duo_s`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: E (#23751)

Affects:

  - `e88`
  - `ealdin/quadrant`
  - `earth_rover`
  - `eco`
  - `edc40`
  - `edi/standaside`
  - `eek`
  - `ein_60`
  - `eniigmakeyboards/ek65`
  - `eniigmakeyboards/ek87`
  - `ep/96`
  - `ep/comsn/hs68`
  - `ep/comsn/mollydooker`
  - `ep/comsn/tf_longeboye`
  - `ergodox_ez`
  - `ergotravel/rev1`
  - `eternal_keypad`
  - `evil80`
  - `evolv`
  - `evyd13/atom47/rev2`
  - `evyd13/atom47/rev5`
  - `evyd13/eon65`
  - `evyd13/eon75`
  - `evyd13/eon87`
  - `evyd13/eon95`
  - `evyd13/gh80_1800`
  - `evyd13/gh80_3700`
  - `evyd13/minitomic`
  - `evyd13/mx5160`
  - `evyd13/nt750`
  - `evyd13/nt980`
  - `evyd13/omrontkl`
  - `evyd13/quackfire`
  - `evyd13/solheim68`
  - `evyd13/ta65`
  - `evyd13/wasdat_code`
  - `exclusive/e65`
  - `exclusive/e7v1`
  - `exclusive/e7v1se`
  - `exclusive/e85/hotswap`
  - `exclusive/e85/soldered`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: A-C, Part 3 (#23747)

Affects:

  - `ck60i`
  - `coarse/cordillera`
  - `contender`
  - `converter/a1200/mistress1200`
  - `converter/adb_usb`
  - `converter/m0110_usb`
  - `converter/siemens_tastatur`
  - `cool836a`
  - `copenhagen_click/click_pad_v1`
  - `coseyfannitutti/discipad`
  - `coseyfannitutti/discipline`
  - `coseyfannitutti/mysterium`
  - `coseyfannitutti/romeo`
  - `cozykeys/bloomer`
  - `cozykeys/speedo/v2`
  - `cozykeys/speedo/v3`
  - `craftwalk`
  - `crawlpad`
  - `crazy_keyboard_68`
  - `crbn`
  - `creatkeebs/glacier`
  - `crimsonkeyboards/resume1800`
  - `crin`
  - `cutie_club/borsdorf`
  - `cutie_club/fidelity`
  - `cutie_club/giant_macro_pad`
  - `cutie_club/keebcats/denis`
  - `cutie_club/keebcats/dougal`
  - `cutie_club/novus`
  - `cutie_club/wraith`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: A-C, Part 2 (#23746)

Affects:

  - `chalice`
  - `charue/sunsetter_r2`
  - `checkerboards/axon40`
  - `checkerboards/candybar_ortho`
  - `checkerboards/g_idb60`
  - `checkerboards/nop60`
  - `checkerboards/phoenix45_ortho`
  - `checkerboards/plexus75`
  - `checkerboards/plexus75_he`
  - `checkerboards/pursuit40`
  - `checkerboards/quark`
  - `checkerboards/quark_lp`
  - `checkerboards/quark_plus`
  - `checkerboards/quark_squared`
  - `checkerboards/snop60`
  - `checkerboards/ud40_ortho_alt`
  - `cheshire/curiosity`
  - `chickenman/ciel`
  - `chlx/merro60`
  - `chlx/str_merro60`
  - `chosfox/cf81`
  - `citrus/erdnuss65`
  - `ckeys/handwire_101`
  - `ckeys/nakey`
  - `ckeys/obelus`
  - `ckeys/thedora`
  - `ckeys/washington`
  - `clueboard/2x1800/2018`
  - `clueboard/2x1800/2021`

* Bump JamesIves/github-pages-deploy-action from 4.6.0 to 4.6.1 (#23752)

---
updated-dependencies:
- dependency-name: JamesIves/github-pages-deploy-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Migrate `LOCKING_*_ENABLE` to Data-Driven: A-C, Part 1 (#23745)

Affects:

  - `atreus`
  - `cablecardesigns/cypher/rev6`
  - `caffeinated/serpent65`
  - `cannonkeys/adelie`
  - `cannonkeys/aella`
  - `cannonkeys/an_c`
  - `cannonkeys/atlas`
  - `cannonkeys/atlas_alps`
  - `cannonkeys/balance`
  - `cannonkeys/brutalv2_65`
  - `cannonkeys/chimera65`
  - `cannonkeys/cloudline`
  - `cannonkeys/crin`
  - `cannonkeys/db60`
  - `cannonkeys/devastatingtkl`
  - `cannonkeys/gentoo`
  - `cannonkeys/gentoo_hs`
  - `cannonkeys/hoodrowg`
  - `cannonkeys/instant60`
  - `cannonkeys/instant65`
  - `cannonkeys/iron165`
  - `cannonkeys/malicious_ergo`
  - `cannonkeys/obliterated75`
  - `cannonkeys/onyx`
  - `cannonkeys/ortho48`
  - `cannonkeys/ortho60`
  - `cannonkeys/ortho75`
  - `cannonkeys/practice60`
  - `cannonkeys/practice65`
  - `cannonkeys/rekt1800`
  - `cannonkeys/ripple`
  - `cannonkeys/sagittarius`
  - `cannonkeys/satisfaction75`
  - `cannonkeys/savage65`
  - `cannonkeys/tmov2`
  - `cannonkeys/tsukuyomi`
  - `cannonkeys/vicious40`
  - `capsunlocked/cu24`
  - `capsunlocked/cu65`
  - `capsunlocked/cu7`
  - `capsunlocked/cu75`
  - `capsunlocked/cu80/v1`

* Fix PS/2 Trackpoint mouse clicks (#22265) (#23694)

* Add moky67 keyboard (#23118)

* Add second encoder to matrix info of arrowmechanics/wings (#23390)

* Add Meow65 (#23427)

* Migrate `LOCKING_*_ENABLE` to Data-Driven: H, Part 1 (#23759)

Affects:

  - `h0oni/deskpad`
  - `h0oni/hotduck`
  - `halfcliff`
  - `halokeys/elemental75`
  - `han60`
  - `hardlineworks/otd_plus`
  - `helix/rev3_4rows`
  - `helix/rev3_5rows`
  - `hfdkb/ac001`
  - `hidtech/bastyl`
  - `hineybush/h08_ocelot`
  - `hineybush/h10`
  - `hineybush/h60`
  - `hineybush/h65`
  - `hineybush/h65_hotswap`
  - `hineybush/h660s`
  - `hineybush/h75_singa`
  - `hineybush/h87a`
  - `hineybush/h88`
  - `hineybush/hbcp`
  - `hineybush/hineyg80`
  - `hineybush/physix`
  - `hineybush/sm68`
  - `hnahkb/freyr`
  - `hnahkb/stella`
  - `hnahkb/vn66`
  - `horizon`
  - `hotdox`
  - `hs60/v1`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: G (#23758)

Affects:

  - `gboards/ergotaco`
  - `gboards/georgi`
  - `gboards/gergo`
  - `geekboards/tester`
  - `geonworks/frogmini/fmh`
  - `geonworks/frogmini/fms`
  - `gh60/revc`
  - `gh60/satan`
  - `ghs/rar`
  - `gkeyboard/gkb_m16`
  - `gkeyboard/gpad8_2r`
  - `gl516/a52gl`
  - `gl516/j73gl`
  - `gl516/n51gl`
  - `gmmk/gmmk2/p65`
  - `gmmk/gmmk2/p96`
  - `gmmk/numpad`
  - `gmmk/pro`
  - `gon/nerd60`
  - `gon/nerdtkl`
  - `gray_studio/aero75`
  - `gray_studio/cod67`
  - `gray_studio/space65`
  - `gray_studio/space65r3`
  - `gray_studio/think65v3`
  - `grid600/press`

* Move VIA config to keymap level (#23754)

* Remove includes of config.h (#23760)

* Migrate `LOCKING_*_ENABLE` to Data-Driven: F (#23757)

Affects:

  - `fallacy`
  - `ffkeebs/puca`
  - `fjlabs/7vhotswap`
  - `fjlabs/ad65`
  - `fjlabs/avalon`
  - `fjlabs/bks65`
  - `fjlabs/bks65solder`
  - `fjlabs/bolsa65`
  - `fjlabs/kf87`
  - `fjlabs/kyuu`
  - `fjlabs/ldk65`
  - `fjlabs/midway60`
  - `fjlabs/mk61rgbansi`
  - `fjlabs/peaker`
  - `fjlabs/polaris`
  - `fjlabs/ready100`
  - `fjlabs/sinanju`
  - `fjlabs/sinanjuwk`
  - `fjlabs/solanis`
  - `fjlabs/swordfish`
  - `fjlabs/tf60ansi`
  - `fjlabs/tf60v2`
  - `fjlabs/tf65rgbv2`
  - `flehrad/downbubble`
  - `flehrad/numbrero`
  - `flehrad/snagpad`
  - `flehrad/tradestation`
  - `fleuron`
  - `fluorite`
  - `flx/lodestone`
  - `flxlb/zplit`
  - `foostan/cornelius`
  - `forever65`
  - `fortitude60/rev1`
  - `foxlab/key65/hotswap`
  - `foxlab/key65/universal`
  - `foxlab/leaf60/hotswap`
  - `foxlab/leaf60/universal`
  - `foxlab/time80`
  - `fr4/southpaw75`
  - `fractal`
  - `fungo/rev1`
  - `funky40`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: H, Part 4 (#23764)

Affects:

  - `handwired/reclined`
  - `handwired/retro_refit`
  - `handwired/selene`
  - `handwired/sick68`
  - `handwired/sick_pad`
  - `handwired/skakunm_dactyl`
  - `handwired/slash`
  - `handwired/snatchpad`
  - `handwired/sono1`
  - `handwired/space_oddity`
  - `handwired/split89`
  - `handwired/split_cloud`
  - `handwired/steamvan/rev1`
  - `handwired/sticc14`
  - `handwired/stream_cheap/2x3`
  - `handwired/stream_cheap/2x4`
  - `handwired/stream_cheap/2x5`
  - `handwired/symmetric70_proto/promicro`
  - `handwired/symmetric70_proto/proton_c`
  - `handwired/symmetry60`
  - `handwired/tennie`
  - `handwired/terminus_mini`
  - `handwired/trackpoint`
  - `handwired/tritium_numpad`
  - `handwired/twadlee/tp69`
  - `handwired/unk/rev1`
  - `handwired/uthol/rev3`
  - `handwired/videowriter`
  - `handwired/wabi`
  - `handwired/woodpad`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: H, Part 3 (#23763)

Affects:

  - `handwired/jn68m`
  - `handwired/jopr`
  - `handwired/jot50`
  - `handwired/jotanck`
  - `handwired/jotpad16`
  - `handwired/jtallbean/split_65`
  - `handwired/juliet`
  - `handwired/k_numpad17`
  - `handwired/kbod`
  - `handwired/ks63`
  - `handwired/leftynumpad`
  - `handwired/lemonpad`
  - `handwired/m40/5x5_macropad`
  - `handwired/macroboard/f401`
  - `handwired/macroboard/f411`
  - `handwired/magicforce61`
  - `handwired/magicforce68`
  - `handwired/mechboards_micropad`
  - `handwired/minorca`
  - `handwired/mutepad`
  - `handwired/nicekey`
  - `handwired/nortontechpad`
  - `handwired/not_so_minidox`
  - `handwired/novem`
  - `handwired/nozbe_macro`
  - `handwired/numpad20`
  - `handwired/obuwunkunubi/spaget`
  - `handwired/oem_ansi_fullsize`
  - `handwired/onekey`
  - `handwired/ortho5x13`
  - `handwired/ortho5x14`
  - `handwired/p65rgb`
  - `handwired/pilcrow`
  - `handwired/polly40`
  - `handwired/postageboard/mini`
  - `handwired/postageboard/r1`
  - `handwired/prime_exl`
  - `handwired/prime_exl_plus`

* Fix font artefact on Reverb keyboard.  (#23761)

* Added MATRIX_HAS_GHOST definition for IBM Model H controller (#23744)

* Migrate `LOCKING_*_ENABLE` to Data-Driven: H, Part 2 (#23762)

Affects:

  - `handwired/108key_trackpoint`
  - `handwired/2x5keypad`
  - `handwired/3dp660`
  - `handwired/412_64`
  - `handwired/42`
  - `handwired/amigopunk`
  - `handwired/aranck`
  - `handwired/atreus50`
  - `handwired/axon`
  - `handwired/battleship_gamepad`
  - `handwired/bdn9_ble`
  - `handwired/bento/rev1`
  - `handwired/bolek`
  - `handwired/brain`
  - `handwired/bstk100`
  - `handwired/cans12er`
  - `handwired/chiron`
  - `handwired/ck4x4`
  - `handwired/cmd60`
  - `handwired/co60/rev6`
  - `handwired/co60/rev7`
  - `handwired/colorlice`
  - `handwired/curiosity`
  - `handwired/dactyl_left`
  - `handwired/dactyl_manuform/4x5`
  - `handwired/dactyl_manuform/4x5_5`
  - `handwired/dactyl_manuform/4x6`
  - `handwired/dactyl_manuform/4x6_4_3`
  - `handwired/dactyl_manuform/4x6_5`
  - `handwired/dactyl_manuform/5x6`
  - `handwired/dactyl_manuform/5x6_2_5`
  - `handwired/dactyl_manuform/5x6_5`
  - `handwired/dactyl_manuform/5x6_6`
  - `handwired/dactyl_manuform/5x6_68`
  - `handwired/dactyl_manuform/5x7`
  - `handwired/dactyl_manuform/6x6/blackpill_f411`
  - `handwired/dactyl_manuform/6x6/promicro`
  - `handwired/dactyl_manuform/6x6_4`
  - `handwired/dactyl_manuform/6x7`
  - `handwired/dactyl_promicro`
  - `handwired/dactyl_rah`
  - `handwired/datahand`
  - `handwired/evk/v1_3`
  - `handwired/fc200rt_qmk`
  - `handwired/fivethirteen`
  - `handwired/floorboard`
  - `handwired/fruity60`
  - `handwired/gamenum`
  - `handwired/hacked_motospeed`
  - `handwired/heisenberg`
  - `handwired/hnah40`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: M, Part 2 (#23773)

Affects:

  - `mkh_studio/bully`
  - `mlego/m48/rev1`
  - `mlego/m60/rev1`
  - `mlego/m60_split/rev1`
  - `mlego/m60_split/rev2`
  - `mntre`
  - `mode/m65ha_alpha`
  - `mode/m65hi_alpha`
  - `mode/m65s`
  - `mode/m80v1/m80h`
  - `mode/m80v1/m80s`
  - `mode/m80v2/m80v2h`
  - `mode/m80v2/m80v2s`
  - `molecule`
  - `momoka_ergo`
  - `monarch`
  - `monsgeek/m1`
  - `monsgeek/m3`
  - `monsgeek/m5`
  - `monsgeek/m6`
  - `monstargear/xo87/rgb`
  - `monstargear/xo87/solderable`
  - `montsinger/rebound/rev1`
  - `montsinger/rebound/rev2`
  - `montsinger/rebound/rev3`
  - `montsinger/rebound/rev4`
  - `montsinger/rewind`
  - `moon`
  - `morizon`
  - `mountainblocks/mb17`
  - `mt/blocked65`
  - `mt/mt64rgb`
  - `mt/mt980`
  - `mtbkeys/mtb60/hotswap`
  - `mtbkeys/mtb60/solder`
  - `murcielago/rev1`
  - `mxss`
  - `mysticworks/wyvern`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: L (#23771)

Affects:

  - `labbe/labbeminiv1`
  - `labyrinth75`
  - `laneware/lpad`
  - `laneware/lw67`
  - `laneware/lw75`
  - `laneware/macro1`
  - `laneware/raindrop`
  - `laser_ninja/pumpkinpad`
  - `latincompass/latin47ble`
  - `lazydesigners/dimple/ortho`
  - `lazydesigners/dimple/staggered/rev1`
  - `lazydesigners/dimple/staggered/rev2`
  - `lazydesigners/dimple/staggered/rev3`
  - `lazydesigners/dimple`
  - `lazydesigners/the50`
  - `lazydesigners/the60/rev1`
  - `lets_split/rev1`
  - `lets_split/rev2`
  - `lfkeyboards/lfk65_hs`
  - `lfkeyboards/lfk78/revb`
  - `lfkeyboards/lfk78/revc`
  - `lfkeyboards/lfk78/revj`
  - `lfkeyboards/lfk87/reva`
  - `lfkeyboards/lfk87/revc`
  - `lfkeyboards/lfkpad`
  - `lfkeyboards/mini1800/reva`
  - `lfkeyboards/mini1800/revc`
  - `lfkeyboards/smk65/revb`
  - `lfkeyboards/smk65/revf`
  - `linworks/fave60`
  - `lizard_trick/tenkey_plusplus`
  - `lm_keyboard/lm60n`
  - `lucid/alexa`
  - `lucid/alexa_solder`
  - `lucid/kbd8x_hs`
  - `lucid/phantom_hs`
  - `lucid/phantom_solder`
  - `lucid/scarlet`
  - `lyso1/lck75`
  - `lyso1/lefishe`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: I-J (#23767)

Affects:

  - `ianklug/grooveboard`
  - `ibm/model_m/modelh`
  - `ibm/model_m_122/ibm122m`
  - `ibnuda/gurindam`
  - `idb/idb_60`
  - `idobao/id75/v1`
  - `idobao/id75/v2`
  - `idobao/id96`
  - `idobao/montex/v1`
  - `illuminati/is0`
  - `illusion/rosa`
  - `ilumkb/primus75`
  - `ilumkb/volcano660`
  - `inland/kb83`
  - `input_club/ergodox_infinity`
  - `irene`
  - `iriskeyboards`
  - `iron180`
  - `jacky_studio/bear_65/rev1`
  - `jacky_studio/bear_65/rev2`
  - `jacky_studio/s7_elephant/rev1`
  - `jacky_studio/s7_elephant/rev2`
  - `jadookb/jkb65`
  - `jae/j01`
  - `jagdpietr/drakon`
  - `jd40`
  - `jd45`
  - `jels/boaty`
  - `jels/jels60/v1`
  - `jels/jels60/v2`
  - `jels/jels88`
  - `jolofsor/denial75`
  - `jorne/rev1`
  - `joshajohnson/hub16`
  - `joshajohnson/hub20`
  - `jukaie/jk01`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: N (#23774)

Affects:

  - `nacly/sodium42`
  - `nacly/sodium50`
  - `nacly/sodium62`
  - `nacly/splitreus62`
  - `nacly/ua62`
  - `nek_type_a`
  - `nemui`
  - `nibiria/stream15`
  - `nightingale_studios/hailey`
  - `nightly_boards/adellein`
  - `nightly_boards/alter/rev1`
  - `nightly_boards/alter_lite`
  - `nightly_boards/conde60`
  - `nightly_boards/daily60`
  - `nightly_boards/jisoo`
  - `nightly_boards/n2`
  - `nightly_boards/n40_o`
  - `nightly_boards/n60_s`
  - `nightly_boards/n87`
  - `nightly_boards/n9`
  - `nightly_boards/octopad`
  - `nightly_boards/octopadplus`
  - `nightly_boards/paraluman`
  - `nightly_boards/ph_arisu`
  - `nightmare`
  - `nimrod`
  - `nix_studio/oxalys80`
  - `nopunin10did/jabberwocky/v1`
  - `nopunin10did/jabberwocky/v2`
  - `nopunin10did/railroad/rev0`
  - `novelkeys/novelpad`
  - `noxary/220`
  - `noxary/260`
  - `noxary/268`
  - `noxary/268_2`
  - `noxary/268_2_rgb`
  - `noxary/280`
  - `noxary/378`
  - `noxary/valhalla`
  - `noxary/vulcan`
  - `noxary/x268`
  - `numatreus`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: K, Part 1 (#23768)

Affects:

  - `kabedon/kabedon98e`
  - `kagizaraya/chidori`
  - `kagizaraya/halberd`
  - `kagizaraya/miniaxe`
  - `kagizaraya/scythe`
  - `kakunpc/angel17/alpha`
  - `kakunpc/angel17/rev1`
  - `kakunpc/angel64/alpha`
  - `kakunpc/angel64/rev1`
  - `kakunpc/business_card/alpha`
  - `kakunpc/business_card/beta`
  - `kakunpc/choc_taro`
  - `kakunpc/rabbit_capture_plan`
  - `kakunpc/suihankey/alpha`
  - `kakunpc/suihankey/rev1`
  - `kakunpc/suihankey/split/alpha`
  - `kakunpc/suihankey/split/rev1`
  - `kakunpc/thedogkeyboard`
  - `kapcave/arya`
  - `kapcave/gskt00`
  - `kapcave/paladin64`
  - `kapl/rev1`
  - `kb58`
  - `kb_elmo/aek2_usb`
  - `kb_elmo/m0110a_usb`
  - `kb_elmo/m0116_usb`
  - `kbdclack/kaishi65`
  - `kbdfans/bella/soldered`
  - `kbdfans/bounce/pad`
  - `kbdfans/jm60`
  - `kbdfans/kbd19x`
  - `kbdfans/kbd4x`
  - `kbdfans/kbd66`
  - `kbdfans/kbd67/hotswap`
  - `kbdfans/kbd67/mkii_soldered`
  - `kbdfans/kbd6x`
  - `kbdfans/kbd75/rev1`
  - `kbdfans/kbd75/rev2`
  - `kbdfans/kbd8x`
  - `kbdfans/kbd8x_mk2`
  - `kbdfans/kbdpad/mk2`
  - `kbdfans/maja_soldered`
  - `kbdfans/niu_mini`
  - `kbdfans/phaseone`
  - `kbdmania/kmac`
  - `kbdmania/kmac_pad`
  - `kc60`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: M, Part 1 (#23772)

Affects:

  - `m10a`
  - `machine_industries/m4_a`
  - `magic_force/mf34`
  - `majistic`
  - `makenova/omega/omega4`
  - `makrosu`
  - `manta60`
  - `maple_computing/christmas_tree/v2017`
  - `maple_computing/ivy/rev1`
  - `maple_computing/launchpad/rev1`
  - `maple_computing/minidox/rev1`
  - `maple_computing/the_ruler`
  - `marksard/leftover30`
  - `marksard/treadstone48/rev1`
  - `marksard/treadstone48/rev2`
  - `masterworks/classy_tkl/rev_a`
  - `maxipad`
  - `maxr1998/phoebe`
  - `mc_76k`
  - `mechkeys/acr60`
  - `mechkeys/alu84`
  - `mechkeys/espectro`
  - `mechkeys/mechmini/v2`
  - `mechkeys/mk60`
  - `mechlovin/hannah910/rev1`
  - `mechlovin/hannah910/rev2`
  - `mechlovin/hannah910/rev3`
  - `mechlovin/jay60`
  - `mechlovin/tmkl`
  - `mechwild/bde/lefty`
  - `mechwild/bde/rev2`
  - `mechwild/bde/righty`
  - `mechwild/mercutio`
  - `mechwild/mokulua/mirrored`
  - `mechwild/mokulua/standard`
  - `mechwild/murphpad`
  - `mechwild/obe`
  - `mechwild/puckbuddy`
  - `meletrix/zoom98`
  - `melgeek/mj6xy/rev3`
  - `meme`
  - `meow65`
  - `mesa/mesa_tkl`
  - `meson`
  - `mikeneko65`
  - `millipad`
  - `mini_elixivy`
  - `mini_ten_key_plus`
  - `minimon/index_tab`
  - `mint60`
  - `misonoworks/karina`
  - `miuni32`
  - `mixi`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: K, Part 3 (#23770)

Affects:

  - `kindakeyboards/conone65`
  - `kinesis`
  - `kingly_keys/ave/ortho`
  - `kingly_keys/ave/staggered`
  - `kingly_keys/little_foot`
  - `kingly_keys/romac`
  - `kingly_keys/romac_plus`
  - `kingly_keys/ropro`
  - `kingly_keys/smd_milk`
  - `kingly_keys/soap`
  - `kira/kira75`
  - `kisakeyluxury/qtz`
  - `kiserdesigns/madeline`
  - `kiwikeebs/macro`
  - `kiwikeebs/macro_v2`
  - `kiwikey/borderland`
  - `kiwikey/kawii9`
  - `kiwikey/wanderland`
  - `kkatano/bakeneko60`
  - `kkatano/bakeneko65/rev2`
  - `kkatano/bakeneko65/rev3`
  - `kkatano/bakeneko80`
  - `kkatano/wallaby`
  - `kkatano/yurei`
  - `knops/mini`
  - `kona_classic`
  - `kopibeng/mnk60_stm32`
  - `kopibeng/mnk65`
  - `kopibeng/mnk65_stm32`
  - `kopibeng/mnk88`
  - `kopibeng/typ65`
  - `kopibeng/xt60`
  - `kopibeng/xt60_singa`
  - `kopibeng/xt65`
  - `kopibeng/xt8x`
  - `kprepublic/bm16s`
  - `kprepublic/bm40hsrgb/rev1`
  - `kprepublic/bm65hsrgb/rev1`
  - `kprepublic/bm68hsrgb/rev1`
  - `kprepublic/bm980hsrgb`
  - `kprepublic/cospad`
  - `ktec/daisy`
  - `kumaokobo/kudox/columner`
  - `kumaokobo/kudox/rev1`
  - `kumaokobo/kudox/rev2`
  - `kumaokobo/kudox/rev3`
  - `kumaokobo/kudox_full/rev1`
  - `kumaokobo/kudox_game/rev1`
  - `kumaokobo/kudox_game/rev2`
  - `kumaokobo/pico/65keys`
  - `kumaokobo/pico/70keys`
  - `kv/revt`
  - `kwub/bloop`
  - `ky01`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: K, Part 2 (#23769)

Affects:

  - `keebio/bamfk4`
  - `keebio/bdn9/rev1`
  - `keebio/bdn9/rev2`
  - `keebio/bfo9000`
  - `keebio/bigswitchseat`
  - `keebio/choconum`
  - `keebio/dilly`
  - `keebio/dsp40/rev1`
  - `keebio/ergodicity`
  - `keebio/foldkb/rev1`
  - `keebio/fourier`
  - `keebio/iris/rev1`
  - `keebio/iris/rev1_led`
  - `keebio/iris/rev2`
  - `keebio/iris/rev3`
  - `keebio/iris/rev4`
  - `keebio/kbo5000/rev1`
  - `keebio/levinson/rev1`
  - `keebio/levinson/rev2`
  - `keebio/levinson/rev3`
  - `keebio/nyquist/rev1`
  - `keebio/nyquist/rev2`
  - `keebio/nyquist/rev3`
  - `keebio/quefrency/rev1`
  - `keebio/quefrency/rev4`
  - `keebio/quefrency/rev5`
  - `keebio/rorschach/rev1`
  - `keebio/sinc/rev1`
  - `keebio/sinc/rev2`
  - `keebio/tragicforce68`
  - `keebio/tukey`
  - `keebio/viterbi/rev1`
  - `keebio/viterbi/rev2`
  - `keebio/wavelet`
  - `keebio/wtf60`
  - `keebsforall/coarse60`
  - `keebsforall/freebirdnp/lite`
  - `keebsforall/freebirdnp/pro`
  - `keebsforall/freebirdtkl`
  - `keebwerk/nano_slider`
  - `keebzdotnet/fme`
  - `keebzdotnet/wazowski`
  - `keyboardio/atreus`
  - `keycapsss/kimiko/rev1`
  - `keycapsss/o4l_5x12`
  - `keygem/kg60ansi`
  - `keygem/kg65rgbv2`
  - `keyhive/absinthe`
  - `keyhive/ergosaurus`
  - `keyhive/lattice60`
  - `keyhive/maypad`
  - `keyhive/navi10/rev0`
  - `keyhive/navi10/rev2`
  - `keyhive/navi10/rev3`
  - `keyhive/opus`
  - `keyhive/southpole`
  - `keyhive/ut472`
  - `keyprez/bison`
  - `keyprez/corgi`
  - `keyprez/rhino`
  - `keyprez/unicorn`
  - `keysofkings/twokey`
  - `keystonecaps/gameroyadvance`

* Remove some useless code from keymaps (#23787)

* Migrate `LOCKING_*_ENABLE` to Data-Driven: U-V (#23786)

Affects:

  - `uk78`
  - `ungodly/nines`
  - `unikeyboard/diverge3`
  - `unikeyboard/divergetm2`
  - `unikeyboard/felix`
  - `uranuma`
  - `utd80`
  - `v60_type_r`
  - `vagrant_10`
  - `viendi8l`
  - `viktus/at101_bh`
  - `viktus/omnikey_bh`
  - `viktus/smolka`
  - `viktus/sp111`
  - `viktus/styrka`
  - `viktus/z150_bh`
  - `vitamins_included/rev1`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: T (#23785)

Affects:

  - `takashicompany/center_enter`
  - `takashicompany/endzone34`
  - `takashicompany/qoolee`
  - `takashicompany/radialex`
  - `takashiski/namecard2x4/rev1`
  - `takashiski/namecard2x4/rev2`
  - `takashiski/otaku_split/rev0`
  - `takashiski/otaku_split/rev1`
  - `taleguers/taleguers75`
  - `tanuki`
  - `team0110/p1800fl`
  - `technika`
  - `tenki`
  - `tetris`
  - `tg4x`
  - `the_royal/liminal`
  - `the_royal/schwann`
  - `thevankeyboards/bananasplit`
  - `thevankeyboards/caravan`
  - `thevankeyboards/jetvan`
  - `thevankeyboards/minivan`
  - `thevankeyboards/roadkit`
  - `tkc/california`
  - `tkc/m0lly`
  - `tkc/tkc1800`
  - `tkc/tkl_ab87`
  - `tkw/stoutgat/v2`
  - `tmo50`
  - `toad`
  - `toffee_studio/blueberry`
  - `tokyokeyboard/alix40`
  - `tokyokeyboard/tokyo60`
  - `tominabox1/adalyn`
  - `tominabox1/le_chiffre`
  - `tominabox1/qaz`
  - `tr60w`
  - `treasure/type9`
  - `tszaboo/ortho4exent`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: O (#23778)

Affects:

  - `oddball`
  - `oddforge/vea`
  - `ok60`
  - `om60`
  - `omkbd/ergodash/mini`
  - `omkbd/ergodash/rev1`
  - `omkbd/runner3680/3x6`
  - `omkbd/runner3680/3x7`
  - `omkbd/runner3680/3x8`
  - `omkbd/runner3680/4x6`
  - `omkbd/runner3680/4x7`
  - `omkbd/runner3680/4x8`
  - `omkbd/runner3680/5x6`
  - `omkbd/runner3680/5x6_5x8`
  - `omkbd/runner3680/5x7`
  - `omkbd/runner3680/5x8`
  - `omnikeyish`
  - `orange75`
  - `org60`
  - `ortho5by12`
  - `orthocode`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: P, Part 1 (#23779)

Affects:

  - `p3d/eu_isolation`
  - `p3d/glitch`
  - `p3d/q4z`
  - `p3d/synapse`
  - `p3d/tw40`
  - `panc40`
  - `papercranekeyboards/gerald65`
  - `parallel/parallel_65/hotswap`
  - `parallel/parallel_65/soldered`
  - `pdxkbc`
  - `pearlboards/atlas`
  - `pearlboards/pandora`
  - `pearlboards/pearl`
  - `pearlboards/zeus`
  - `pearlboards/zeuspad`
  - `pegasus`
  - `phantom`
  - `phoenix`
  - `picolab/frusta_fundamental`
  - `pimentoso/paddino02/rev1`
  - `pimentoso/paddino02/rev2/left`
  - `pimentoso/paddino02/rev2/right`
  - `pisces`
  - `pizzakeyboards/pizza65`
  - `pkb65`
  - `planck`
  - `playkbtw/ca66`
  - `playkbtw/pk60`
  - `playkbtw/pk64rgb`
  - `pluckey`
  - `plume/plume65`
  - `plywrks/ahgase`
  - `plywrks/lune`
  - `pohjolaworks/louhi`
  - `polycarbdiet/s20`
  - `pom_keyboards/tnln95`
  - `portal_66/hotswap`
  - `portal_66/soldered`
  - `pos78`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: P, Part 2 (#23780)

Affects:

  - `preonic/rev1`
  - `preonic/rev2`
  - `preonic/rev3`
  - `preonic/rev3_drop`
  - `primekb/meridian/ktr1010`
  - `primekb/meridian/ws2812`
  - `primekb/meridian_rgb`
  - `primekb/prime_m`
  - `primekb/prime_o`
  - `primekb/prime_r`
  - `projectcain/relic`
  - `projectcain/vault45`
  - `projectd/65/projectd_65_ansi`
  - `projectd/75/ansi`
  - `projectkb/alice/rev1`
  - `projectkb/alice/rev2`
  - `projectkb/signature65`
  - `projectkb/signature87`
  - `prototypist/allison`
  - `prototypist/allison_numpad`
  - `prototypist/j01`
  - `psuieee/pluto12`
  - `pteron36`
  - `puck`
  - `punk75`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: W, Part 1 (#23788)

Affects:

  - `waldo`
  - `walletburner/cajal`
  - `walletburner/neuron`
  - `wavtype/foundation`
  - `wavtype/p01_ultra`
  - `weirdo/geminate60`
  - `weirdo/kelowna/rgb64`
  - `weirdo/ls_60`
  - `weirdo/naiping/np64`
  - `weirdo/naiping/nphhkb`
  - `weirdo/naiping/npminila`
  - `weirdo/tiger910`
  - `wekey/polaris`
  - `westfoxtrot/aanzee`
  - `westfoxtrot/cyclops`
  - `westfoxtrot/cypher/rev1`
  - `westfoxtrot/cypher/rev5`
  - `westfoxtrot/prophet`
  - `westm/westm9`
  - `westm/westm68`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: Q-R (#23781)

Affects:

  - `qpockets/space_space/rev1`
  - `qpockets/space_space/rev2`
  - `quad_h/lb75`
  - `quantrik/kyuu`
  - `qwertlekeys/calice`
  - `rabbit/rabbit68`
  - `rainkeebs/delilah`
  - `rainkeebs/rainkeeb`
  - `rainkeebs/yasui`
  - `rart/rart45`
  - `rart/rart4x4`
  - `rart/rart60`
  - `rart/rart67`
  - `rart/rart67m`
  - `rart/rart75`
  - `rart/rart75m`
  - `rart/rartand`
  - `rart/rartland`
  - `rart/rartlice`
  - `rart/rartlite`
  - `rart/rartpad`
  - `rate/pistachio/rev1`
  - `rate/pistachio/rev2`
  - `rate/pistachio_mp`
  - `rate/pistachio_pro`
  - `redox/rev1`
  - `redscarf_iiplus/verb`
  - `redscarf_iiplus/verc`
  - `redscarf_iiplus/verd`
  - `retro_75`
  - `reversestudio/decadepad`
  - `reviung/reviung5`
  - `reviung/reviung33`
  - `reviung/reviung34`
  - `reviung/reviung39`
  - `reviung/reviung41`
  - `reviung/reviung53`
  - `rgbkb/zen/rev1`
  - `rgbkb/zen/rev2`
  - `rmi_kb/aelith`
  - `rmi_kb/chevron`
  - `rmi_kb/herringbone/pro`
  - `rmi_kb/herringbone/v1`
  - `rmi_kb/squishy65`
  - `rmi_kb/squishyfrl`
  - `rmi_kb/squishytkl`
  - `rmi_kb/wete/v1`
  - `rmi_kb/wete/v2`
  - `rocketboard_16`
  - `rominronin/katana60/rev1`
  - `rominronin/katana60/rev2`
  - `roseslite`
  - `rotr`
  - `rpiguy9907/southpaw66`
  - `rubi`
  - `rura66/rev1`
  - `ryanbaekr/rb1`
  - `ryanbaekr/rb18`
  - `ryanbaekr/rb69`
  - `ryanbaekr/rb86`
  - `ryanbaekr/rb87`
  - `ryanskidmore/rskeys100`
  - `ryloo_studio/m0110`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: S, Part 2 (#23784)

Affects:

  - `slz40`
  - `smithrune/iron160/iron160_s`
  - `smithrune/iron165r2/f072`
  - `smithrune/iron165r2/f411`
  - `smithrune/iron180`
  - `smithrune/iron180v2/v2h`
  - `smithrune/iron180v2/v2s`
  - `smoll/lefty`
  - `snampad`
  - `sneakbox/aliceclone`
  - `sneakbox/disarray/ortho`
  - `sneakbox/disarray/staggered`
  - `soup10`
  - `soy20`
  - `sparrow62`
  - `split67`
  - `splitish`
  - `splitography`
  - `star75`
  - `stello65/beta`
  - `stello65/hs_rev1`
  - `stello65/sl_rev1`
  - `stenokeyboards/the_uni/pro_micro`
  - `stenokeyboards/the_uni/usb_c`
  - `strech/soulstone`
  - `studiokestra/bourgeau`
  - `studiokestra/cascade`
  - `studiokestra/frl84`
  - `studiokestra/galatea/rev1`
  - `studiokestra/galatea/rev2`
  - `studiokestra/galatea/rev3`
  - `studiokestra/line_friends_tkl`
  - `studiokestra/nascent`
  - `studiokestra/nue`
  - `suavity/ehan`
  - `subatomic`
  - `switchplate/southpaw_65`
  - `switchplate/southpaw_fullsize`
  - `switchplate/switchplate910`
  - `sx60`
  - `system76/launch_1`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: S, Part 1 (#23783)

Affects:

  - `salicylic_acid3/7skb/rev1`
  - `salicylic_acid3/7splus`
  - `salicylic_acid3/ajisai74`
  - `salicylic_acid3/ergoarrows`
  - `salicylic_acid3/getta25/rev1`
  - `salicylic_acid3/jisplit89/rev1`
  - `salicylic_acid3/nafuda`
  - `salicylic_acid3/naked48/rev1`
  - `salicylic_acid3/naked60/rev1`
  - `salicylic_acid3/naked64/rev1`
  - `salicylic_acid3/nknl7en`
  - `salicylic_acid3/nknl7jp`
  - `salicylic_acid3/setta21/rev1`
  - `sandwich/keeb68`
  - `satt/vision`
  - `sauce/mild`
  - `scatter42`
  - `sck/gtm`
  - `sck/m0116b`
  - `sck/neiso`
  - `sekigon/grs_70ec`
  - `sendyyeah/pix`
  - `senselessclay/ck65`
  - `senselessclay/gos65`
  - `senselessclay/had60`
  - `sentraq/s60_x/default`
  - `sentraq/s60_x/rgb`
  - `sentraq/s65_plus`
  - `sentraq/s65_x`
  - `sets3n/kk980`
  - `shambles`
  - `shandoncodes/flygone60/rev3`
  - `shandoncodes/mino/hotswap`
  - `shapeshifter4060`
  - `shiro`
  - `shk9`
  - `sidderskb/majbritt/rev2`
  - `sixkeyboard`
  - `skeletonkbd/skeletonnumpad`
  - `skme/zeno`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: W, Part 2 (#23789)

Affects:

  - `wilba_tech/rama_works_kara`
  - `wilba_tech/rama_works_koyu`
  - `wilba_tech/rama_works_m10_b`
  - `wilba_tech/rama_works_m10_c`
  - `wilba_tech/rama_works_m50_a`
  - `wilba_tech/rama_works_m50_ax`
  - `wilba_tech/rama_works_m60_a`
  - `wilba_tech/rama_works_m65_b`
  - `wilba_tech/rama_works_m65_bx`
  - `wilba_tech/rama_works_m6_a`
  - `wilba_tech/rama_works_m6_b`
  - `wilba_tech/rama_works_u80_a`
  - `wilba_tech/wt60_a`
  - `wilba_tech/wt60_b`
  - `wilba_tech/wt60_bx`
  - `wilba_tech/wt60_c`
  - `wilba_tech/wt60_d`
  - `wilba_tech/wt60_g`
  - `wilba_tech/wt60_g2`
  - `wilba_tech/wt60_h1`
  - `wilba_tech/wt60_h2`
  - `wilba_tech/wt60_h3`
  - `wilba_tech/wt60_xt`
  - `wilba_tech/wt65_a`
  - `wilba_tech/wt65_b`
  - `wilba_tech/wt65_d`
  - `wilba_tech/wt65_f`
  - `wilba_tech/wt65_fx`
  - `wilba_tech/wt65_g`
  - `wilba_tech/wt65_g2`
  - `wilba_tech/wt65_h1`
  - `wilba_tech/wt65_xt`
  - `wilba_tech/wt65_xtx`
  - `wilba_tech/wt69_a`
  - `wilba_tech/wt70_jb`
  - `wilba_tech/wt75_a`
  - `wilba_tech/wt75_b`
  - `wilba_tech/wt75_c`
  - `wilba_tech/wt80_a`
  - `wilba_tech/wt80_g`
  - `wilba_tech/zeal60`
  - `wilba_tech/zeal65`
  - `woodkeys/meira/featherble`
  - `wsk/alpha9`
  - `wsk/g4m3ralpha`
  - `wsk/gothic50`
  - `wsk/gothic70`
  - `wsk/houndstooth`
  - `wsk/jerkin`
  - `wsk/kodachi50`
  - `wsk/pain27`
  - `wsk/sl40`
  - `wsk/tkl30`
  - `wuque/ikki68`
  - `wuque/mammoth20x`
  - `wuque/mammoth75x`
  - `wuque/nemui65`
  - `wuque/tata80/wk`
  - `wuque/tata80/wkl`

* Migrate `LOCKING_*_ENABLE` to Data-Driven: X-Z (#23790)

Affects:

  - `x16`
  - `xelus/akis`
  - `xelus/dharma`
  - `xelus/kangaroo/rev1`
  - `xelus/kangaroo/rev2`
  - `xelus/ninjin`
  - `xelus/pachi/mini_32u4`
  - `xelus/pachi/rev1`
  - `xelus/snap96`
  - `xelus/xs108`
  - `xiudi/xd60/rev2`
  - `xiudi/xd60/rev3`
  - `xiudi/xd68`
  - `xiudi/xd75`
  - `xiudi/xd84pro`
  - `xiudi/xd87`
  - `xmmx`
  - `ydkb/chili`
  - `ydkb/grape`
  - `ydkb/just60`
  - `yiancardesigns/barleycorn`
  - `yiancardesigns/gingham`
  - `yiancardesigns/seigaiha`
  - `ymdk/melody96/soldered`
  - `ymdk/np21`
  - `ymdk/yd60mq`
  - `ymdk/ymd09`
  - `ymdk/ymd67`
  - `yoichiro/lunakey_mini`
  - `yushakobo/quick7`
  - `yynmt/acperience12/rev1`
  - `yynmt/dozen0`
  - `yynmt/kagamidget`
  - `zigotica/z12`
  - `zigotica/z34`
  - `zj68`
  - `zlant`
  - `zoo/wampus`
  - `zsa/moonlander`
  - `ztboards/after`
  - `ztboards/noon`

* Update GPIO macros in keymaps (#23792)

* noroadsleft's 0.25.0 Changelogs and Touch-Ups (#23793)

* Modify PR23309 changelog

Adds a direct link to the pull request.

* Add PR23329 changelog

* Update keyboard aliases file

Updates the legacy keyboard aliases for the JJ40 and JJ50, which have
been moved again for version 0.25.0.

* Minor touch-up for JJ40 rev1 readme

* 2024 Q2 changelog (#23794)

Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>

* Merge point for 2024q2 Breaking Changes.

- Remove `develop` notice from readme.

* Workaround for broken ChibiOS startup (#23822)

* Decrease CPU count by one to try and stop GHA from killing runners. (#23826)

* Vitepress conversion of docs. (#23795)

* [docs] Fix code blocks overflowing page width (#23829)

Fix code blocks overflowing page width

* [docs] Better logo SVG (#23828)

* [docs] Update "Get Started" blocks (#23830)

Update "Get Started" blocks

* [docs] Fix old anchor IDs (#23831)

* Docs theme updates (#23832)

* [docs] Remove gitbook directory (#23839)

* [docs] Organize driver & feature docs into subfolders (#23848)

Co-authored-by: Nick Brassel <nick@tzarc.org>

* Fix Vitamins Included Keymap Formatting (#23803)

* [docs] Add ability to redirect based on input path. (#23851)

* [FIX] ChibiOS: USB Digitizer and Joystick IN endpoint compilation (#23854)

Co-authored-by: Ryan <fauxpark@gmail.com>

* Add helper `make` targets for formatting and pytest. (#23858)

* Fixup build failures. (#23869)

* Fix documentation error (#23872)

Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: Ryan <fauxpark@gmail.com>

* Add SyenaKeyboards Elaruus (#23870)

* add syenakeyboard elaruus

* add syenakeyboards elaruus

* add syenakeyboards elaruus

* add syenakeyboards elaruus

* add syenakeyboards/elaruus

* add syenakeyboards elaruus

* add syenakeyboards elaruus

* add syenakeyboards elaruus

* Update keyboards/syenakeyboards/elaruus/keyboard.json

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/syenakeyboards/elaruus/keymaps/default/keymap.c

Co-authored-by: jack <0x6a73@protonmail.com>

* Update keyboards/syenakeyboards/elaruus/keymaps/via/keymap.c

Co-authored-by: jack <0x6a73@protonmail.com>

---------

Co-authored-by: Syenasweta <syenasweta@gmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>

* Fix broken link in PR checklist (#23877)

* Fix Tri-Layer Keycode Descriptions (#23888)

* [Keyboard] add jaykeeb jk60 (#23876)

* Fix Iris/Irispad keymaps (#23856)

* Re-implement `eeprom_write_qword` as define (#23890)

* Slight clarification of LED/RGB Matrix custom effect docs (#23897)

* [Keyboard] Fix settings for 4pplet/waffling60 (#23862)

* Remove VIA_ENABLE from default keymaps. (#23903)

* VIA keymap deprecation notice. (#23905)

* Fixup docs. (#23906)

* Ensure documentation pull requests build (#23908)

* Add API reference section for LED/RGB Matrix docs (#23902)

* Fix nonunique anchors (#23910)

* Add missing encode enable for BAMFK-1 (#23821)

Add missing encode enable

* Fix order of RGB LEDs to correct one for Iris CE (#23914)

* Remove suggestion of creating issues for unsupported keyboards. (#23918)

* [Keyboard] Enable dip switch for Keychron Q4 (#23889)

* fix keymap for kprepublic bm60hsrgb_iso (#23733)



Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>

* [Keyboard] Add Altair-X (#23879)


Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>

* [Keyboard] Add Altair (#23878)

Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>

* Various keyboard fixes (#23919)

* [CLI] Don't `exit()` when certain exceptions occur. (#23442)

* [Keyboard] ErgoStrafer RGB (#22936)

* adding ergostrafer rgb

* removing comment

* [CLI] Older python compat. (#23933)

* `ergodox_ez/base`: Add missing `features` object (#23935)

* Add Chiri CE (#23926)

* Add Chiri CE

* Add more layers for dynamic keymap

* Move EEPROM clear

* Convert to keymap.json

* Change bootmagic matrix position

* keyboard.json schema: set minimum value for `key_unit` (#23937)

* keyboard.json schema: set minimum value for `key_unit`

* Fix invalid `matrix_size` in keyboard.json

* Fix bad layout for silverbullet44

* Mechwild OBE/Waka60: Fix build warnings (#23929)

* Strip decimals from RGB Matrix layout positions (#23943)

* Remove references to bootloadHID flashing page in keyboard readmes (#23942)

* Remove references to bootloadHID flashing page in keyboard readmes

* Remove bootloadHID flashing page

* Update RGB matrix indicator example  (#23947)

Changed the example in indicator-examples-2 to use a compound literal, otherwise the code fails to compile.

* Update 'qmk import-kbfirmware' to use 'keyboard.json' (#23960)

* [Keyboard] fixes for ZSA Voyager (#23912)

* Fix leftover reference to previous AW20216S EN pin definition (#23974)

* Update what's powering QMK docs (#23977)

* Fix 'qmk import-kbfirmware' WS2812 config (#23976)

* Update documentation suggestion in top level readme (#23978)

* `handwired/symmetric70_proto`: add `keyboard.json` (#23966)

* Rename layouts containing keyboard name (#23930)

* Add support for userspace to docker build commands. (#23988)

* `custommk/ergostrafer_rgb`: move to keyboard.json (#23990)

* Remove some redundant 'blank' files (#23995)

---------

Signed-off-by: Stefan Kerkmann <karlk90@pm.me>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: QMK Bot <hello@qmk.fm>
Co-authored-by: Stephon Parker <sgparker62@gmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: era <73109780+eerraa@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Alabahuy <rezolutionrez@gmail.com>
Co-authored-by: Stefan Gluszek <gluszek.stefan@gmail.com>
Co-authored-by: josh-l-wang <22173775+josh-l-wang@users.noreply.github.com>
Co-authored-by: Joe Scotto <8194147+joe-scotto@users.noreply.github.com>
Co-authored-by: James Young <18669334+noroadsleft@users.noreply.github.com>
Co-authored-by: Cipulot <40441626+Cipulot@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Simon <68034180+rarepotato8de@users.noreply.github.com>
Co-authored-by: DavidSannier <david.sannier@gmail.com>
Co-authored-by: Ivan Gromov <38141348+key10iq@users.noreply.github.com>
Co-authored-by: Joy Lee <joylee.lc@foxmail.com>
Co-authored-by: wb <wb@westberrytech.com>
Co-authored-by: Druah <54309603+Druah@users.noreply.github.com>
Co-authored-by: Pavel Kroupa <63880977+Tabonx@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Nick Brassel <nick@tzarc.org>
Co-authored-by: yiancar <yiangosyiangou@cytanet.com.cy>
Co-authored-by: yiancar <yiancar@gmail.com>
Co-authored-by: Andrew Kannan <andrew.kannan@gmail.com>
Co-authored-by: Alexei Robyn <shados@shados.net>
Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alexandr <37986872+sannoization@users.noreply.github.com>
Co-authored-by: フィルターペーパー <76888457+filterpaper@users.noreply.github.com>
Co-authored-by: Vino Rodrigues <366673+vinorodrigues@users.noreply.github.com>
Co-authored-by: leep-frog <66687468+leep-frog@users.noreply.github.com>
Co-authored-by: George Secillano <george.secillano@gmail.com>
Co-authored-by: Vertex-kb <102476474+Vertex-kb@users.noreply.github.com>
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
Co-authored-by: Danny <nooges@users.noreply.github.com>
Co-authored-by: c0ldbru <dennisp98@gmail.com>
Co-authored-by: c0ldbru <c0ldbrusec@gmail.com>
Co-authored-by: Shandon Anderson <CheeseL0ver@users.noreply.github.com>
Co-authored-by: Skyler Hawthorne <skyler@dead10ck.com>
Co-authored-by: Coby Sher <63015754+CobyPear@users.noreply.github.com>
Co-authored-by: sotoba <sotoba.s+git@gmail.com>
Co-authored-by: blindassassin111 <38090555+blindassassin111@users.noreply.github.com>
Co-authored-by: gskygithub <106651989+gskygithub@users.noreply.github.com>
Co-authored-by: gksygithub <106651989+gksygithub@users.noreply.github.com>
Co-authored-by: Michael Büchler <michael.buechler@posteo.net>
Co-authored-by: VertorWang <1479115496@qq.com>
Co-authored-by: eason <98533237+EasonQian1@users.noreply.github.com>
Co-authored-by: Jerome Berclaz <jerome.berclaz@a3.epfl.ch>
Co-authored-by: Alex Mayer <amayer5125@gmail.com>
Co-authored-by: Kim Viberti <45943577+ilkimo@users.noreply.github.com>
Co-authored-by: Syenasweta a.k.a. Nashrullah Ali Fauzi <nshrllh.l.fz@gmail.com>
Co-authored-by: Syenasweta <syenasweta@gmail.com>
Co-authored-by: 4pplet <mail@4pplet.com>
Co-authored-by: adophoxia <100170946+adophoxia@users.noreply.github.com>
Co-authored-by: Myriam <myriam@halfapx.com>
Co-authored-by: ai03 <admin@ai03.com>
Co-authored-by: David Hoelscher <infinityis@users.noreply.github.com>
Co-authored-by: lizaoreo <lizaoreo@hotmail.com>
Co-authored-by: Kevin Horvat <k@horvat.swiss>
  • Loading branch information
Show file tree
Hide file tree
Showing 15,654 changed files with 650,986 additions and 679,943 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion .clangd
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CompileFlags:
Add: [-Wno-unknown-attributes, -Wno-maybe-uninitialized, -Wno-unknown-warning-option]
Remove: [-W*, -mcall-prologues]
Remove: [-W*, -mmcu=*, -mcpu=*, -mfpu=*, -mfloat-abi=*, -mno-unaligned-access, -mno-thumb-interwork, -mcall-prologues]
Compiler: clang
123 changes: 123 additions & 0 deletions .github/workflows/ci_build_major_branch.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
name: CI Build Major Branch

permissions:
contents: read
actions: write

on:
push:
branches: [master, develop]
workflow_dispatch:
inputs:
branch:
type: choice
description: "Branch to build"
options: [master, develop]

env:
# https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration#usage-limits
# We've decreased it from 20 to 15 to allow for other GHA to run unimpeded
CONCURRENT_JOBS: 15

# Ensure we only have one build running at a time, cancelling any active builds if a new commit is pushed to the respective branch
concurrency:
group: ci_build-${{ github.event.inputs.branch || github.ref_name }}
cancel-in-progress: true

jobs:
determine_concurrency:
name: "Determine concurrency"
if: github.repository == 'qmk/qmk_firmware'
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli

outputs:
slice_length: ${{ steps.generate_slice_length.outputs.slice_length }}

steps:
- name: Install prerequisites
run: |
apt-get update
apt-get install -y jq
- name: Disable safe.directory check
run: |
git config --global --add safe.directory '*'
- name: Checkout QMK Firmware
uses: actions/checkout@v4

- name: Determine concurrency
id: generate_slice_length
run: |
target_count=$( {
qmk find -km default 2>/dev/null
qmk find -km via 2>/dev/null
} | sort | uniq | wc -l)
slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution as we're splitting default and via
echo "slice_length=$slice_length" >> $GITHUB_OUTPUT
build_targets:
name: "Compile keymap ${{ matrix.keymap }}"
needs: determine_concurrency
strategy:
fail-fast: false
matrix:
keymap: [default, via]
uses: ./.github/workflows/ci_build_major_branch_keymap.yml
with:
branch: ${{ inputs.branch || github.ref_name }}
keymap: ${{ matrix.keymap }}
slice_length: ${{ needs.determine_concurrency.outputs.slice_length }}
secrets: inherit

rollup_tasks:
name: "Consolidation"
needs: build_targets
runs-on: ubuntu-latest

steps:
- name: Download firmwares
uses: actions/download-artifact@v4
with:
pattern: firmware-*
path: firmwares
merge-multiple: true

- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/${{ github.sha }}
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --follow-symlinks --delete
env:
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
SOURCE_DIR: firmwares
DEST_DIR: ${{ inputs.branch || github.ref_name }}/${{ github.sha }}

- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/latest
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --follow-symlinks --delete
env:
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
SOURCE_DIR: firmwares
DEST_DIR: ${{ inputs.branch || github.ref_name }}/latest

- name: Check if failure marker file exists
id: check_failure_marker
uses: andstor/file-existence-action@v3
with:
files: firmwares/.failed

- name: Fail build if needed
if: steps.check_failure_marker.outputs.files_exists == 'true'
run: |
# Exit with failure if the compilation stage failed
exit 1
181 changes: 181 additions & 0 deletions .github/workflows/ci_build_major_branch_keymap.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@
name: CI Build Major Branch Keymap

permissions:
contents: read
actions: write

on:
workflow_call:
inputs:
branch:
type: string
required: true
keymap:
type: string
required: true
slice_length:
type: string
required: true

jobs:
generate_targets:
name: "Generate targets (${{ inputs.keymap }})"
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli

outputs:
targets: ${{ steps.generate_targets.outputs.targets }}

steps:
- name: Install prerequisites
run: |
apt-get update
apt-get install -y jq
- name: Disable safe.directory check
run: |
git config --global --add safe.directory '*'
- name: Checkout QMK Firmware
uses: actions/checkout@v4

- name: Generate build targets
id: generate_targets
run: |
{ # Intentionally use `shuf` here so that we share manufacturers across all build groups -- some have a lot of ARM-based boards which inherently take longer
counter=0
echo -n '{'
qmk find -km ${{ inputs.keymap }} 2>/dev/null | sort | uniq | shuf | xargs -L${{ inputs.slice_length }} | while IFS=$'\n' read target ; do
if [ $counter -gt 0 ]; then
echo -n ','
fi
counter=$((counter+1))
printf "\"group %02d\":{" $counter
echo -n '"targets":"'
echo $target | tr ' ' '\n' | sort | uniq | xargs echo -n
echo -n '"}'
done
echo -n '}'
} | sed -e 's@\n@@g' > targets.json
# Output the target keys as a variable
echo "targets=$(jq -c 'keys' targets.json)" >> $GITHUB_OUTPUT
- name: Upload targets json
uses: actions/upload-artifact@v4
with:
name: targets-${{ inputs.keymap }}
path: targets.json

build_targets:
name: "Compile ${{ matrix.target }} (${{ inputs.keymap }})"
needs: generate_targets
runs-on: ubuntu-latest
container: ghcr.io/qmk/qmk_cli
continue-on-error: true

strategy:
matrix:
target: ${{ fromJson(needs.generate_targets.outputs.targets) }}

steps:
- name: Install prerequisites
run: |
apt-get update
apt-get install -y jq
- name: Disable safe.directory check
run: |
git config --global --add safe.directory '*'
- name: Checkout QMK Firmware
uses: actions/checkout@v4

- name: Get target definitions
uses: actions/download-artifact@v4
with:
name: targets-${{ inputs.keymap }}
path: .

- name: Deploy submodules
run: |
qmk git-submodule -f
- name: Dump targets
run: |
jq -r '.["${{ matrix.target }}"].targets' targets.json | tr ' ' '\n' | sort
- name: Build targets
continue-on-error: true
run: |
export NCPUS=$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null) -1 ))
qmk mass-compile -t -j $NCPUS -e DUMP_CI_METADATA=yes $(jq -r '.["${{ matrix.target }}"].targets' targets.json) || touch .failed
- name: Upload binaries
uses: actions/upload-artifact@v4
with:
name: firmware-${{ inputs.keymap }}-${{ matrix.target }}
if-no-files-found: ignore
path: |
*.bin
*.hex
*.uf2
.build/failed.*
.failed
- name: Fail build if any group failed
run: |
# Exit with failure if the compilation stage failed
[ ! -f .failed ] || exit 1
repack_firmware:
if: always()
name: "Repack artifacts"
needs: build_targets
runs-on: ubuntu-latest

steps:
- name: Checkout QMK Firmware
uses: actions/checkout@v4

- name: Download firmwares
uses: actions/download-artifact@v4
with:
pattern: firmware-${{ inputs.keymap }}-*
path: .
merge-multiple: true

- name: Upload all firmwares
uses: actions/upload-artifact@v4
with:
name: firmware-${{ inputs.keymap }}
if-no-files-found: ignore
path: |
*.bin
*.hex
*.uf2
.build/failed.*
.failed
- name: Generate output logs
run: |
# Generate the step summary markdown
./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true
# Truncate to a maximum of 1MB to deal with GitHub workflow limit
truncate --size='<960K' $GITHUB_STEP_SUMMARY || true
- name: Delete temporary build artifacts
uses: geekyeggo/delete-artifact@v5
with:
name: |
firmware-${{ inputs.keymap }}-*
targets-${{ inputs.keymap }}
- name: 'CI Discord Notification'
if: always()
working-directory: util/ci/
env:
DISCORD_WEBHOOK: ${{ secrets.CI_DISCORD_WEBHOOK }}
run: |
python3 -m pip install -r requirements.txt
python3 ./discord-results.py --branch ${{ inputs.branch || github.ref_name }} --keymap ${{ inputs.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
74 changes: 0 additions & 74 deletions .github/workflows/ci_builds.yml

This file was deleted.

Loading

0 comments on commit 31f35af

Please sign in to comment.