Skip to content

Processes v3.1.0

Choose a tag to compare

@oliverm91 oliverm91 released this 14 Jun 01:48
· 76 commits to main since this release

v3.1.0 — Failure Context in Logfiles, PEP 561, Docs Refresh

✨ New Features

  • Failure context in task logfiles: when a task fails, its logfile now
    includes the same structured information shown in the HTML failure email —
    function name, args/kwargs, downstream impact, traced-vars location, and
    the traceback — not just the bare exception message and stack trace.

🔧 Refactoring

  • Introduced _ErrorData, a typed view over the internal task_context
    payload, and _ErrorContextFormatter, a shared base class for the email
    and logfile formatters. Both formatters now read one typed object instead
    of independently pulling fields out of an untyped dict.
  • Extracted plain-text logfile rendering into a new _log_formatting module
    (_TaskLogFormatter), keeping _email_internals focused on SMTP/HTML
    concerns only.

📦 Packaging

  • Added PEP 561 support: shipped py.typed marker and the
    "Typing :: Typed" classifier, so downstream mypy/pyright runs pick up
    this package's type hints.
  • Removed the stale version_files entry from [tool.commitizen] (version
    is sourced from git tags via hatch-vcs).
  • Refined the package description to lead with what the library does and
    call out that tasks are plain callables.

📚 Documentation

  • Configured mkdocstrings for NumPy-style docstrings (docstring_style: numpy) and enabled heading/signature rendering — the API Reference page
    now shows class names, method sections, and proper parameter/attribute
    lists instead of flat paragraphs.
  • Updated the "Customizing the HTML email" section and Quick Start example
    to use SMTPConfig/HTMLEmailStyle (the old HTMLSMTPHandler references
    were stale after the v3.0.0 API change).
  • Added a "Retries & Timeouts" section to the advanced example, documenting
    timeout, retries, and retry_on.

🧹 CI

  • Bumped actions/checkout and astral-sh/setup-uv to their latest
    available major tags (v6) across all workflows to silence Node 20
    deprecation warnings.