Changelog

v0.10.36

  • mutate() nodes: now accept update_revision_on_change: true option, to have the mutated node trigger downstream computations (idempotent behavior matching Journey.set/3). (#207)
  • compute() nodes do not trigger downstream computations if the newly computed value is unchanged (idempotent behavior, matching Journey.set/3). (#208)
  • schedule_recurring() nodes: recompute when upstream dependencies change, adding new semantics for pausing recurring scheduling (node's f_compute returning {:ok, 0}). (#203, #204)
  • relaxing ex_doc version constraint to include 0.39. (#205)

v0.10.33 - v0.10.35

  • Metadata support: Journey.set/3 now accepts metadata: %{...} option for tracking additional context.
  • Multinodal nodes: Added f_compute/2 for multi-input compute nodes and enhanced historian() for tracking node changes (EXPERIMENTAL).
  • Journey.get/3: New function returning both value and revision (soft-deprecates get_value/3).
  • Journey.new_graph/4: Added optional execution_id_prefix: "..." parameter for easier troubleshooting.
  • Journey.values/2: Added include_unset_as_nil: true option.
  • Journey.get_value/3: Enhanced with more ergonomic wait: and timeout: options, added wait_for_revision:, superseded by Journey.get/3.
  • Fully implemented reactive behavior for :or recomputations.
  • schedule_once/3 nodes now recompute on new upstream revisions.

v0.10.32

  • Graph validation: Journey.new_graph/4 to explicitly check for circular dependencies.
  • Journey.list_executions/1's filter_by: param to handle :contains, :icontains, :list_contains.
  • Renamed Journey.set_value() to Journey.set/2 / Journey.set/3 and Journey.unset_value() to Journey.unset/2, added support for atomically setting multiple values.
  • Documentation updates (graph migration notes, modules and functions summary, tidier license text).

v0.10.31

  • Expanding possible versions of ecto and ecto_sql to include 3.13, in addition to 3.12.
  • Hardening handling of computations that didn't complete due to various conditions (infrastructure reboots, crashes, redeployments, failures).