Skip to content

chore: update emil - #21

Merged
gabrielfrasantos merged 6 commits into
mainfrom
feature/update-emil
Apr 4, 2026
Merged

chore: update emil#21
gabrielfrasantos merged 6 commits into
mainfrom
feature/update-emil

Conversation

@gabrielfrasantos

Copy link
Copy Markdown
Contributor

No description provided.

Copilot AI review requested due to automatic review settings April 4, 2026 08:46
@gabrielfrasantos

gabrielfrasantos commented Apr 4, 2026

Copy link
Copy Markdown
Contributor Author

⚠️MegaLinter analysis: Success with warnings

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ ACTION actionlint 5 0 0 0.34s
✅ CPP clang-format 15 6 0 0 0.58s
✅ CPP cppcheck 15 0 0 0.97s
✅ DOCKERFILE hadolint 1 0 0 0.35s
✅ JSON jsonlint 7 0 0 0.23s
✅ JSON prettier 7 2 0 0 0.92s
⚠️ MARKDOWN markdownlint 12 1 19 0 1.5s
✅ MARKDOWN markdown-table-formatter 12 1 0 0 0.6s
✅ REPOSITORY git_diff yes no no 0.34s
✅ REPOSITORY grype yes no no 29.74s
✅ REPOSITORY ls-lint yes no no 0.06s
✅ REPOSITORY secretlint yes no no 44.09s
✅ REPOSITORY syft yes no no 1.3s
✅ REPOSITORY trivy yes no no 6.38s
✅ REPOSITORY trivy-sbom yes no no 1.15s
✅ REPOSITORY trufflehog yes no no 8.2s
⚠️ SPELL lychee 38 3 0 87.28s
✅ YAML prettier 8 1 0 0 0.64s
✅ YAML v8r 8 0 0 5.57s
✅ YAML yamllint 8 0 0 0.47s

Detailed Issues

⚠️ SPELL / lychee - 3 errors
[ERROR] file://.github/copilot-instructions.md | Cannot find file
[ERROR] http://mcd.rou.st.com/modules.php?name=mcu | Network error: error sending request for url (http://mcd.rou.st.com/modules.php?name=mcu) Maybe a certificate error?
[404] https://api.securityscorecards.dev/projects/github.com/embedded-pro/hal-st | Network error: Not Found
[TIMEOUT] https://st.com/ | Timeout
📝 Summary
---------------------
🔍 Total..........247
✅ Successful.....240
⏳ Timeouts.........1
🔀 Redirected.......0
👻 Excluded.........3
❓ Unknown..........0
🚫 Errors...........3

Errors in README.md
[TIMEOUT] https://st.com/ | Timeout
[404] https://api.securityscorecards.dev/projects/github.com/embedded-pro/hal-st | Network error: Not Found

Errors in .github/ISSUE_TEMPLATE/add-or-update-hal-driver.md
[ERROR] http://mcd.rou.st.com/modules.php?name=mcu | Network error: error sending request for url (http://mcd.rou.st.com/modules.php?name=mcu) Maybe a certificate error?

Errors in .github/agents/orchestrator.agent.md
[ERROR] file://.github/copilot-instructions.md | Cannot find file
⚠️ MARKDOWN / markdownlint - 19 errors
.github/agents/executor.agent.md:11 MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "You are the executor agent for..."]
.github/agents/orchestrator.agent.md:18:401 MD013/line-length Line length [Expected: 400; Actual: 420]
.github/agents/orchestrator.agent.md:18 MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "You are the orchestrator agent..."]
.github/agents/planner.agent.md:11 MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "You are the planner agent for ..."]
.github/agents/planner.agent.md:39 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
.github/agents/reviewer.agent.md:14 MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "You are the reviewer agent for..."]
.github/agents/reviewer.agent.md:122 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
.github/instructions/hal-st-cpp.instructions.md:18 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"]
.github/ISSUE_TEMPLATE/add-or-update-hal-driver.md:10 MD025/single-title/single-h1 Multiple top-level headings in the same document [Context: "How to import a HAL driver"]
.github/prompts/orchestrate.prompt.md:8 MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: "Start a new development workfl..."]
CHANGELOG.md:83 MD024/no-duplicate-heading Multiple headings with the same content [Context: "⚠ BREAKING CHANGES"]
CHANGELOG.md:87 MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:94 MD024/no-duplicate-heading Multiple headings with the same content [Context: "Bug Fixes"]
CHANGELOG.md:103 MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:122 MD024/no-duplicate-heading Multiple headings with the same content [Context: "Bug Fixes"]
CHANGELOG.md:140 MD024/no-duplicate-heading Multiple headings with the same content [Context: "⚠ BREAKING CHANGES"]
CHANGELOG.md:144 MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:151 MD024/no-duplicate-heading Multiple headings with the same content [Context: "Features"]
CHANGELOG.md:162 MD024/no-duplicate-heading Multiple headings with the same content [Context: "Bug Fixes"]

