Highlights:
- Zephyr port updated to Zephyr v4.0
- NCS port updated to NCS v2.8
- Improved OTA stablility
Breaking Changes:
- All asynchronous callbacks now have both a statusmember and acoap_rsp_codemember to replace theresponsemember. All of the same information remains accessible. Update callback functions to match the new declaration and change anyresponse->statuschecks tostatus.
- golioth_ota_download_component()has a newuint32_t *next_block_idxparameter. Use this to resume block download. Set toNULLto use previous functionality in existing code.
- The parameters for ota_component_block_write_cb()have changed to includeblock_buffer_lenfor the actual length of data andnegotiated_block_sizeto indicate the maximum block size (may be used along withblock_idxto calculate a byte offset).
- golioth_ota_component->hashis now stored as an array of bytes instead of as a hex string.
Added:
- ESP-IDF: optional ipv6 support enabled by CONFIG_LIBCOAP_ENABLE_IPV6_SUPPORT
- LightDB/OTA/RPC: log message when an error response is received from server
- CoAP: Server-negotiated block size for blockwise uploads
- CoAP: optionally call a set_cbcallback at the end of a blockwise upload operation
- OTA: ability to resume a component download
- golioth_sys_sha256_*()API for calculating OTA component hash
- CONFIG_GOLIOTH_OTAto enable OTA component separately from fw_update component
- Numerous hardware-in-the-loop (HIL) testing improvements for both code samples and integration tests
Changed:
- Certificates: Replace ISRG Root X2 CA certificate with Golioth Root X1 CA certificate.
- Zephyr: Samples: kconfig and devicetree settings common to an SoC moved from boardsdirectory tosocsdirectory.
Fixed:
- Zephyr: Golioth coap client log messages now honor changes to the logging level.
- Zephyr: Fixed off-by-one error in Golioth backend logging message length limit.
- Zephyr: Connection ID is now properly enabled by Kconfig setting.
- Zephyr: Run user callbacks when cancelling requests.
- Linux: Error checks and max PEM size for certificate_auth sample.
Removed:
- OTA compression was removed as the feature is currently unsupported on the servers side.
- Golioth Basics sample removed from Zephyr and ESP-IDF. Existing per-feature sample code for these platforms covers everything demonstrated in that sample.
Known Issues:
- [Zephyr only] examples won't build for esp32_devkitc_wrover with support for certificates due to bugs in Zephyr that prevent all RAM banks from being made available to the application.