Skip to content
This repository has been archived by the owner on Jul 31, 2024. It is now read-only.

Releases: golioth/golioth-zephyr-sdk

v0.8.0

06 Nov 16:48
Compare
Choose a tag to compare

Added

  • pinout for ESP32 WROVER in samples' README files
  • support for nRF52840DK + ESP-AT platform in samples/cert-provisioning/
  • documentation (README file) for samples/rpc/
  • CONFIG_GOLIOTH_USE_CONNECTION_ID Kconfig option enables DTLS CID use

Changed

  • WiFi state machine (with implemented reconnects) has replaced previous implementation of simple one-shot connection attempt to WiFi Access Point
  • moved Python Golioth package to separate repository at https://github.com/golioth/python-golioth-tools
  • replaced samples/common/runtime_psk.conf with samples/common/runtime_settings.conf that additionally enables WiFi credentials storage in Zephyr settings subsystem
  • verified with NCS v2.5.0
  • verified with Zephyr v3.5.0

v0.7.1

11 Aug 18:43
Compare
Choose a tag to compare

Fixed

  • RPC parameter parsing when used with NCS
  • suppressed error logs when no firmware release was rolled out

Changed

  • verified with NCS v2.4.1

v0.7.0

07 Aug 20:45
Compare
Choose a tag to compare

Added

  • asynchronous API for reporting FW state: golioth_fw_report_state_cb()
  • new features in Python library for REST API calls
    • artifacts and releases handling
    • monitoring of LightDB State and LightDB Stream
  • Kconfig option for RPC maximum response length
  • Kconfig options for maximum PSK-ID and PSK lengths
  • certificate provisioning sample

Fixed

  • length verification of called RPC method
  • ignoring previously received CoAP blocks (fixes DFU with high-latency networks)

Changed

  • converted all remaining pytest test scripts from using goliothctl to Python library for REST API
    calls
  • utilize sysbuild for DFU sample
  • moved common configuration options from samples' prj.conf files to
    samples/common/Kconfig.defconfig
  • reduced default mbedTLS content length with NCS
  • converted void main() to int main() in all samples
  • moved from QCBOR to zcbor library
  • disabled MSG_TRUNC use in recv() with offloaded sockets by default (makes it compatible with
    nRF91 offloaded TLS sockets)
  • moved from esp32 board to esp32_devkitc_wroom (as in Zephyr upstream)
  • refactored certificate generation script and moved to samples/common/
  • moved hardcoded (via Kconfig) certificates from Golioth library to samples and renamed from
    CONFIG_GOLIOTH_SYSTEM_CLIENT_*_PATH to CONFIG_GOLIOTH_SAMPLE_HARDCODED_*_PATH
  • moved hardcoded (via Kconfig) PSK-ID/PSK credentials from Golioth library to samples and renamed
    from CONFIG_GOLIOTH_SYSTEM_CLIENT_PSK* to CONFIG_GOLIOTH_SAMPLE_HARDCODED_PSK*
  • use hardcoded PSK-ID/PSK credentials by default for all samples (DFU and settings samples need to
    be configured explicitly to use persistent storage) to increase consistency across samples
  • verified with NCS v2.4.0
  • verified with Zephyr v3.4.0+

v0.6.0

17 Mar 15:30
Compare
Choose a tag to compare

Added

  • LTE link monitor for nRF91

Fixed

  • flushing of reconnect requests (there is no more unwanted reconnection when using credentials from
    Zephyr settings)
  • documentation for settings in Github Actions HIL (Hardware In the Loop) tests

Breaking Changes

  • calling golioth_rpc_register() no longer automatically observes. The RPC observation is now
    established only if the user calls golioth_rpc_observe(). Existing applications that use
    RPCs will need to call golioth_rpc_observe() in the on_connect callback. Additionally, it's
    recommended to move any calls to golioth_rpc_register() outside of the on_connect callback,
    to avoid registering the same RPC method multiple times. See the rpc sample for reference.
  • calling golioth_settings_register_callback() no longer automatically observes. The settings
    observation is now established only if the user calls golioth_settings_observe().
    Existing applications that use settings will need to call golioth_settings_observe() in the
    on_connect callback. See the settings sample for reference.

