0.12.0
This release includes a wide range of performance improvements and internal refactoring that will enable the addition of an "aggregation" feature in subsequent releases (not yet available). Performance of a sample workflow that checks status, runs, and submits a FlowProject with 1000 jobs, 3 operations, and 2 label functions has improved roughly 4x compared to the 0.11.0 release.
Added
- Code is formatted with
black
andisort
pre-commit hooks (#365). - Add official support for Python version 3.9 (#365).
- Documentation has been added for all public classes and methods (#387, #389).
- Added internal support for aggregates of jobs (#334, #348, #351, #364, #383, #390, #415, #422, #430).
- Added code coverage to continuous integration (#405).
Changed
- Command line interface always uses
--job-id
instead of--jobid
(#363, #386). CPUEnvironment
andGPUEnvironment
classes are deprecated (#381).- Docstrings are now written in numpydoc style (#392).
- Default environment for the University of Minnesota Mangi cluster changed from SLURM to Torque (#393).
- Run commands are evaluted lazily (#70, #396).
- Deprecated method
export_job_statuses
(#402). - Improved internal caching of scheduler status (#410).
- Refactored status fetching code (#368, #417).
- Optimization: Directives are no longer deep-copied (#420, #421).
- The
use_buffered_mode
config option is deprecated. Buffering is always internally enabled (#425). - Evaluate directives when called instead of when defined (#398, #402).
- Various internal refactorings and optimizations (#371, #373, #374, #375, #376, #377, #378, #379, #380, #400, #410, #416, #423, #426).
Scheduler
is now an abstract base class (#426).flow.scheduling.fakescheduler
has been renamed toflow.scheduling.fake_scheduler
(#426).- Arguments to
submit
have been changed for all scheduler classes (#426). - Python 3.6 is only tested with oldest dependencies (#436).
- Drop support for tqdm versions older than
4.48.1
(#436, #440). - Drop support for Jinja2 versions older than
2.10.0
(#436).
Fixed
- Ensure that directives are always evaluated before running or submitting (#408, #409).
- Cache the fully qualified domain name during environment detection to fix a performance issue on macOS (#339, #394).
- Ensure that
next
CLI command displays eligible jobs for the exact operation name provided (#443).
Removed
- Removed the deprecated method
flow.util.misc.write_human_readable_statepoints
(#397). - Removed the deprecated argument
--no-parallelize
(#424). - Removed the deprecated
env
argument from submission methods (#424). flow.render_status.Renderer
class has been removed.FlowProject.print_status
no longer returns the renderer (#426).- Removed deprecated
status.py
module (#426). - Removed the
--test
argument fromFlowProject.submit
(#439).