Changelog

View Source

This project follows Semantic Versioning.

v0.2.2 - 2025-04-24

  • Updates
    • Fixed dropped alarm descriptions that were reported before Alarmist starts
    • Fixed Alarmist.remove_synthetic_alarm/1 to actually work. It doesn't look like this function is actually used in practice, but it will work now.
    • Add Alarmist.synthetic_alarm_ids/0 to list what's been registered
    • Add Alarmist.subscribe_all/0 and Alarmist.unsubscribe_all/0 for ease of subscribing to all events
    • Gracefully handle redundant alarm registrations. These can happen on supervision tree restart. Extra notifications aren't sent and if alarm conditions actually did change on the re-registration, the new ones would be used.
    • Alarm modules now have a __get_alarm_def__/0 function for getting the alarm condition source code

v0.2.1 - 2025-03-27

  • Updates
    • Fix serious issue with incorrect clearing of timers that affects synthetic alarms that use timers such as Debounce, Intensity, and Hold. Timeouts could be missed. Thanks to @x4lldux for reporting the issue.
    • Improve compile-time checks for defalarm
    • Various documentation improvements and an example
    • Update licensing and copyright for REUSE compliance

v0.2.0 - 2024-12-09

This is a backwards incompatible update. The following changes are needed:

  1. Replace all calls to Alarmist.current_alarms/0 with Alarmist.get_alarm_ids/0. This is a hard deprecation.
  2. Update all message handling on Alarmist events to expect and use the Alarmist.Event.t(). In most usage, this means matching on :id and :state and it should simplify the handling functions.
  • Updates
    • Simplify the API by completely abstracting away the internal implementation with uses the PropertyTables library. This will allow for further internal improvements without forcing breaking changes.
    • Align the API for getting alarms with :alarm_handler. This added the Alarmist.get_alarms/0 function.
    • Remove a race condition involving the use of alarm descriptions. Descriptions are sent to subscribers with the alarm status change notification now.
    • Use one timestamp value for all alarms that were set at initialization time. This removes the ambiguity of whether an alarm changed a few milliseconds after Alarmist start up or was one of the original alarms.
    • Report when alarms are in an :unknown state when no information is available. This is useful for the :previous_state field in alarm events.

v0.1.3 - 2024-09-26

  • Updates
    • Don't crash on non-atom Alarm IDs. Alarmist doesn't support these yet so they're currently ignored.

v0.1.2 - 2024-03-04

First public release

v0.1.1 - 2024-02-29

  • Updates
    • Delay swapping alarm handler until supervision tree started to fix possible crash on startup

v0.1.0 - 2024-01-19

Initial release