CHANGELOG.md

# Changelog

This project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## 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