- fix @job annotation again (again) by @FabiPi3 in #654
JobflowSettings
addLOG_FORMAT
, also directly passable torun_locally
by @janosh in #706- Add
Flow.metadata
attribute andFlow.update_metadata
method by @janosh in #679
- Fix docstring in Job. by @davidwaroquiers in #673
- Update commit hooks and fix new
ruff
andmypy
issues 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_dir
attribute toResponse
class 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_file
docstring 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
pip
touv
for CI dependency install by @janosh in #574 - Bump
ruff
and 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
MemoryStore
by @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
Flow
methods__len__
and__getitem__
by @janosh in #467 run_locally()
addroot_dir: str | Path | None
keyword 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.bib
by @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.bib
by @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_resources
withimportlib.metadata.version
by @janosh in #460 - Match
atomate2
ruff
config 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_mermaid
function to convert flow to mermaid syntax by @utf in #311 - Allow external references by @gpetretto in #392
- Add
to_mermaid
for all in graph utils by @JaGeo in #351 - Propagate tags from
fw_spec
to metadata by @sivonxay in #345 - Allow bson objects as job inputs, e.g. datetime.datetimes by @mcgalcode in #375
- Also
allow_bson
in job serialization by @mcgalcode in #376 Flow
+Job
magic methods by @janosh in #369
Bug fixes:
- Fix ValueError: mutable default for field
add_maker
is not allowed: usedefault_factory
by @janosh in #387 - Fixed nested data storage bug by @jmmshn in #293
- Test imports need to be in function by @jmmshn in #310
- Fix
TypeError
when 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_spec
so that the originaldict_spec
is 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_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)
Enhancements:
- 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
Job.jobs
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 toJob
andFlow
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 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_kwargs
withnested=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.
Enhancements:
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
andOutputReference.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
, andJobStore
API.- Tools for running Flows locally.
- Fireworks integration.