Skip to content

0.9.0

Choose a tag to compare

@aangelos28 aangelos28 released this 05 Oct 23:10
· 47 commits to master since this release

EOS 0.9.0 is a large update that brings improvements across the entirety of the system.

  • Implemented support for dynamic allocation of devices and resources (formerly "containers"). It is now possible to specify in tasks types of devices and resources they should use without specific names, and let EOS decide which ones to allocate from the available labs. This greatly increases the dynamism of EOS, and allows for greater parallelism and throughput.
  • Implemented support for tasks to reference other devices. With this, downstream tasks can request to use the same devices used by some upstream tasks, and this is critical when using dynamic allocation.
  • Containers have been removed and have been replaced by a more general concept: resources. A resource is anything in the lab that tasks need to exclusively reserve, from labware to locations on instruments.
  • Devices are now named inputs to tasks rather than just listed.
  • Removed locations from lab YAML.
  • Integrated user-specified metadata (meta) more deeply with EOS. For example, tasks can now access device metadata. Metadata is the recommended way to pass arbitrary data between tasks, and allow tasks to store persistent state.
  • Refined YAML interfaces to improve consistency, for example "id" has been renamed to "name".
  • Improved error handling.
  • Improved scheduler performance.
  • Refactored major parts of the code base.
  • Updated dependencies.

Note: This release is not backwards compatible with earlier versions, due to changes in YAML and Python interfaces as well as to the database schema. The EOS database must be rebuilt.