Skip to content

Releases: nerves-hub/nerves_hub_link

v2.9.0

04 Oct 01:47
2d8e74d

Choose a tag to compare

Added

  • The way firmware updates are downloaded and installed has been improved to support recovery of downloads in the event of application crashes and device reboots. The default update strategy has been encapsulated in a new module called NervesHubLink.UpdateManager.StreamingUpdater, while the new optional caching updater strategy is implemented in NervesHubLink.UpdateManager.CachingUpdater. New update strategies can be added by implementing the NervesHubLink.UpdateManager.Updater behaviour. Please read the module documentation for more information.
  • The firmware update progress messages sent from Link to Hub have been improved to include more detailed information about the update process, including if the update was ignored, requesting it be rescheduled, or if an error occurred. These messages are backwards compatible with older versions of NervesHub.
  • You can now connect to NervesHub using your TPM module for key and cert storage. If your project uses the TPM Hex library we will automatically configure the websocket to use the TPM module for reading the key and cert. Please refer to the readme for more information on how to configure this feature.

Updated

  • Alarms relating to disk mounts being almost (or completely) full can be ignored. Previously only / :disk_almost_full Alarms were ingored, but this can now be configured to include other mounts. Please refer to the Extensions guide for more information.
  • How NervesHubLinks checks for network availability has been improved to reduce blocking of GenServer messages. Previously :inet.gethostbyname/1 was used, but under certain circumstances calls would take over 5 seconds, which would block calls to check on the status of the connection. Using :gen_tcp.connect/4 allows for specifying a timeout, reducing the potential for the blocking of message processing.

v2.9.0-rc.1

11 Sep 00:55
b88036b

Choose a tag to compare

v2.9.0-rc.1 Pre-release
Pre-release
  • Added

    • The way firmware updates are downloaded and installed has been improved to support recovery of downloads in the event of application crashes and device reboots. The default update strategy has been encapsulated in a new module called NervesHubLink.UpdateManager.StreamingUpdater, while the new optional caching updater strategy is implemented in NervesHubLink.UpdateManager.CachingUpdater. New update strategies can be added by implementing the NervesHubLink.UpdateManager.Updater behaviour. Please read the module documentation for more information.

v2.8.1

10 Sep 22:11
56dd2a4

Choose a tag to compare

  • Added

    • Send the firmwares validation status to NervesHub when the connection is established via an optional Client.firmware_validated?/0 callback. A default implementation is provided, while supporting overriding with custom logic.
    • Poll for firmware validation changes and send an update to NervesHub when the firmware is validated.
    • Detect if a firmware revert has occurred and send this information to NervesHub when the connection is established. This is supported via an optional Client.firmware_auto_revert_detected?/0 callback. A default implementation is provided, while supporting overriding with custom logic.
    • Custom Clients can now be implemented using use NervesHubLink.Client, eliminating the need to implement all Client behavior callbacks.
  • Updated

    • Support for Elixir 1.13.x has been removed

v2.8.0

21 Aug 23:55
083f17c

Choose a tag to compare

  • Added

    • Add a client callback for when the device is connected (#312) (Thanks @amclain)
    • Enable per-message WebSocket compression via Mint extensions (#318)
  • Updated

    • Don't create duplicate Disconnected alarms (#317)
    • Clear previous CheckFailed alarms before setting a new one (#317)
    • Support the use of :alarm_handler for health reports, removing the Alarmist requirement (#317)
  • Fixed

    • SSL: cacerts no longer override cacertfile (#321) (Thanks @D4no0)

v2.7.3

15 Apr 15:17
90263d8

Choose a tag to compare

  • Fixed
    • Fix pattern match for :disksup.get_disk_data()

v2.7.2

31 Mar 22:10
a66dde5

Choose a tag to compare

  • Fixed

    • Retrieve disk info differently based on OTP version
    • Emit a warning when trying to retrieve public certs through Erlang on < OTP 25
    • Revert Backoff/Certificate move to fix breaking change
  • Updated

    • Force whenwhere 0.1.2 to fix compatibility with OTP 24 and earlier

v2.7.0

19 Mar 21:32
23c371b

Choose a tag to compare

🚧 Invalid Release 🚧

This release is now invalid, It contains unintended breaking changes to NervesHubLink.Certificate and NervesHubLink.Backoff. Please use 2.7.2.

  • Added

  • Updated

    • Use Credo within the CI build to ensure code quality (#257)
    • Fix how download retry config is fetched (#280)
    • Update documentation structure (#281)
    • Require Alarmist when using alarms in the default health report (#263)

v2.6.0

04 Dec 20:03
8268c16

Choose a tag to compare

This update includes Extensions, a mechanism to handle extensions on a device for custom data and/or reporting outside the firmware update mechanism. These are isolated from the socket as to not get in the way of potential firmware updates and can be defined in external libs as well as this one by implementing the NervesHubLink.Extensions behavior. Extensions are controlled by NervesHub and can be adjusted at the product or device level for granular control.

  • Added

    • Add support for Extensions using the Socket (#228)
      • Initial extensions supported are NervesHubLink.Extensions.Health and
        NervesHubLink.Extensions.Geo
  • Updated

    • Bump device_api_version to 2.2.0; check README for details (#255)

v2.5.2

10 Oct 01:30

Choose a tag to compare

  • Updated
    • Change to only configure if connecting (#229)

v2.5.1

09 Aug 15:02

Choose a tag to compare

  • Updated
    • Fix issue causing shared secret authentications to fail until Erlang is able
      to catch the system time up. (#225)