Change log


New Features 🎉

  • Allow different UID types by @jmmshn in

Enhancements 🛠

  • Optional Flag to help Debugging by @jmmshn in

  • Add JOSS paper to README and docs by @Andrew-S-Rosen in

  • Remove debug print statements in tests + bump GH action versions by @janosh in

Full Changelog:…v0.1.17


Bug Fixes 🐛

  • Explicit warning stacklevels by @janosh in

  • Fix handling of function from standard library by @gpetretto in

Enhancements 🛠

  • Optionally avoid deserialization when resolving references by @gpetretto in

Documentation 📖

  • Add documentation for how to deal with stores beyond MemoryStore by @Andrew-S-Rosen in

  • Fix tutorial bug by @mcgalcode in

  • Fix tutorial link formatting in docs by @ml-evs in

  • Add reference for jobflow-remote by @ml-evs in

House-Keeping 🧹

  • Build docs on every push by @utf in

  • Update deploy.yml by @utf in

Other Changes

  • Auto-update pre-commit hooks by @github-actions in

New Contributors

  • @ml-evs made their first contribution in

Full Changelog:…v0.1.16


Bug Fixes 🐛

  • Fix JobStoreDocument validator by @utf in

  • fix Flow deserialization for hosts by @gpetretto in

Enhancements 🛠

  • Formalizing the JobStore document format as a pydantic model by @hrushikesh-s in

  • Simplify code by using Flow methods __len__ and __getitem__ by @janosh in

  • run_locally() add root_dir: str | Path | None keyword by @janosh in

  • Allow SSHTunnel in job stores by @mjwen in

