- Fix autoreplace by @gpetretto in #848
Full Changelog: https://github.com/materialsproject/jobflow/compare/v0.3.0...v0.3.1
This version includes a number of fixes aiming for improved support with Quacc.
- A flow decorator by @vineetbansal in #815
- getitem for Job delegates to its output by @vineetbansal in #823
- Allow to give a save path directly by @FabiPi3 in #821
- A return type of job/iterable of jobs from a Job is interpreted as a replace by @vineetbansal in #833
- Validate properties attribute in output_schema by @gpetretto in #839
- Tutorial for Pydantic validation by @tomdemeyere in #812
- Bump pydantic from 2.12.3 to 2.12.4 by @dependabot[bot] in #818
- Bump pytest from 8.4.2 to 9.0.0 by @dependabot[bot] in #819
- Bump pydantic-settings from 2.11.0 to 2.12.0 by @dependabot[bot] in #820
- Bump pytest from 9.0.0 to 9.0.1 by @dependabot[bot] in #822
- Bump moto from 5.1.16 to 5.1.17 by @dependabot[bot] in #824
- Bump nbsphinx from 0.9.7 to 0.9.8 by @dependabot[bot] in #825
- Bump pydantic from 2.12.4 to 2.12.5 by @dependabot[bot] in #827
- Bump moto from 5.1.17 to 5.1.18 by @dependabot[bot] in #826
- Bump pytest from 9.0.1 to 9.0.2 by @dependabot[bot] in #829
- Bump fireworks from 2.0.6 to 2.0.8 by @dependabot[bot] in #828
- Bump matplotlib from 3.10.7 to 3.10.8 by @dependabot[bot] in #830
- Bump furo from 2025.9.25 to 2025.12.19 by @dependabot[bot] in #831
- Bump moto from 5.1.18 to 5.1.19 by @dependabot[bot] in #832
- Bump ipython from 9.3.0 to 9.9.0 by @dependabot[bot] in #836
- Bump moto from 5.1.19 to 5.1.20 by @dependabot[bot] in #840
- Bump pydash from 8.0.5 to 8.0.6 by @dependabot[bot] in #841
- @vineetbansal made their first contribution in #815
- @tomdemeyere made their first contribution in #812
Full Changelog: https://github.com/materialsproject/jobflow/compare/v0.2.1...v0.3.0
- Jobconfig by @gpetretto in #817
- Increase CI sensitivity by testing both lowest-direct and highest dependency resolution strategy by @janosh in #640
Full Changelog: https://github.com/materialsproject/jobflow/compare/v0.2.0...v0.2.1
Dropped support for Python 3.9.
- Change default
callback_filterinupdate_metadataby @esoteric-ephemera in #721
- Added tutorial and example for handling missing references by @jmmshn in #716
- @esoteric-ephemera made their first contribution in #721
Full Changelog: https://github.com/materialsproject/jobflow/compare/v0.1.19...v0.2.0
- fix @job annotation again (again) by @FabiPi3 in #654
JobflowSettingsaddLOG_FORMAT, also directly passable torun_locallyby @janosh in #706- Add
Flow.metadataattribute andFlow.update_metadatamethod by @janosh in #679
- Fix docstring in Job. by @davidwaroquiers in #673
- Update commit hooks and fix new
ruffandmypyissues by @janosh in #685
Full Changelog: https://github.com/materialsproject/jobflow/compare/v0.1.18...v0.1.19
- FIX: Properly jsanitize fireworks Task by @gpetretto in #544
- fix @job annotation (again) by @FabiPi3 in #579
- Add
job_dirattribute toResponseclass to record where a job ran by @janosh in #570 - Add type hint for @job and fix for run_locally by @FabiPi3 in #578
- Add dynamic option to append_name by @JaGeo in #644
- Fix
JobStore.from_filedocstring by @Andrew-S-Rosen in #543 - Added logo by @davidwaroquiers in #569
- fix firework command bug in doc by @chiang-yuan in #589
- Add JFR to readme. by @utf in #595
- Migrate from
piptouvfor CI dependency install by @janosh in #574 - Bump
ruffand fix errors by @janosh in #593
Full Changelog: https://github.com/materialsproject/jobflow/compare/v0.1.17...v0.1.18
- Allow different UID types by @jmmshn in #529
- Optional Flag to help Debugging by @jmmshn in #527
- Add JOSS paper to README and docs by @Andrew-S-Rosen in #522
- Remove debug print statements in tests + bump GH action versions by @janosh in #523
Full Changelog: https://github.com/materialsproject/jobflow/compare/v0.1.16...v0.1.17
- Explicit warning stacklevels by @janosh in #503
- Fix handling of function from standard library by @gpetretto in #516
- Optionally avoid deserialization when resolving references by @gpetretto in #512
- Add documentation for how to deal with stores beyond
MemoryStoreby @Andrew-S-Rosen in #506 - Fix tutorial bug by @mcgalcode in #505
- Fix tutorial link formatting in docs by @ml-evs in #504
- Add reference for jobflow-remote by @ml-evs in #513
- Auto-update pre-commit hooks by @github-actions in #511
- @ml-evs made their first contribution in #504
Full Changelog: https://github.com/materialsproject/jobflow/compare/v0.1.15...v0.1.16
- Fix JobStoreDocument validator by @utf in #478
- fix Flow deserialization for hosts by @gpetretto in #499
- Formalizing the JobStore document format as a pydantic model by @hrushikesh-s in #424
- Simplify code by using
Flowmethods__len__and__getitem__by @janosh in #467 run_locally()addroot_dir: str | Path | Nonekeyword by @janosh in #486- Allow SSHTunnel in job stores by @mjwen in #477
- JOSS paper by @utf in #446
- JOSS Paper: Add missing DOIs by @Andrew-S-Rosen in #452
- JOSS Paper: Reduce line-spacing in code blocks by @Andrew-S-Rosen in #454
- JOSS Paper update: Add missing year to
refs.bibby @Andrew-S-Rosen in #458 - JOSS Paper: Remove stray tick mark in "[@montydb]`" by @Andrew-S-Rosen in #459
- JOSS Paper: Add another missing year to
refs.bibby @Andrew-S-Rosen in #461 - Update refs.bib by @xuanxu in #462
- JOSS: Add missing
,to paper by @Andrew-S-Rosen in #479 - JOSS: Add more complete Zenodo reference info by @Andrew-S-Rosen in #481
- JOSS: Fix references to include all coauthors and remove "others" by @Andrew-S-Rosen in #480
- Add fibonacci example to tutorial by @JaGeo in #494
- Remove
__all__from all modules by @janosh in #442 - Bump minimum Python version to 3.9 by @janosh in #455
- Replace deprecated
pkg_resourceswithimportlib.metadata.versionby @janosh in #460 - Match
atomate2ruffconfig by @janosh in #464 - Test error messages by @janosh in #465
Full Changelog: https://github.com/materialsproject/jobflow/compare/v0.1.14...v0.1.15
- Add warning when jobflow.yaml is blank or badly formatted by @mcgalcode in #415
- Fix issue with data store by @JaGeo in #409
- Make ensure_success apply to replace/detour/addition jobs by @mcgalcode in #426
- Add tests for Python 3.11 by @Andrew-S-Rosen in #413
- Add support for Pydantic 2 by @Andrew-S-Rosen in #440
- Link to @jageo's tutorials and fix a broken link by @Andrew-S-Rosen in #412
- Update @arosen93 to @Andrew-S-Rosen by @Andrew-S-Rosen in #427
Full Changelog: https://github.com/materialsproject/jobflow/compare/v0.1.13...v0.1.14
Bug Fixes:
- Delete
Flow.__deepcopy__by @janosh in #399
Full Changelog: https://github.com/materialsproject/jobflow/compare/v0.1.12...v0.1.13
New features:
- Add
to_mermaidfunction to convert flow to mermaid syntax by @utf in #311 - Allow external references by @gpetretto in #392
- Add
to_mermaidfor all in graph utils by @JaGeo in #351 - Propagate tags from
fw_specto metadata by @sivonxay in #345 - Allow bson objects as job inputs, e.g. datetime.datetimes by @mcgalcode in #375
- Also
allow_bsonin job serialization by @mcgalcode in #376 Flow+Jobmagic methods by @janosh in #369
Bug fixes:
- Fix ValueError: mutable default for field
add_makeris not allowed: usedefault_factoryby @janosh in #387 - Fixed nested data storage bug by @jmmshn in #293
- Test imports need to be in function by @jmmshn in #310
- Fix
TypeErrorwhen passing name toflow_to_workflow(by @janosh in #396 - Fix mermaid with one job (in a flow) by @JaGeo in #350
- Fixed
JobStore.from_dict_specso that the originaldict_specis not modified by @davidwaroquiers in #331
Enhancements:
- Fix typo in data store docs by @xperrylinn in #316
- Fix typo in fireworks docs by @Andrew-S-Rosen in #343
- Fix typo in docs by @Andrew-S-Rosen in #359
- Fix broken link to FireWorks tutorial by @janosh in #319
- Add documentation: Flows, FireWorks, Dynamic Flows, Makers by @Andrew-S-Rosen in #338
- Update forum link by @mkhorton in #373
- Add copy button to code blocks in docs by @Andrew-S-Rosen in #344
- 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_metadatafor 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)
Enhancements:
- Docs refactored.
- Added code of conduct.
New features:
- New
update_metadatafunction for updating the metadata of jobs and flows. - New
update_configfunction for updating the config (included manager_config) of jobs and flows. - New
DIRECTORY_FORMAToption in JobflowSettings for controlling the date time format used to create new directories. - New functions for adding and removing jobs from a flow. The
Job.jobslist is no longer mutable (@gpetretto). - New
Job.hostsattribute 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_configfor 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_metadataoption and instead pass metadata automatically. - Fix serialization compatibility with the FireWorks workflow manager.
New features:
- Add
append_nameoption toJobandFlowthat 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_successoption added torun_locally.- Better graph visualisation.
- Updating the name of a job from a maker now propagates the name change to the maker.
Job.update_maker_kwargswithnested=Truenow applies the updates to makers in the kwargs or args of the job.
Docs updates.
Major changes:
Schemaclass removed. Any pydantic model can now be an output schema.
Enhancements:
JobStore.get_outputnow resolves references in the output of other jobs.JobStore.get_output:whichnow supports specifying a specific job index.- Better support for circular and missing references in
JobStore.get_outputandOutputReference.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, andJobStoreAPI.- Tools for running Flows locally.
- Fireworks integration.