Skip to content
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

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

gojimmypi
Copy link
Contributor

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 and wolfmqtt_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

  • Added new component.mk files for better compatibility with ESP-IDF build system
  • Updated CMakeLists.txt files with improved component search logic
  • Added comprehensive Kconfig files with extensive configuration options
  • Reduced main task stack size in sdkconfig.defaults from 55500 to 10500
  • Added partition table configuration for single app large partition
  • Added include.am files for better integration with autotools build system

2. Component Integration Enhancements

  • Improved wolfSSL and wolfMQTT component integration
  • Added better detection of wolfSSL/wolfMQTT source directories
  • Enhanced component dependency management
  • Added support for ESP-IDF component registry
  • Improved handling of multiple component instances (local vs ESP-IDF)
  • Added compatibility with different ESP-IDF RTOS directory structures

3. Documentation Updates

  • Added detailed README.md files in example directories
  • Updated existing README.md files with improved instructions
  • Added documentation for Managed Component usage
  • Updated links to related examples and resources
  • Added placeholder README files for example code directories

4. Code Quality Improvements

  • Updated copyright notices from 2023 to 2025
  • Fixed license headers to correctly identify files as part of wolfMQTT (not wolfSSL)
  • Added git information macros for better version tracking
  • Added debugging and configuration options

5. Espressif-Specific Enhancements

  • Added hardware acceleration configuration options
  • Improved ESP-TLS integration
  • Added certificate bundle configuration
  • Added support for different ESP-IDF versions
  • Enhanced WiFi and time helper utilities

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.

Copy link
Member

@embhorn embhorn left a 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?

@gojimmypi
Copy link
Contributor Author

Hi @embhorn

Was there a reason for only incrementing to wolfMQTT v1.18.0, instead of the latest release?

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.

@dgarske dgarske requested review from embhorn and removed request for dgarske March 20, 2025 23:13
@dgarske dgarske removed their assignment Mar 20, 2025
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.

3 participants