Documentation 📖

  • JOSS paper by @utf in

  • JOSS Paper: Add missing DOIs by @Andrew-S-Rosen in

  • JOSS Paper: Reduce line-spacing in code blocks by @Andrew-S-Rosen in

  • JOSS Paper update: Add missing year to refs.bib by @Andrew-S-Rosen in

  • JOSS Paper: Remove stray tick mark in “[@montydb]`” by @Andrew-S-Rosen in

  • JOSS Paper: Add another missing year to refs.bib by @Andrew-S-Rosen in

  • Update refs.bib by @xuanxu in

  • JOSS: Add missing , to paper by @Andrew-S-Rosen in

  • JOSS: Add more complete Zenodo reference info by @Andrew-S-Rosen in

  • JOSS: Fix references to include all coauthors and remove “others” by @Andrew-S-Rosen in

  • Add fibonacci example to tutorial by @JaGeo in

House-Keeping 🧹

  • Remove __all__ from all modules by @janosh in

  • Bump minimum Python version to 3.9 by @janosh in

  • Replace deprecated pkg_resources with importlib.metadata.version by @janosh in

  • Match atomate2 ruff config by @janosh in

  • Test error messages by @janosh in

New Contributors

  • @hrushikesh-s made their first contribution in

  • @xuanxu made their first contribution in

Full Changelog:…v0.1.15


Bug Fixes 🐛

  • Add warning when jobflow.yaml is blank or badly formatted by @mcgalcode in

  • Fix issue with data store by @JaGeo in

  • Make ensure_success apply to replace/detour/addition jobs by @mcgalcode in

Enhancements 🛠

  • Add tests for Python 3.11 by @Andrew-S-Rosen in

  • Add support for Pydantic 2 by @Andrew-S-Rosen in

Documentation 📖

  • Link to @jageo’s tutorials and fix a broken link by @Andrew-S-Rosen in

  • Update @arosen93 to @Andrew-S-Rosen by @Andrew-S-Rosen in

Full Changelog:…v0.1.14


Bug Fixes:

  • Delete Flow.__deepcopy__ by @janosh in

Full Changelog:…v0.1.13


New features:

  • Add to_mermaid function to convert flow to mermaid syntax by @utf in

  • Allow external references by @gpetretto in

  • Add to_mermaid for all in graph utils by @JaGeo in

  • Propagate tags from fw_spec to metadata by @sivonxay in

  • Allow bson objects as job inputs, e.g. datetime.datetimes by @mcgalcode in

  • Also allow_bson in job serialization by @mcgalcode in

  • Flow + Job magic methods by @janosh in

Bug fixes:

  • Fix ValueError: mutable default for field add_maker is not allowed: use default_factory by @janosh in

  • Fixed nested data storage bug by @jmmshn in

  • Test imports need to be in function by @jmmshn in

  • Fix TypeError when passing name to flow_to_workflow( by @janosh in

  • Fix mermaid with one job (in a flow) by @JaGeo in

  • Fixed JobStore.from_dict_spec so that the original dict_spec is not modified by @davidwaroquiers in


  • Fix typo in data store docs by @xperrylinn in

  • Fix typo in fireworks docs by @Andrew-S-Rosen in

  • Fix typo in docs by @Andrew-S-Rosen in

  • Fix broken link to FireWorks tutorial by @janosh in

  • Add documentation: Flows, FireWorks, Dynamic Flows, Makers by @Andrew-S-Rosen in

  • Update forum link by @mkhorton in

  • Add copy button to code blocks in docs by @Andrew-S-Rosen in


  • Enable serialisation of bson.


  • Move project configuration to pyproject.toml.

  • Add tutorial on generalized makers (@jmmshn, #268)


New features

  • Delayed updates to config and metadata for dynamic flows. See docstring of Job.update_metadata for more details (@gpetretto, #198)

  • Additional stores are now generated on the fly as memory stores if they are not specified in jobflow settings (@davidwaroquiers, #183)

Bug fixes:

  • Optimised calls to update_kwargs (@jmmshn, #177)

  • “job_uuid” and “job_index” are now indexed fields in additional stores (@jmmshn, #165)

  • Fix additional store storing None (@mjwen, #160)


  • Docs refactored.

  • Added code of conduct.


New features:

  • New update_metadata function for updating the metadata of jobs and flows.

  • New update_config function for updating the config (included manager_config) of jobs and flows.

  • New DIRECTORY_FORMAT option in JobflowSettings for controlling the date time format used to create new directories.

  • New functions for adding and removing jobs from a flow. The list is no longer mutable (@gpetretto).

  • New Job.hosts attribute that stores a list of all host Flows. This captures the nested nature of flows with the outer flow always first in the list (@gpetretto).

Bug fixes:

  • OutputReferences are no longer iterable.

  • Docstring clarifications (@utf, @mjwen).


New features:

  • Validate subschemas of nested models (@gpetretto, #118).

  • downstream_manager_config for controlling config of dynamic jobs (@Andrew-S-Rosen, #121).

  • S3Store yaml parsing (@jmmshn, #124).

Bug fixes:

  • Fix home path for loading settings (@gpetretto, #119).

  • Docs updates (@Andrew-S-Rosen, #111).


Bug fixes:

  • Docs fixes (@arosen).

  • Compatibility with maggma>=0.38.1 (#68)

  • Fixed missing PyYAML requirement (#67)


Bug fixes:

  • Remove JobConfig.pass_metadata option and instead pass metadata automatically.

  • Fix serialization compatibility with the FireWorks workflow manager.


New features:

  • Add append_name option to Job and Flow that allow easy modification of all job names in a flow.

  • Add JobConfig.pass_metadata (defaults to True) that can be used to pass job metadata on to dynamically added jobs.

Bug fixes:

  • Fireworks manager now adds metadata to FireWork spec. Fixes #21.


Jobflow now uses pydantic to handle settings. Currently, there is only a single setting JOB_STORE which controls the default store used by run_locally and the fireworks manager. You can update the default store by writing a ~/.jobflow.yaml settings file. See the API documentation for more details.


New features:

  • ensure_success option added to run_locally.

  • Better graph visualisation.

  • Updating the name of a job from a maker now propagates the name change to the maker.

  • Job.update_maker_kwargs with nested=True now applies the updates to makers in the kwargs or args of the job.


Docs updates.


Major changes:

  • Schema class removed. Any pydantic model can now be an output schema.


  • JobStore.get_output now resolves references in the output of other jobs.

  • JobStore.get_output: which now supports specifying a specific job index.

  • Better support for circular and missing references in JobStore.get_output and OutputReference.resolve.

  • Update dependencies to use latest jsanitize features.

Bug fixes:

  • Fixed issue with references in flow of flows (@davidwaroquiers, #18).

  • Makes now allows non-default parameters (fixes: #13).

  • Fix reference cache with multiple indexes.


Testing automated releases.


Initial release containing:

  • Job, Flow, Maker, and JobStore API.

  • Tools for running Flows locally.

  • Fireworks integration.