See detailed reports in MegaLinter artifacts

Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)

  • Documentation: Custom Flavors
  • Command: npx mega-linter-runner@9.0.1 --custom-flavor-setup --custom-flavor-linters ACTION_ACTIONLINT,CPP_CPPCHECK,CPP_CLANG_FORMAT,DOCKERFILE_HADOLINT,JSON_JSONLINT,JSON_PRETTIER,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,REPOSITORY_GIT_DIFF,REPOSITORY_GRYPE,REPOSITORY_LS_LINT,REPOSITORY_SECRETLINT,REPOSITORY_SYFT,REPOSITORY_TRIVY,REPOSITORY_TRIVY_SBOM,REPOSITORY_TRUFFLEHOG,SPELL_LYCHEE,YAML_PRETTIER,YAML_YAMLLINT,YAML_V8R

MegaLinter is graciously provided by OX Security

Comment thread services/st_util/StBootloaderCommunicatorUart.cpp
Comment thread services/st_util/StBootloaderCommunicatorUart.cpp

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the emil dependency and adapts the codebase to API/type changes introduced by that update (notably migrating from infra::Optional / infra::Variant to std::optional / std::variant, and updating echo-related include/library targets).

Changes:

  • Bump emil Git tag and enable EMIL_BUILD_ECHO_COMPILERS.
  • Migrate multiple modules from infra::Optional/infra::Variant to std::optional/std::variant (including in_place/nullopt/make_optional call sites).
  • Update integration-test and networking/echo includes + CMake link targets to newer component names.

Reviewed changes

