Skip to content

Processes v7.0.0

Choose a tag to compare

@oliverm91 oliverm91 released this 21 Jun 03:58
· 9 commits to main since this release

v7.0.0 (2026-06-20)

BREAKING CHANGE

  • Task(channels=...) and the NotificationChannel API are removed;
    HTMLEmailStyle.style and traced_vars_frame_filter are removed (the latter moves
    to Task). Per-task email/webhook alerts are replaced by report.notify.

Feat

  • add process name to report, email subject, and webhook payload
  • normalize task names to lowercase for case-insensitive matching
  • delegate notifications to ProcessExecutionReport, drop per-task channels
  • replace notify_errors with notify(only_errors=...) and add task filter
  • implement WebhookChannel and EmailChannel send_report
  • add ReportChannel architecture for report notifications
  • add ProcessExecutionReport.notify/.notify_errors stubs
  • add ProcessExecutionReport.to_json
  • add graph mutation methods to Process

Refactor

  • group communication code into a comms/ package
  • unify SMTP and webhook transport behind single classes
  • extract task value types to leaf module, break import cycle

Perf

  • cache palette CSS and report template loading
  • cache language string loading
  • add slots=True to frozen value types

v6.0.0 (2026-06-15)

BREAKING CHANGE

  • Process.run() returns ProcessExecutionReport instead of
    ProcessResult. Use report.successes / report.errored / report.skipped
    instead of passed_tasks_results / errored_tasks / skipped_tasks, and
    report.entries[name].result / .error instead of
    passed_tasks_results[name] / failed_tasks_results[name].

Feat

  • remove ProcessResult, have Process.run() return ProcessExecutionReport
  • expand TaskStatus with PENDING and add status field to TaskResult
  • add ProcessExecutionReport for per-task execution summaries
  • track failed task results in ProcessRunner and ProcessResult
  • promote ErrorData to public API and add timing/attempts to TaskResult

Fix

  • make Task.run never propagate dependency-resolution failures

Refactor

  • drop _is_unrunnable side effect and reuse TaskResult helpers

v5.0.0 (2026-06-14)

BREAKING CHANGE

  • log_path and func swap positions; existing positional
    Task(name, log_path, func, ...) calls must be updated to
    Task(name, func, log_path, ...).

Feat

  • add nest_under option to WebhookConfig for nested payload envelopes
  • make Task.log_path optional, reorder constructor signature

v4.1.0 (2026-06-14)

Feat

  • add extra_payload to WebhookConfig for service-specific routing keys
  • include traced variables in task logfiles
  • add generic WebhookChannel with optional HMAC body signing

Refactor

  • make traced_vars a plain {name: repr(value)} dict

v4.0.0 (2026-06-14)

BREAKING CHANGE

  • Task no longer accepts smtp_config or email_style.
    Pass channels=[EmailChannel(smtp_config, style)] instead.

Feat

  • add NotificationChannel abstraction with file and email channels

Refactor

  • configure email alerts via channels instead of Task smtp_config
  • keep file and email channel implementations internal
  • build task handlers through notification channels

v3.1.1 (2026-06-13)