Releases: geoffxy/conductor
v0.7.0
[v0.7.0] Chained experiment groups and task checks
This release is the seventh feature release of Conductor. This release adds two main features: (i) the ability to "chain" experiment instances in an experiment group, and (ii) the ability to check whether a task definition is valid before running it. See the changelog for more details.
Changelog
New Features
- Chained experiments. The
run_experiment_group()
task now has achain_experiments
argument. When set to true, Conductor will add implicit dependencies between the tasks in the group to create a "chain". This argument is useful when you want to run different experiment groups concurrently, but do not want the experiments within one group to run concurrently. - Task checks. The
cond run
command now takes a--check
flag. When you use this flag, Conductor will parse and validate the task's definition in yourCOND
files but will not run the task. This is a helpful way to check your syntax and verify that your task's dependencies are also defined correctly.
v0.6.1
v0.6.0
[v0.6.0] Ability to include files and better version management
This release is the sixth feature release of Conductor. This release adds two main features: (i) the ability to include other files inside COND
files (for sharing configuration values), and (ii) better version management through the --at-least <commit>
flag (see the documentation). Please see the changelog for a description of these new features as well as the other improvements included in this release.
Changelog
New Features
- Can now include files.
COND
files can now include other files, which is meant for sharing configuration values across tasks. - Better version management. Added the
--at-least <commit>
flag tocond run
, which is used to tell Conductor to ensure each dependent task has a cached version that is at least as new as<commit>
. - Conductor now supports the
cond where
subcommand, which prints the path to a task's outputs. - Conductor now also supports the
cond gc
subcommand, which deletes (garbage collects) all failed experiment task outputs.
Improvements
- Conductor now reports its progress when executing dependent tasks. It will print the number of tasks launched and the number of tasks remaining.
v0.5.0
[v0.5.0] Git integration and parallelizable tasks
This release is the fifth feature release of Conductor. This release adds two main features: (i) git
integration, and (ii) parallelizable tasks. Please see the changelog for a description of these new features as well as the other improvements included in this release.
Changelog
New Features
- Conductor is now "git aware". If your project uses git for version control, experiment results will also be tied to a git commit. Conductor will use the most relevant experiment result based on the current state of your repository. See the documentation for a precise description of these semantics.
run_experiment()
andrun_command()
tasks can now run in parallel. Users must indicate that the task is parallelizable by using theparallelizable=True
keyword argument. See the documentation for more information.
Improvements
run_command()
now takesargs
andoptions
keyword arguments (just likerun_experiment()
).- Conductor now uses color in its output for readability.
- Task successes and failures are now reported immediately (previously they are reported at the end of execution).
v0.4.0
[v0.4.0] Run as much of a task as possible
This release is the fourth feature release of Conductor. The primary change in this release is that Conductor will now attempt to run as much of a task as possible.
Before v0.4.0, if a task had multiple dependencies, Conductor would stop running the task as soon as one dependent task failed. Now, even if a dependent task fails, Conductor will still run other dependent tasks that do not depend on the failed task(s). After finishing, Conductor will print a list of the failed tasks as well as any tasks that had to be skipped because their dependencies failed.
To restore the old behavior where a task would fail as soon as once dependency failed, run using the --stop-early
flag.
Changelog
- Conductor will now run as much of a task as possible, despite failures (#37)
- Fixed a bug related to
TeeProcessor
v0.3.0
[v0.3.0] Positional arguments, Python utilities, better caching
This release is the third feature release of Conductor. This release improves the usability of run_experiment()
tasks (and their derivatives) and adds Python utility functions that simplify Python scripts invoked with Conductor.
Changelog
run_experiment()
tasks now also take positional arguments (use the keyword argumentargs
).- Added two Python utility functions
get_deps_paths()
andget_output_path()
underconductor.lib
.- These functions are meant to be used in Python scripts that are executed by Conductor. They help you retrieve the associated Conductor task's dependencies and output directory.
- If a task's dependencies fail, the other dependent experiments that succeeded will still be cached.
v0.2.0
[v0.2.0] Task running improvements and experiment sweeps
This release is the second feature release of Conductor. This release contains improvements to task running (including some bug fixes) and adds the ability to sweep experiment configurations.
Changelog
- Conductor now passes on its environment variables to spawned task processes.
run_experiment()
task types now take an optionaloptions
argument that can contain additional command line options that should be passed to therun
task executable.- Added a new
combine()
task type that acts likegroup()
but also combines the task outputs into a single directory. - A task's output on standard out and standard error are now recorded by Conductor.
- Added the
run_experiment_group()
task type - syntactic sugar that helps with running parameter sweep experiments.
v0.1.0
[v0.1.0] Task running, archiving, and restoring
This is the first feature release of Conductor: a simple and elegant research computing orchestrator. Conductor currently supports run_experiment()
and run_command()
tasks and also provides archive and restore capabilities for run_experiment()
task outputs.
Please see the README in the project repository for more information about how to use Conductor.