Repository navigation
fix(build): require mbedtls explicitly and build QEMU firmware in CI - #41
Merged
Merged
Conversation
prg32_store.c and prg32_setup_store.c include esp_crt_bundle.h, which is provided by the mbedtls component, but PRG32_PRIV_REQUIRES did not list it. The ESP32-C6 build reached the header transitively through esp_websocket_client and mdns; the ESP32-C3 QEMU build did not, so `python3 -m prg32 qemu build` failed on a fresh clone. - Add mbedtls to PRG32_PRIV_REQUIRES. - Add an `esp-idf-qemu-build` CI job that runs `python3 -m prg32 qemu build`, since CI previously built only the esp32c6 target. - Document the explicit-requirement rule and the new CI coverage. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
python3 -m prg32 qemu buildfails on a fresh clone ofmain(a8669e5) with ESP-IDF v5.4:esp_crt_bundle.his provided bymbedtls, which was missing fromPRG32_PRIV_REQUIRES. Onesp32c6the header is reachable transitively throughesp_websocket_client/mdns(appended only for that target), so the hardware build worked. On theesp32c3QEMU target it is not reachable.CI did not catch this because
esp-idf-buildonly buildsesp32c6.Changes
components/prg32/CMakeLists.txt: addmbedtlstoPRG32_PRIV_REQUIRES..github/workflows/ci.yml: newesp-idf-qemu-buildjob runningpython3 -m prg32 qemu buildinespressif/idf:v5.4.1.docs/usage/qemu.md, a troubleshooting entry, CI coverage note indocs/software/cartridges.md, anddocs/repository_structure.md.Validation (local, macOS, ESP-IDF v5.4)
python3 -m prg32 qemu build: passes (firmware,qemu_flash.bin, efuse image).python3 -m prg32 esp32c6 build: passes.git diff --check,compileall,prg32 doctor,prg32.esp32c6.ci_smoke_test,prg32 abi check, devicedemo / bachdemo / poing checks, blackjack rules test andSHA256SUMS: all pass.python3 -m prg32 test: the 74 unit tests pass; its final QEMU smoke stage could not complete in a non-interactive shell (idf.py qemu monitorrequires a TTY). Its build stages (set-target, build-firmware, build-demo-cartridge) passed.The new CI job has not run yet; this PR is its first run.
🤖 Generated with Claude Code