Skip to content

Releases: UNC-Robotics/eos

0.7.2

12 Feb 18:55
Compare
Choose a tag to compare

Release 0.7.2

  • Replace pdm with uv. This speeds up EOS installs by 4x.
  • Use exact dependency versions in pyproject.toml
  • Removed docker subdir. Contents are now part of root.

0.7.1

06 Feb 21:56
Compare
Choose a tag to compare

Release 0.7.1

  • Add more CLI commands to pkg module
  • Fix redundant YAML parsing
  • Use lazy imports in CLI
  • Add log output for device actor creation
  • Exclude migrations from formatting
  • Fix some linting issues
  • Update dependencies

0.7.0

12 Jan 19:48
Compare
Choose a tag to compare

This is a major release that brings a host of new features and improvements:

  • PostgreSQL is now used as the EOS database. Removed MongoDB.
  • Re-implemented all data models to be relational.
  • Implemented database transactions throughout the codebase to improve robustness.
  • Implemented database migrations with alembic to evolve the database schema over time.
  • Changed all tests to use in-memory SQLite.
  • Added new CLI interface for managing the database, such as running database migrations.
  • The REST API server is now fully integrated with the orchestrator process. Removed eos api.
  • EOS now supports connecting to an existing Ray cluster instead of always creating a new one. This can help when debugging Ray.
  • EOS now uses an adaptive spin rate. If there is no work, EOS will spin once every 2 seconds. If there is work, EOS will spin at 10 Hz. These rates are configurable.
  • EOS now validates at runtime that correct devices are assigned to tasks when submitted.
  • Experiments are now processed based on assigned priority instead of submission time. All tasks part of an experiment inherit the experiment's priority. Priority controls resource allocation order.
  • Executors now incrementally process work. For example, they will now longer block while requesting resources, but instead submit a resource request and check in the next EOS spin.
  • Improved some log messages.
  • Implemented a DI container to pass around many dependencies in the codebase.
  • Refactored and improved many parts of the codebase.
  • Updated dependencies.

0.6.0

20 Nov 15:20
Compare
Choose a tag to compare
  • Simplified several aspects of the YAML configuration syntax and reduced verbosity.
  • Task and Device classes no longer require a suffix to be discovered and loaded.
  • Removed Budibase.
  • Removed dependency on omegaconf. All YAML loading and validation is now done with pydantic.
  • Updated dependencies.
  • Updated the documentation.
  • Fixed bugs.
  • Refactored and improved many parts of the code base.

0.5.0

24 Oct 15:16
Compare
Choose a tag to compare

Task and device methods are now asynchronous. For example, device initialization and cleanup is asynchronous. This allows implementing asynchronous device I/O, allowing for example to use libraries such as bleak for asynchronous Bluetooth communication with physical devices.

0.4.0

18 Oct 21:29
Compare
Choose a tag to compare
  • Make most code async
  • Make all db communication async
  • Optimize db queries
  • Parallelize db queries
  • Change MongoDB integration to use a single-node replica set
  • Integrate MongoDB transactions
  • Refactor persistence code
  • Add new tests and improve some existing ones
  • Refactor and improve various parts of the code
  • Update dependency versions

0.3.0

17 Sep 17:18
Compare
Choose a tag to compare

Initial public release.