[Feature Request] Include information to recreate build in releases
Description
In order to have repeatable builds, the git repository commits used to build the artifacts should be uploaded along with the release as well.
There are two cases:
- If a
qmk_firmwaresubmodule is used, this seems easy enough to do. - If no submodule is used, there should be a way of determining the commit that it used to build (and a way to specify it with
qmk compile, I suppose).
This could be extended into providing an SBOM for the release, but just the git commit is a good starting point.
Yep, fair enough.
Quick and dirty mucking about generated something like this:
| Path | Repository | Revision |
|---|---|---|
| . | [email protected]:tzarc/qmk_userspace.git | 7e7b454 Submodule updates. |
| ./modules/drashna | https://github.com/drashna/qmk_modules.git | 86b5b8c [RTC] Add conversion function for __TIMESTAMP__ macro |
| ./modules/getreuer | https://github.com/getreuer/qmk-modules.git | 9d10a0b Sentence Case: fix on/off/toggle keys. |
| ./modules/tzarc | [email protected]:tzarc/qmk_modules.git | 757b28a Another buffer overflow fix. |
| ./modules/tzarc/experimental/filesystem/littlefs | https://github.com/littlefs-project/littlefs.git | 8ed63b2 Merge pull request #1084 from elupus/fix/packing |
| ./modules/tzarc/experimental/lua_keymap/lib/lua | https://github.com/lua/lua.git | 1ab3208a 'lua.h' back to redundancy in version definitions |
| ./modules/tzarc/experimental/rv32_rgb_runner/lib/mini-rv32ima | https://github.com/cnlohr/mini-rv32ima.git | ac9dd82 Merge pull request #52 from daniilfigasystems/master |
| ./qmk_firmware | [email protected]:tzarc/qmk_firmware.git | 90ed47945f Add udev rule installation support. |
| ./qmk_firmware/lib/chibios | https://github.com/qmk/ChibiOS | 2365f84429 Fixed partial patch, removed an extra check. |
| ./qmk_firmware/lib/chibios-contrib | https://github.com/qmk/ChibiOS-Contrib | 3ac181e4 Merge pull request #415 from KarlK90/fix/gd32vf103-port-status |
| ./qmk_firmware/lib/chibios-contrib/ext/mcux-sdk | https://github.com/NXPmicro/mcux-sdk | 102c27d7c Propose for srtm freertos static api usage (#13) |
| ./qmk_firmware/lib/googletest | https://github.com/qmk/googletest | e2239ee6 Googletest export |
| ./qmk_firmware/lib/lufa | https://github.com/qmk/lufa | 549b97320 Use string literals for QMK bootloader manufacturer/product (#16) |
| ./qmk_firmware/lib/lvgl | https://github.com/qmk/lvgl.git | e19410f8 fix(demo): added gaurd to prevent crash if default theme is not used (#3257) |
| ./qmk_firmware/lib/pico-sdk | https://github.com/qmk/pico-sdk.git | a3398d8 Merge pull request #2 from KarlK90/feature/update-pico-sdk-to-1.5.0 |
| ./qmk_firmware/lib/printf | https://github.com/qmk/printf | c2e3b4e Fixes #137: Use strict C prototypes |
| ./qmk_firmware/lib/vusb | https://github.com/qmk/v-usb | 819dbc1 Merge pull request #2 from obdev/master |
I'll have a play and see if it can be standardised.
LGTM. Having it in JSON might be better, but that's exactly then info I was thinking. 👍
Oh I’ll likely make it generate a manifest file as json as well. Was just seeing if I could get it to spit something relevant out; can put it directly into the release notes in markdown.