25.1.21
We recommend being on version 24.12.x before updating!
Highlights
-
New UI updates:
- An
Event Logs
page for seeing the logs generated by your Pioreactors - A detailed overview of your cluster's leader-specific duties on the new
Leader
's page.- See the Leader's filesystem, logs, update cluster clocks, and view important running jobs.
- View different Pioreactors' plugins on the
Plugins
page, and install to specific Pioreactor vs entire cluster. - Manage your calibrations from the UI's new
Calibrations
page.- View existing calibrations, set active calibrations, and download calibration files.
- An
-
New calibrations API. A calibration now creates a YAML file as an artifact, stored in
~/.pioreactor/calibrations
. This makes editing, creating, sharing, and transferring calibrations much easier. -
There's also a new CLI for calibrations:
Usage: pio calibrations [OPTIONS] COMMAND [ARGS]... interface for all calibration types. Options: --help Show this message and exit. Commands: delete Delete a calibration file from local storage. display Display the contents of a calibration YAML file. list List existing calibrations for the given device. run Run an interactive calibration assistant for a specific device. set-active Mark a specific calibration as 'active' for that device analyze Analyze the data from a calibration.
For example, to run a pump calibration, use
pio calibrations run --device media_pump
. View all your media pump calibrations with:pio calibrations list --device media_pump
. And to duplicate a -
For now, the actual calibrations are the same protocol as before, but in the near future, we'll be updating them with new features. Adding this unified CLI and YAML format was the first step.
Web API changes
- New API to retrieve and set clocks on Pioreactors
- GET
/api/units/<pioreactor_unit>/system/utc_clock
- GET
/unit_api/system/utc_clock
- POST
/api/system/utc_clock
- POST
/unit_api/system/utc_clock
- GET
- New log APIs
- GET
/api/experiments/<experiment>/recent_logs
- GET
/api/experiments/<experiment>/logs
- GET
/api/logs
- GET
/api/workers/<pioreactor_unit>/experiments/<experiment>/recent_logs
- GET
/api/workers/<pioreactor_unit>/experiments/<experiment>/logs
- GET
/api/units/<pioreactor_unit>/logs
- POST
/workers/<pioreactor_unit>/experiments/<experiment>/logs
- GET
- New calibrations APIs
- GET
/api/workers/<pioreactor_unit>/calibrations
- GET
/unit_api/calibrations
- GET
/unit_api/active_calibrations
- GET
/api/workers/<pioreactor_unit>/calibrations/<device>
- GET
/unit_api/calibrations/<device>
- PATCH
/api/workers/<pioreactor_unit>/active_calibrations/<device>/<cal_name>
- PATCH
/unit_api/active_calibrations/<device>/<cal_name>
- DELETE
/api/workers/<pioreactor_unit>/active_calibrations/<device>/<cal_name>
- DELETE
/api/workers/<pioreactor_unit>/calibrations/<device>/<cal_name>
- DELETE
/unit_api/active_calibrations/<device>/<cal_name>
- DELETE
/unit_api/calibrations/<device>/<cal_name>
- POST
/unit_api/calibrations/<device>
- GET
- New API for plugins
- GET
/api/units/<pioreactor_unit>/plugins/installed
- PATCH
/api/units/<pioreactor_unit>/plugins/install
- PATCH
/api/units/<pioreactor_unit>/plugins/uninstall
- GET
- Changed the
settings
API (see docs). - New
/api/units
that returns a list of units (this is workers & leader). If leader is also a worker, then it's identical to/api/workers
- New
/api/experiments/<experiment>/historical_worker_assignments
that stores historical assignments to experiments - New Path API for getting the dir structure of
~/.pioreactor
:/unit_api/system/path/<path>
Enhancements
- new SQL table for
historical_experiment_assignments
that stores historical assignments to experiments. - UI performance improvements
- Better terminal plots
- Customs charts in the UI are now downsampled like the other charts.
- More logging in experiment profiles
Breaking changes
-
use_calibration
underod_reading.config
is deprecated. Use the calibrations "active" state instead. -
Note: by default, all calibrations are not active, even if they were "current" before. You must set them to be active.
-
removed Python library
diskcache
. -
any stirring calibrations needs to be redone. On the command line, run
pio calibration run --device stirring
to start the calibration assistant. -
fixed typo
utils.local_persistant_storage
toutils.local_persistent_storage
. -
Kalman Filter database table is no longer populated. There is a way to re-add it, lmk.
-
moved intermittent cache location to
/tmp/pioreactor_cache/local_intermittent_pioreactor_metadata.sqlite
. This also determined by your configuration, see[storage]
. -
removed
pioreactor.utils.gpio_helpers
-
removed
calibrations
export dataset. Use the export option on the /Calibrations page instead. -
persistent storage is now on single sqlite3 database in
/home/pioreactor/.pioreactor/storage/local_persistent_pioreactor_metadata.sqlite
. This is configurable in your configuration. -
When checking for calibrations in custom Dosing automations, users may have added:
with local_persistant_storage("current_pump_calibration") as cache: if "media" not in cache: ...
This should be updated to (Note the spelling in
local_persistant_storage
changed, too!):with local_persistent_storage("active_calibrations") as cache: if "media_pump" not in cache: ...
Bug fixes
- Fix PWM3 not cleaning up correctly
- Fixed Stirring not updating to best DC % when using a calibration after changing target RPM
- Fixed a bug that could cause OD calibrations to map a small voltage value to a max OD.
- Fixed bug where dataset exports were not sorted correctly.
- em-dashes are now replaced in config.ini on save.
- Fixed a bug where errors on the Experiment Profiles page weren't properly displayed.