Release Notes¶
v1.0.0¶
- 📦 PyPI - Build 1.0.0
- ⚙️ Feature: on_input_change policy for resume workflows (#281)
- ⚙️ Feature: Managed DotFlow with name, idempotent start, and CLI cleanup (#269)
- ⚙️ Feature: Add dotflow login with device flow and config file (#269)
- ⚙️ Feature: Add --resume flag to dotflow start CLI (#267)
- ⚙️ Feature: Add --workflow flag to dotflow start (#259)
- ⚙️ Feature: Managed-mode ServerAPI provider and task numbering (#257)
- ⚙️ Feature: Use background threads for non-blocking server updates (#243)
- ⚙️ Feature: Improve model_dump_json truncation strategy (#252)
- 🪲 Bug: Honour WORKFLOW_ID env var in DotFlow constructor (#264)
- 🪲 Bug: Fix entry point separator to use module.path:attribute format (#262)
- 🪲 Bug: Fix TimeoutError not caught on Python 3.9/3.10 (#245)
- 🪲 Bug: Fix ServerDefault update_task payload and add sequential_group docs (#241)
- ⚠️ Security: Patch 12 Dependabot security vulnerabilities
- 📘 Docs: Change license from MIT to Apache-2.0 (#255)
v0.15.0¶
- 📦 PyPI - Build 0.15.0
- 🪲 Bug: _serialize_context crashes when storage is a list of non-Context objects
- 🪲 Bug: _crontab_to_aws generates invalid EventBridge cron — */N not supported
- ⚙️ Feature: Add Alibaba Cloud Function Compute deployer
- ⚙️ Feature: Implement Server provider for remote API communication
- ⚙️ Feature: dotflow deploy CLI — cross-cloud infrastructure generation
- ⚙️ Feature: Add warning/debug log levels and workflow-level logging to Log ABC
- ⚙️ Feature: OpenTelemetry integration — traces and spans per workflow/task
- 📌 Remove external dotflow-mongodb package references
- ⚙️ Refactor: Separate Engine from Execution Strategy
- ⚠️ Security: Remove shell injection vulnerability in write_file_system
- 🪲 Bug: Parallel strategy still uses Execution instead of TaskEngine
- 🪲 Bug: StorageFile.get() returns empty list for missing keys — breaks resume=True
- 🪲 Bug: StorageDefault uses ctypes.cast(id) — unsafe memory access
- 🪲 Bug: traceback_error() ignores error parameter — uses sys.exc_info()
- 🪲 Bug: SerializerTask.model_dump_json() mutates self and produces truncated invalid JSON
- 🪲 Bug: Async task execution creates new event loops with asyncio.run()
- 🪲 Bug: Module class uses spec_from_file_location instead of importlib.import_module
- 🪲 Bug: StorageFile.post() crashes with AttributeError on corrupted task files
- 🪲 Bug: InitCommand uses hardcoded TEMPLATE_REPO instead of Settings constant
- 🪲 Bug: CLI --storage s3/gcs crashes with TypeError — missing required bucket argument
- 🪲 Bug: Context setters silently ignore invalid values
- 🪲 Fix PR #202 review issues — duration, executor leak, checkpoint, docstring
- 🪲 Fix deploy scheduled platforms, add ECSScheduledDeployer and ScheduleResolver
v0.14.1¶
- 📦 PyPI - Build 0.14.1
- 🪲 Fix co_varnames to only include parameters, not local variables
- 🪲 Fix method ordering to use regex matching instead of string search
- 🪲 Fix fork multiprocessing on macOS with OBJC safety flag
- 🪲 Fix timeout thread leak in ThreadPoolExecutor
- 🪲 Add thread-safe lock to Background list append
- 🪲 Fix race condition in queue overlap dispatch
- 🪲 Track and join spawned threads on scheduler stop
- 🪲 Save and restore signal handlers on scheduler start/stop
- ⚠️ Update vulnerable dependencies
- 📌 Add NotifyDiscord provider
v0.14.0¶
- 📦 PyPI - Build 0.14.0
- 📌 Workflow scheduler — cron-based recurring execution
- 📌 Workflow observability — task.errors and retry tracking
- 📌 Checkpoint-based durable state (resume from failure)
- 📌 StorageS3 provider for AWS S3 persistence
- 📌 StorageGCS provider for Google Cloud Storage persistence
- 📌 Rewrite dotflow init with interactive cookiecutter template
- 📌 Async/await support for actions
- 📌 Thread-safety in Action retry and task status RETRY
- 🪲 Fix backoff mutating retry_delay permanently across calls
- 📘 Fix documentation gaps — incorrect references, missing parameters
v0.13.2¶
- 📦 PyPI - Build 0.13.2
- 🪲 BUG: Fix Background mode results unreliable
- 🪲 BUG: Fix busy-wait loop and enable multiprocessing on macOS
- 🪲 Fix typo in workflow filename and export WorkflowStatus
- 🪲 Fix typo _excution → _execution in execution.py
- 🪲 Fix TaskBuilder.add() return type annotation
- ⬆️ Configure PyPI publish workflows with OIDC
v0.13.1¶
v0.13.0¶
v0.12.0¶
v0.11.1¶
v0.11.0¶
v0.10.0¶
v0.9.1¶
v0.9.0¶
v0.8.2¶
v0.8.1¶
v0.8.0¶
v0.7.0¶
v0.6.0¶
v0.5.0¶
v0.4.1¶
v0.4.0¶
- 📦 PyPI - Build 0.4.0
- 📌 Improvement of the API to start the workflow task
- 📌 Improved API interface for decorators
- 📌 Improvement unit tests