Skip to content

0.12.0

Compare
Choose a tag to compare
@bdice bdice released this 30 Jan 21:15
5e2917e

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 and isort 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 and GPUEnvironment 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 to flow.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 from FlowProject.submit (#439).