Changelog
Unreleased
Added
-
#255 Added
SYNTH_FORCE_TERMINALenvironment variable to force Rich terminal formatting on (true) or off (false), overriding auto-detection. See the Environment Variables page. -
#255 When no flow is specified, the default flow is selected by precedence: the flow named by
settings.default_flow(if explicitly set), then a flow nameddefault(if present), then the first-defined flow. Ifsettings.default_flowis set but names a non-existent flow,synth runandsynth diagramexit with an error.synth listmarks the default flow with[default]. -
#253 The
synth listsubcommand lists the flows defined in the config file. The--detailsflag additionally shows each flow's nodes with their triggers and commands. -
#253 The
synth diagramsubcommand outputs a Mermaid diagram describing a flow, replacing the--mermaidflag that was previously onsynth run. A--formatflag controls the output format (currently onlymermaid). -
#253 Flows now support an optional
descriptionfield, displayed bysynth list. -
#253 Added a Using Synthesize with Other Tools documentation page covering integration with CI systems and AI coding agents.
Changed
-
#255 The environment variable for specifying the config file path has been renamed from
SYNTHFILEtoSYNTH_FILE. -
#253
synthis now a multi-command app. Running a flow now requires the explicitsynth run [FLOW]form;synth [FLOW]no longer works. -
#253 The recommended installation method is now
uv add --dev synthesize, adding Synthesize as a development dependency to your project. -
#233 Added support for loading
.envfiles via python-dotenv. A newsettings.dot_envsub-section controls the behavior:dot_env.load(defaulttrue) enables loading, anddot_env.file(default.env) sets the filename, resolved relative to the config file. Both can be overridden at run time with-s dot_env.load=falseor-s dot_env.file=.custom-env. -
#247 Added a
settingssection to the configuration file with atimestampssub-section.timestamps.sub_second_digits(0-6, default 0) controls how many sub-second digits appear in timestamps, andtimestamps.include_date(default false) prepends the date to timestamps. Settings can also be overridden on the command line via-s/--settingusing dotted paths (e.g.-s timestamps.sub_second_digits=3).
Changed
-
#244 Updated the recommended installation method from
pipxtouv tool install, with alternatives foruvxanduv add --dev. -
#246 Renamed
target/targetstorecipe/recipesin the configuration schema, matching the terminology used byjust.
0.0.6
Added
- #126
If no more work can be done in a flow,
synthwill exit. If all recipes ran and succeeded, the exit code will be0. Otherwise, the exit code will be1. - #126
Added the
--onceoption, which replaces all "repeating" triggers (likewatchorrestart) withonce. This allows an existing flow to be run as a "single shot", and when combined with the exit behavior change described above potentially useful for using Snyth workflows in CI or other automation.
Changed
- #128 The separator rule is now red when any node has failed, and a status summary is printed when exiting.
- #131
Flows can no longer have cycles in them (via the
aftertrigger).
Fixed
- #129 Ensured that the async tasks that trigger restarts don't get garbage-collected.
0.0.5
Released 2025-02-12
Fixed
- #112 Fix a crash that could happen when a process outputs too much data without a newline.
0.0.4
Released 2024-10-24
Fixed
- #79 Fix a crash that could happen when a process exits while we are trying to terminate it.
0.0.3
Released 2024-07-07
Added
- #3 Added PyPI classifiers and other metadata.
- #33 #40 Allow injecting arguments (via Jinja2 templates) and environment variables into recipe commands. Arguments and environment variables can be specified at either the flow, node, or recipe level, with the most specific taking precedence.
- #43
Mermaid diagrams can be generated for a flow using the
--mermaidoption.
Changed
- #30 Reorganized configuration to separate recipes, triggers (formerly "lifecycles"), and flows (graphs of recipes and triggers).
- #41 Execution duration is printed in the completion message.
- #49 Flow nodes can now have multiple triggers.
Fixed
- #45
Restarttriggers now allow for the node's children to run again after the node completes.
0.0.2
Released 2023-02-12