2.0.0

2.0.0 is the first release in Wove’s remote task environment series. It keeps Wove’s inline workflow model, but adds the execution-environment layer needed to send selected tasks outside the current Python process.

Runtime Configuration

  • Adds process-wide configuration through wove.config(...).

  • Adds optional wove_config.py discovery for project-level configuration.

  • Uses WOVE_CONFIG = {...} as the dictionary-based config file shape.

  • Adds default_environment and named environments so projects can keep most work local while routing selected tasks elsewhere.

  • Adds precedence rules for task-level options, weave-level options, environment defaults, global defaults, and built-in defaults.

Task Execution

  • Adds environment=... routing at the weave and task level.

  • Adds task-level delivery policy options for work that crosses an executor boundary.

  • Expands merge(...) so sync tasks can call it directly and async tasks can continue awaiting it.

  • Allows merged callables to be sync or async regardless of whether the calling task is sync or async.

  • Adds @w.do(...)-style execution options to merge(...): retries, timeout, workers, limit_per_minute, environment, and the delivery_* policy options.

  • Routes merge(..., environment=...) through the configured executor runtime so merged helper work can run in remote task environments.

  • Adds delivery timeout, idempotency key, cancellation mode, heartbeat interval, max-in-flight, and orphan policy settings.

  • Adds normalized delivery exceptions for timeout, orphaned work, missing dispatch support, and remote execution errors.

  • Keeps local execution dependency-light by moving dispatch serialization behind the optional wove[dispatch] extra.

Executors

  • Adds a public executor interface for custom execution engines.

  • Adds local execution, stream-based stdio subprocess execution, and network executor delivery.

  • Adds HTTP/HTTPS, gRPC, and WebSocket executors for direct worker-service integrations.

  • Adds network executor security for signed requests, bearer tokens, TLS requirements, and explicit insecure development configuration.

Backend Adapters

  • Adds adapter-backed remote task execution for existing task systems.

  • Ships adapters for Celery, Temporal, Ray, RQ, Taskiq, ARQ, Dask, Kubernetes Jobs, AWS Batch, and Slurm.

  • Keeps backend libraries optional: adapter code ships with Wove, but each backend package is required only when that adapter is selected.

  • Keeps Slurm support on the portable sbatch/scancel path by default instead of requiring pyslurm and host Slurm libraries during generic adapter testing.

  • Adds callback-based result delivery for backend-owned work so remote workers can return task results, task errors, cancellation, and delivery events to the local weave.

  • Adds worker entrypoints for synchronous and asynchronous backend workers.

Packaging

  • Exposes wove.__version__ for runtime version checks.

  • Includes py.typed in the distribution so type checkers can recognize Wove as a typed package.

  • Declares pytest directly in the development dependency set used by the test workflow.

  • Marks documentation dependencies with their supported Python versions while keeping the core package available on Python 3.8+.

Documentation

  • Adds the Sphinx and Shibuya documentation site.

  • Adds topic pages for the core workflow, task mapping, task quality-of-life options, inheritable weaves, helper functions, error handling, debugging, background processing, remote task environments, and production patterns.

  • Adds reference pages for the public API, environments, executors, backend adapters, runtime modules, network security, and version history.

  • Adds per-integration setup pages for network executors and backend adapters.

  • Adds GitHub Actions workflows for validating docs builds and publishing the generated site with GitHub Pages.

  • Updates the README to mirror the documentation index while keeping badges and project branding.