Update documentation every time code behavior changes or new public APIs are introduced.
Apply this checklist:
1) Docstring accuracy: If you change semantics (error handling, return values, shutdown behavior, etc.), update the docstring to match reality.
2) Public API versioning: For any new/changed public method, add the appropriate Sphinx directive (.. versionadded:: X.Y.Z / .. versionchanged:: X.Y.Z) consistently (including any related backend/base/async docstrings).
3) User-facing docs: If behavior impacts users (e.g., shutdown semantics, retries, connection handling), update the relevant documentation section and include a version note.
4) Interface/contract documentation: For new classes/steps that implement an interface, add inline documentation describing the contract/expected behavior.
5) Docs tooling for optional deps: Prefer Sphinx mechanisms like autodoc_mock_imports for optional third-party dependencies so API docs build without hiding misconfiguration.
Example (public API versioning + docstring alignment):
class BaseBackend:
def exists(self, task_id: str) -> bool:
"""Return True if a result exists for the given task id."""
# ...
.. versionadded:: 5.7.0
Example (doc update for shutdown semantics):
.. versionchanged:: X.Y.Enter the URL of a public GitHub repository