The GitHub Actions job "Check newsfragment PR number" on 
airflow.git/feature/deadline-response-serialization has succeeded.
Run started by GitHub user seanghaeli (triggered by seanghaeli).

Head commit for run:
352702c10f092e948a43954c7eaccdeb309005dd / Sean Ghaeli <[email protected]>
Make deadline reads and serialization robust to dynamic/malformed intervals

Hardens the read and (de)serialization paths for deadline alerts so dynamic
(``VariableInterval``) and malformed stored data no longer break the UI/API.

- UI deadline-alert response: ``DeadlineAlert.interval`` is a JSON column 
holding
  the Airflow-serialized interval, not a plain number. Coerce it to seconds for 
a
  fixed ``timedelta`` and to ``None`` for a dynamic ``VariableInterval`` 
(resolved
  later by the scheduler), instead of letting Pydantic 500 on the dict. The
  ``interval`` field becomes ``float | None``.
- Drop ``interval`` from the sortable columns of the deadline-alerts endpoint:
  ordering by a JSON column sorts by structure/text, not duration, so the result
  was arbitrary and misleading.
- Deserialization: route by the encoder-stamped ``__class_path`` ahead of the
  ``reference_type`` name (a custom reference may share a class name with a
  builtin), and raise a clear error for a reference with no importable
  ``__class_path`` instead of an opaque ``KeyError``.
- ``Deadline.__repr__`` / ``DeadlineAlert.__repr__`` no longer raise: guard the
  ``dagrun`` relationship (the FK can be set while the relationship is None 
after a
  cascade delete) and handle the dict-shaped JSON interval. A ``__repr__`` must
  never raise.
- ``prune_deadlines`` explicitly excludes deadlines already marked ``missed`` 
so a
  missed deadline (whose callback is owned by the scheduler/triggerer) and its
  queued callback are never cascade-deleted.

Generated-by: Claude Code (Opus via Claude Code) on behalf of Sean Ghaeli

Report URL: https://github.com/apache/airflow/actions/runs/28058443931

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to