Notable changes to this library. It follows Keep a Changelog and Semantic Versioning.

Unreleased

0.1.2 - 2026-08-24

Fixed

  • The Installing snippet listed the agent as a dependency. It does not need listing: this package depends on it, so mix resolves and builds it. Verified against Hex with a project depending on nothing else.

0.1.1 - 2026-08-24

Fixed

  • The Installing snippet in the README asked for git dependencies, which is what they were before this package was on Hex, and did not say that manager: and override: belong in the consuming application rather than here. Documentation only; no code changed between 0.1.0 and this.

Added

  • RELEASING.md, listing every file a release has to touch and the order the two packages go out in. The README dependency snippet is the one nothing checks and the one that was wrong here.

0.1.0 - 2026-08-24

First release. An Elixir face for nerves_hub_link_atomvm_esp32, verified on hardware.

Added

  • NervesHubLink, delegating to the agent: start_link/1 and start/1 taking a keyword list, child_spec/1 for a supervision tree, and the functions a device reports back with.
  • NervesHubLink.Logger, which exists because AtomVM's :logger raises badarg on a binary message before any handler sees it, and Elixir strings are binaries.
  • mix nerves_hub.sign, signing a packbeam without building an escript inside deps, verifying the result before it can be uploaded.
  • mix nerves_hub.atomvm.vm, building the AtomVM firmware a device needs from the files the agent ships in priv/atomvm.
  • examples/kiosk, a device as a GenServer under a Supervisor, with NervesHub events arriving as handle_info/2.
  • A test that reads every remote call out of the compiled BEAM files and checks it against what AtomVM actually ships, because a call to a missing module compiles cleanly, passes on the host, and takes the application down on the device.

Publishing

Hex will not take a package whose dependencies are not themselves on Hex, nor one carrying override: or manager:, so nerves_hub_link_atomvm_esp32 is published first and the dependency here becomes a bare version requirement. See mix.exs.