Changed

  • verified with Zephyr v3.3.0
  • verified with NCS v2.3.0
  • disabled sockets_offload_poll_wrapper by default (since there is proper fix in NCS 2.3.0)
  • removed west projects filter in west-zephyr.yml to keep consistent behavior with west-ncs.yml
    (which is not filtered as well)

v0.5.0

13 Dec 21:33
Compare
Choose a tag to compare

Added

  • Python library and CLI tools for accessing Golioth REST API (scripts/python/golioth/)
  • twister+pytest tests for samples/rpc/
  • support for GOLIOTHCTL_CONFIG environment variable in pytest scripts
  • GOLIOTH_CIPHERSUITES Kconfig option, which allows selection of preferred ciphersuites used
    during DTLS handshake (by default only one ciphersuite is selected to reduce DTLS handshake)
  • configurable settings response length with GOLIOTH_SETTINGS_MAX_RESPONSE_LEN
  • support for certificate-based authentication with coap.golioth.io in sample/hello/

Fixed

  • handling of multiple desired firmware changes in samples/dfu/, which previously caused corrupted
    firmware upgrade
  • infinite loop in ciphersuite negotiation during DTLS handshake, solved by narrowing down used
    ciphersuites by introducing GOLIOTH_CIPHERSUITES Kconfig option
  • handling of CoAP observation notifications (used by observations in LightDB State, DFU desired
    firmware, RPC and Settings services) with specific (too high) CoAP observe sequence numbers, which
    resulted in ignoring incoming CoAP observe notifications
  • disconnecting (and reconnecting) from Golioth server on nRF9160 based devices, which sometimes
    resulted in deadlock on socket close operation
  • handling of CoAP requests when disconnected from Golioth server (sending/scheduling requests is no
    longer possible when disconnected and already scheduled/pending requests are cancelled once client
    gets disconnected)

Changed

  • pytest tests for samples/logging/ use introduced Python library instead of goliothctl
  • hardware tests use coap.golioth.dev (backend development version)

v0.4.0

19 Oct 18:26
Compare
Choose a tag to compare

Added

  • offloaded sockets wrapper for using interruptible poll() with drivers implementing offloaded
    variant of this system call (workarounds limitations of nRF91 offloaded sockets)
  • runtime tests with twister for most samples
  • runtime qemu_x86 tests in GitLab CI
  • LightDB DELETE sample
  • shared coap_req module used by LightDB, LightDB Stream, FW, RPC and Settings services
  • CoAP packet retransmission as part of coap_req module implementation
  • handling of DISCONNECT_RESULT WiFi management event, mainly to handle buggy WiFi drivers
    signalling such event for failed connection attempt
  • exponential backoff mechanism for subsequent reconnect attempts in samples
  • qemu_x86 platform overlay for Settings sample

Breaking Changes

Changed

  • samples wait for network interface UP and DHCP BOUND events, before returning from net_connect()
    helper function
  • verified with Zephyr v3.2.0
  • verified with NCS v2.1.0
  • changed error reporting in Settings service to contain array with errors
  • use eventfd mechanism in system_client for nRF91 family
  • reworked internal RPC and Settings services to use shared coap_req (for code deduplication and
    packet retransmission)

Removed

  • CoAP message callback registration using golioth_register_message_callback() (no longer needed
    with CoAP agnostic APIs)
  • client->on_message() callback (no longer needed with CoAP agnostic APIs)

v0.3.1

26 Sep 16:34
Compare
Choose a tag to compare

Fixed

  • added missing boards/esp32.overlay in samples/hello/
  • removed outdated documentation about esp32 WiFi credentials setup in samples/dfu/

v0.3.0

20 Sep 19:42
Compare
Choose a tag to compare