Copilot reviewed 44 out of 44 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
services/st_util/StBootloaderCommunicatorUart.hpp Switch receive-buffer bookkeeping to std::optional.
services/st_util/StBootloaderCommunicatorUart.cpp Replace infra optional/in-place usage with std equivalents.
integration_test/tester/Tester.cpp Update creator callback to use std::optional.
integration_test/tester/Main.cpp Update creator callback to use std::optional.
integration_test/tester/ForwardingEchoToTested.hpp Update ServiceForwarder include path.
integration_test/runner/StepsUart.cpp Update context construction API (Emplaceemplace).
integration_test/runner/StepsGpio.cpp Update context construction API (Emplaceemplace).
integration_test/runner/Hooks.cpp Update context construction API (Emplaceemplace).
integration_test/logic/Tester.hpp Change proxy creators to std::optional.
integration_test/logic/Tester.cpp Replace infra::none/Emplace with std::nullopt/emplace.
integration_test/logic/test/TestFlash.cpp Update echo test-double include paths.
integration_test/logic/test/CMakeLists.txt Link against new echo-core test-doubles target.
integration_test/logic/Peripheral.hpp Simplify peripheral construction via std::apply + constructed.Emplace.
integration_test/logic/CMakeLists.txt Link against services.echo_core instead of protobuf.echo.
hal_st/synchronous_stm32fxxx/SynchronousUartStm.hpp Convert RTS/CTS pins from infra optional to std::optional.
hal_st/synchronous_stm32fxxx/SynchronousUartStm.cpp Convert .Emplace() calls to .emplace().
hal_st/stm32fxxx/UsbHostLinkLayerStm.hpp Migrate variant/optional members to std types.
hal_st/stm32fxxx/UsbHostLinkLayerStm.cpp Use std::in_place_type and std::nullopt.
hal_st/stm32fxxx/TimerStm.hpp Convert trigger optional to std::optional and include <optional>.
hal_st/stm32fxxx/SpiMasterStm.hpp Convert interrupt registration optional to std::optional.
hal_st/stm32fxxx/SpiMasterStm.cpp Convert .Emplace()/reset to .emplace()/std::nullopt.
hal_st/stm32fxxx/SingleSpeedQuadSpiStmDma.cpp Replace infra::none with std::nullopt in QSPI header.
hal_st/stm32fxxx/QuadSpiStm.cpp Replace ValueOr with value_or.
hal_st/stm32fxxx/DmaStm.hpp Convert IRQ handler storage to std::variant.
hal_st/stm32fxxx/DmaStm.cpp Convert optional usage + variant construction/get to std equivalents.
hal_st/stm32fxxx/DigitalToAnalogPinStm.hpp Convert internal pin optional to std::optional and include <optional>.
hal_st/stm32fxxx/DigitalToAnalogPinStm.cpp Replace infra::inPlace with std::in_place.
hal_st/stm32fxxx/AdcTimerTriggeredBase.cpp Replace infra::MakeOptional with std::make_optional.
hal_st/stm32fxxx/AdcDmaStm.cpp Replace infra::MakeOptional with std::make_optional.
hal_st/middlewares/ble_middleware/TracingGapCentralSt.hpp Update API to return std::optional.
hal_st/middlewares/ble_middleware/TracingGapCentralSt.cpp Update implementation signature to std::optional.
hal_st/middlewares/ble_middleware/GattServerSt.cpp Switch UUID variant checks/accessors to std variant utilities.
hal_st/middlewares/ble_middleware/GattClientSt.cpp Switch UUID variant emplace to .emplace<>.
hal_st/middlewares/ble_middleware/GapCentralSt.hpp Update API to return std::optional.
hal_st/middlewares/ble_middleware/GapCentralSt.cpp Replace infra::none/MakeOptional with std equivalents.
hal_st/middlewares/ble_middleware/BleDtmSt.hpp Update API to return std::optional<uint16_t> and include <optional>.
hal_st/middlewares/ble_middleware/BleDtmSt.cpp Replace optional creation/reset with std equivalents.
hal_st/cortex/InterruptCortex.hpp Convert IRQ optional to std::optional and include <optional>.
hal_st/cortex/InterruptCortex.cpp Replace infra::none resets with std::nullopt.
hal_st_lwip/instantiations_lwip/EthernetSmiObserver.hpp Convert peripheral optionals to std::optional.
hal_st_lwip/instantiations_lwip/EthernetSmiObserver.cpp Replace infra::inPlace/Emplace/none with std equivalents.
hal_st_lwip/instantiations_lwip/Ethernet.hpp Update LLMNR include + connected optional handling.
hal_st_lwip/instantiations_lwip/CMakeLists.txt Link against services.network.dns.
CMakeLists.txt Update emil tag and enable echo compilers build option.
Comments suppressed due to low confidence (1)

hal_st/middlewares/ble_middleware/GattServerSt.cpp:13

  • This file uses std::holds_alternative, std::get, and std::abort() but does not include the corresponding standard headers. Consider adding #include <variant> and #include <cstdlib> here to avoid relying on transitive includes from other headers.
    uint8_t UuidToType(const services::AttAttribute::Uuid& uuid)
    {
        if (std::holds_alternative<services::AttAttribute::Uuid16>(uuid))
            return 0x01;
        else if (std::holds_alternative<services::AttAttribute::Uuid128>(uuid))
            return 0x02;

        std::abort(); // Unsupported uuid type
    }

Comment thread services/st_util/StBootloaderCommunicatorUart.hpp
Comment thread hal_st/synchronous_stm32fxxx/SynchronousUartStm.hpp
Comment thread hal_st/stm32fxxx/SpiMasterStm.hpp
Comment thread hal_st/stm32fxxx/UsbHostLinkLayerStm.hpp
Comment thread integration_test/logic/Tester.hpp
Comment thread hal_st/middlewares/ble_middleware/TracingGapCentralSt.hpp
Comment thread hal_st_lwip/instantiations_lwip/EthernetSmiObserver.hpp
Comment thread hal_st_lwip/instantiations_lwip/Ethernet.hpp Outdated
Comment thread integration_test/tester/Tester.cpp
Comment thread integration_test/tester/Main.cpp
@gabrielfrasantos
gabrielfrasantos merged commit 37df9d1 into main Apr 4, 2026
14 checks passed
@gabrielfrasantos
gabrielfrasantos deleted the feature/update-emil branch April 20, 2026 09:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants