-
Notifications
You must be signed in to change notification settings - Fork 158
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update examples for latest Managed Components #420
Update examples for latest Managed Components #420
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! Was there a reason for only incrementing to wolfMQTT v1.18.0, instead of the latest release?
Hi @embhorn
My wolfMQTT 1.18.0-preview7c is based on the v1.18.0 release of wolfMQTT, not the latest release. In part this is for completeness, but also to confirm that Managed Component versioning working as desired in the ESP Registry. For instance, see espressif/idf-component-manager#81 I'm a bit behind on releases, and this allows me to confirm each incremental release is working as desired, in a relatively short timeframe. You'll see that as of today, there's never been a non-preview release of the wolfMQTT Managed Component: https://components.espressif.com/components/wolfssl/wolfmqtt/ This PR is based on the latest master as there would otherwise be unresolved merge conflicts to apply changes at the v1.18.0 tag. Similarly, I tried basing wolfSSH changes on the respective release branch in wolfSSL/wolfssh#770. As you can see, even without a merge conflict, I got into a tangled mess there with GitHub workflows. Once this PR is approved, I plan to take these same changes to examples and apply them to the actual releases of wolfMQTT and publish. There will be a home page note in the Espressif component, similar to this one for wolfSSH, to indicate that the version includes post release updates to examples: https://components.espressif.com/components/wolfssl/wolfssh/versions/1.4.20 You'll see that I published wolfSSH v1.4.19 just a week prior to that one: https://components.espressif.com/components/wolfssl/wolfssh/versions/1.4.19 The core wolfMQTT library is otherwise unchanged for each release. Only the examples are updated. Thank you for taking a look at these proposed changes. |
Hi @gojimmypi Is there a way to add CI testing for the ESP component? Like is there a simulator that could be used to setup some GitHub workflow tests? |
Hi @embhorn
There's not much we can do for real networking beyond the current compiling tests via the docker-Espressif.yml. I had tried to go down the road of self-hosted runners, but ran into a known problem where they get deleted unexpectedly.
That's a great question! There may be the possibility of using qemu using the tap networking. I'll see if I can get that working. In any case, I should add support for testing the Managed Components, too. As soon as this PR is approved, I'll publish a stable release. |
Sounds good. This is a significant amount of code and not having any CI tests is concerning. I'll approve and merge. |
Update Espressif ESP-IDF Examples for Latest Managed Components
This pull request updates the Espressif ESP-IDF examples in the wolfMQTT repository to improve compatibility with the latest Managed Components system. The changes focus on two main example projects:
AWS_IoT_MQTT
andwolfmqtt_template
.Updates Espressif examples to work properly with the ESP Registry Managed Components for wolfSSL.
These are the as-published files for the gojimmypi/mywolfmqtt v1.18.0-preview7c
Key Changes
1. Build System Improvements
component.mk
files for better compatibility with ESP-IDF build systemCMakeLists.txt
files with improved component search logicinclude.am
files for better integration with autotools build system2. Component Integration Enhancements
3. Documentation Updates
4. Code Quality Improvements
5. Espressif-Specific Enhancements
Summary
This PR significantly improves the Espressif ESP-IDF examples for wolfMQTT by enhancing build system integration, adding comprehensive configuration options, improving documentation, and ensuring compatibility with the latest Espressif Managed Components system. These changes make it easier for users to integrate wolfMQTT into their Espressif ESP32 projects, particularly when using the ESP-IDF component registry.