Added

  • more 'on_message' callbacks
  • RPC feature
  • Settings feature
  • configurable TLS credentials tag for Golioth system_client module
  • samples/test/ for runtime testing with mimxrt1060_evkb and nrf52840dk_nrf52840 platforms
  • support for cert-based authentication
  • 'settings list' shell command
  • links to API and external Golioth docs
  • mimxrt1060_evkb board overlays
  • gracefully handle case when no DFU releases were rolled out yet
  • initial twister runtime scripts support utilizing pytest harness and goliothctl tool

Fixed

  • fixed Doxygen build warnings
  • fixed all 'LightDB' and 'LightDB Stream' spelling

Changed

  • updated lightdb_led sample to handle "no more items" QCBOR error as an expected condition
  • use CONFIG_GOLIOTH_SAMPLE_WIFI_{SSID,PSK} credentials in samples/settings/, similar to other
    samples
  • fixed miscellaneous typos
  • removed 'net' tag from all sample.yaml files, which was the reason of filtering out 'esp32'
    platform by twister
  • verified with Zephyr post v3.2.0-rc2 (e1cb0845b49b6a4100c9e5558d37667b92f0d000)
  • verified with NCS post v2.0.0 / pre v2.1.0 (a897e619b5ac15bb27f47affd4d42c6cf8e1f49f)
  • explicitly use 'application/json' instead of 'text/plain' content formats
  • use 'enum golioth_content_format' instead of 'enum coap_content_format' in all APIs
  • all samples wait for valid connection before sending first request/packet to server
  • dropped use of deprecated 'label' DT property
  • bring back "LED -> " log messages in samples/lightdb_led/
  • replaced wifi_connect() with more generic net_connect() in samples/common/
  • enable Github workflows on every PR (which was limited to 'main' branch before)
  • settings shell message cleanups
  • reduced configured k_malloc() heap size for 'esp32' platform in all samples

Removed

  • dropped support for plaintext/unsecure UDP transport
  • dropped support for Zephyr logging v1

v0.2.0

01 Jul 18:23
Compare
Choose a tag to compare

Added

  • enabled kernel reboot command in samples/settings/ sample
  • validating of credentials at runtime:
    • PSK-ID: must contain @ character
    • PSK: cannot be empty
  • enabled use of settings subsystem for storing credentials in DFU (samples/dfu/) sample
  • consistent use of zsock_ prefix for socket APIs to keep compatibility with CONFIG_POSIX_API=y
  • added Kconfig option for Golioth system thread priority
  • enforced DTLS handshake as part of golioth_connect() API
  • added golioth_is_connected() API, which returns status of client connection
  • verified with Zephyr v3.1.0 (and updated west-zephyr.yml)
  • verified NCS v2.0.0 (and updated west-ncs.yml)

Fixed

  • fixed error code propagation from golioth_send_coap()
  • fixed Golioth logging backend registration (which fixes log filtering)
  • skip deploying docs to dev if in fork PR

Breaking Changes

  • moved net/wifi/ to samples/common/

Changed

  • updated Zephyr CI docker images in GitHub Actions and GitLab CI to v0.23.3
  • adjusted gitlint line length with checkpatch and editorconfig
  • use of west-ncs.yml in GitLab CI, instead of direct manipulation on .west/config
  • moved settings shell command implementation to samples/common/
  • updated URL of deployed doxygen site to https://zephyr-sdk-docs.golioth.io/

Removed

  • mcumgr config command group implementation
  • removed unused repositories from west-zephyr.yml (hal_st, hal_stm32, mcumgr and tinycbor)

v0.1.0

06 May 18:19
Compare
Choose a tag to compare
  • Added: Initial release, verified with Zephyr version 3.0.0 and NCS version 1.7.1
  • Changed: Moving SDK to a versioned, tagged release system. You can now call out a particular version of the Golioth Zephyr SDK in a manifest file.
  • Removed: The set of continuously verified boards listed in the SDK device matrix has been pared down to: nRF91 Development Kit, ESP32-WROOM-32D, nRF52840 DK + ESP32-WROOM-32D, QEMU x86. All other boards previously listed in the device matrix are still supported, but not verified with every release.