Skip to content

Releases: Pioreactor/pioreactor

24.12.3rc0

04 Dec 00:05
Compare
Choose a tag to compare
24.12.3rc0 Pre-release
Pre-release

Upcoming

Highlights

  • New export datasets improvements!
    • new export dataset API. The datasets on the Export Data UI page are now provided via YAML files on the leader's disk. This makes it easy to add new datasets to that UI to be exported. These YAML files can be added to ~/.pioreactor/exportable_datasets.
    • new Export Data page in the UI. Preview datasets before you export them, and new partition options for the exported CSVs.
    • Plugins can now add datasets to the Export Data page. The plugin's datasets are automatically added to the Export Data page when installed.
  • Stirring can now pause itself during an OD reading. This is accomplished by "dodging OD readings". You can activate this feature by setting the enable_dodging_od to True in config.ini, under [stirring.config]. The replaces an older, less reliable plugin that was on our forums. Users have wanted this feature to have a very fast RPM between OD measurements (to get more aeration), and avoid noisy OD measurements. There's no reason to believe this will decrease the noise if using a "moderate" RPM though.

Enhancements

  • improvements to Dodging background job code, including the ability to initialize the class based on dodging or not.
  • better error handling for failed OD blanks.
  • better button state management in the UI.
  • job YAMLs' published_settings can have a new field, editable (bool), which controls whether it shows up on the Settings dialog or not. (False means it won't show up since it's not editable!). Default is true. This should align with the published_setting in Python's job classes.
  • you can add IPv4 addresses to the (new) [cluster.addresses] section to specify IPs for pioreactors. Example:
    [cluster.addresses]
    pio01_address=10.42.0.2
    pio02_address=10.42.0.3
    
    Note that the leader's address is automatically added in our software.
  • new installs only: updated RPiOS to version 2024-11-19
  • improvements to correlation self-tests

Bug fixes

  • Fixed "circulate X" actions in the Manage All dialog in the UI.

Breaking changes

  • moved all the temporary caches, which previously where their own sqlite3 db in /tmp/ to /tmp/local_intermittent_pioreactor_metadata.sqlite. This shouldn't break anything unless you update during an experiment - don't do that!

24.10.29

29 Oct 21:36
Compare
Choose a tag to compare

24.10.29

Important

We recommend to be on atleast 24.9.19 before updating!

Enhancements

  • dosing_automation.vial_volume replaced with dosing_automation.liquid_volume. You can see the values by watching pio mqtt -t "pioreactor/+/+/dosing_automation/liquid_volume" after starting a dosing automation.
  • Adding a SQL table for tracking liquid_volume.
  • Because we are now storing liquid_volume in the database, you can add charts in the UI that track the volume over time:
    1. Add the following yaml contents to ~/.pioreactor/plugins/ui/contrib/charts/liquid_volume.yaml: https://gist.github.com/CamDavidsonPilon/95eef30189101da69f706d02ef28d972
    2. In your config.ini, under ui.overview.charts, add the line liquid_volume=1.
  • New dataset exports from the Export data page in the UI: calibrations and liquid-volumes.
  • Added a "partition by unit" option to the Export data page that will create a csv per Pioreactor in the export, instead of grouping them all together.
  • od calibrations can use the --json-file to edit calibration polynomial coefficients. In the json file, specify curve_data_ fields with values of the curve's polynomial coefficients (leading term first), and set curve_type as "poly". The routine will begin with that calibration curve displayed.
  • faster UI response times when starting jobs.
  • faster syncing configs.
  • faster copying files across cluster via pio cp.
  • faster clean up of jobs using PWMs.
  • new installs only: updated base RPiOS to 2024-10-22.
  • new database table in /tmp/local_intermittent_pioreactor_metadata.sqlite called pio_job_published_settings that stores the published settings for each job. This powers the next API endpoints:
  • New API endpoints for getting the current settings of a running job:
    • Per pioreactor:
      • GET: /unit_api/jobs/settings/job_name/<job_name>
      • GET: /unit_api/jobs/settings/job_name/<job_name>/setting/<setting>
    • Across the cluster:
      • GET: /api/jobs/settings/job_name/<job_name>/setting/<setting>
      • GET: /api/jobs/settings/job_name/<job_name>/experiments/<experiment>
      • GET: /api/jobs/settings/job_name/<job_name>/experiments/<experiment>/setting/<setting>
      • GET: /api/jobs/settings/workers/<pioreactor_unit>/job_name/<job_name>
      • GET: /api/jobs/settings/workers/<pioreactor_unit>/job_name/<job_name>/setting/<setting>
        Ex: query the temperature of a Pioreactor: curl http://pio01.local/unit_api/jobs/settings/job_name/temperature_automation/setting/temperature

Breaking changes

  • pio kill --name x is now pio kill --job-name x
  • removed publishing published_settings metadata to mqtt. Ex $properties, $settable, $unit, $datatype are no longer being sent mqtt. This was never used, and just a bandwidth suck.

Bug fixes

  • fix for OD calibration graph showing "two lines" in the terminal display
  • fix for updating over the internet when a Pioreactor is on a A.devX or B.rcY release
  • pio kill --all-jobs will no longer kill long-running jobs from plugins (specifically, logs2x jobs.)
  • updating the UI software won't prematurely stop any currently running activities
  • correct ethernet mac address on RPi5s
  • We weren't passing all the OS environment variables when jobs were started from the UI. This is fixed now.
  • Fixed circulate media / alt. media in the UI.
  • Fixed manual dosing updates in the UI.

24.10.28rc0

28 Oct 15:53
Compare
Choose a tag to compare
24.10.28rc0 Pre-release
Pre-release

Upcoming

Enhancements

  • dosing_automation.vial_volume replaced with dosing_automation.liquid_volume. You can see the values by watching pio mqtt -t "pioreactor/+/+/dosing_automation/liquid_volume" after starting a dosing automation.
  • Adding a SQL table for tracking liquid_volume.
  • Because we are now storing liquid_volume in the database, you can add charts in the UI that track the volume over time:
    1. Add the following yaml contents to ~/.pioreactor/plugins/contrib/charts/lqiuid_volume.yaml: https://gist.github.com/CamDavidsonPilon/95eef30189101da69f706d02ef28d972
    2. In your config.ini, under ui.overview.charts, add the line liquid_volume=1.
  • New dataset exports from the Export data page in the UI: calibrations and liquid-volumes.
  • Added a "partition by unit" option to the Export data page that will create a csv per Pioreactor in the export, instead of grouping them all together.
  • od calibrations can use the --json-file to edit calibration polynomial coefficients. In the json file, specify curve_data_ fields with values of the curve's polynomial coefficients (leading term first), and set curve_type as "poly". The routine will begin with that calibration curve displayed.
  • faster UI response times when starting jobs.
  • faster syncing configs.
  • faster copying files across cluster via pio cp.
  • faster clean up of jobs using PWMs.
  • New installs only: updated base RPiOS to 2024-10-22.
  • new database table in /tmp/local_intermittent_pioreactor_metadata.sqlite called pio_job_published_settings that stores the published settings for each job. This powers the next API endpoints:
  • New API endpoints for getting the current settings of a running job:
    • Per pioreactor:
      • GET: /unit_api/jobs/settings/job_name/<job_name>
      • GET: /unit_api/jobs/settings/job_name/<job_name>/setting/<setting>
    • Across the cluster:
      • GET: /api/jobs/settings/job_name/<job_name>/setting/<setting>
      • GET: /api/jobs/settings/job_name/<job_name>/experiments/<experiment>
      • GET: /api/jobs/settings/job_name/<job_name>/experiments/<experiment>/setting/<setting>
      • GET: /api/jobs/settings/workers/<unit>/job_name/<job_name>/experiments/<experiment>
      • GET: /api/jobs/settings/workers/<unit>/job_name/<job_name>/experiments/<experiment>/setting/<setting>
        Ex: query the temperature of a Pioreactor: curl http://pio01.local/unit_api/jobs/settings/job_name/temperature_automation/setting/temperature

Breaking changes

  • pio kill --name x is now pio kill --job-name x

Bug fixes

  • fix for OD calibration graph showing "two lines" in the terminal display
  • fix for updating over the internet when a Pioreactor is on a A.devX or B.rcY release
  • pio kill --all-jobs will no longer kill long-running jobs from plugins (specifically, logs2x jobs.)
  • updating the UI software won't prematurely stop any currently running activities
  • correct ethernet mac address on RPi5s
  • We weren't passing all the OS environment variables when jobs were started from the UI. This is fixed now.
  • Fixed circulate media / alt. media in the UI.

24.10.20rc0

20 Oct 23:55
Compare
Choose a tag to compare
24.10.20rc0 Pre-release
Pre-release

Enhancements

  • dosing_automation.vial_volume replaced with dosing_automation.liquid_volume. You can see the values by watching pio mqtt -t "pioreactor/+/+/dosing_automation/liquid_volume" after starting a dosing automation.
  • Adding a SQL table for tracking liquid_volume.
  • Because we are now storing liquid_volume in the database, you can add charts in the UI that track the volume over time:
    1. Add the following yaml contents to ~/.pioreactor/plugins/contrib/charts/lqiuid_volume.yaml: https://gist.github.com/CamDavidsonPilon/95eef30189101da69f706d02ef28d972
    2. In your config.ini, under ui.overview.charts, add the line liquid_volume=1.
  • New dataset exports from the Export data page in the UI: calibrations and liquid-volumes.
  • Added a "partition by unit" option to the Export data page that will create a csv per Pioreactor in the export, instead of grouping them all together.
  • od calibrations can use the --json-file to edit calibration polynomial coefficients. In the json file, specify curve_data_ fields with values of the curve's polynomial coefficients (leading term first), and set curve_type as "poly". The routine will begin with that calibration curve displayed.
  • faster UI response times when starting jobs.
  • faster syncing configs.
  • faster copying files across cluster via pio cp.
  • New API endpoints for getting the current settings of a running job:
    • Per pioreactor:
      • GET: /unit_api/jobs/settings/job_name/<job_name>
      • GET: /unit_api/jobs/settings/job_name/<job_name>/setting/<setting>
    • Across the cluster:
      • GET: /api/jobs/settings/job_name/<job_name>/setting/<setting>
      • GET: /api/jobs/settings/job_name/<job_name>/experiments/<experiment>
      • GET: /api/jobs/settings/job_name/<job_name>/experiments/<experiment>/setting/<setting>
      • GET: /api/jobs/settings/workers/<unit>/job_name/<job_name>/experiments/<experiment>
      • GET: /api/jobs/settings/workers/<unit>/job_name/<job_name>/experiments/<experiment>/setting/<setting>
        Ex: query the temperature of a Pioreactor: curl http://pio01.local/unit_api/jobs/settings/job_name/temperature_automation/setting/temperature

Breaking changes

  • pio kill --name x is now pio kill --job-name x

Bug fixes

  • fix for OD calibration graph showing "two lines" in the terminal display
  • fix for updating over the internet when a Pioreactor is on a A.devX or B.rcY release
  • pio kill --all-jobs will no longer kill long-running jobs from plugins (specifically, logs2x jobs.)
  • updating the UI software won't prematurely stop any currently running activities

24.10.13rc0

13 Oct 23:21
Compare
Choose a tag to compare
24.10.13rc0 Pre-release
Pre-release

Upcoming

Enhancements

  • dosing_automation.vial_volume replaced with liquid_volume.
  • Adding a SQL table for tracking liquid_volume
  • New dataset exports from the Export data page in the UI: calibrations and liquid-volumes.
  • Added a "partition by unit" option to the Export data page that will create a csv per Pioreactor in the export, instead of grouping them all together.
  • od calibrations can use the -f to edit calibration polynomial coefficients.
  • faster UI response times when starting jobs
  • faster syncing configs
  • faster copying files across cluster via pio cp
  • Because we are now storing liquid_volume in the database, you can add charts in the UI that track the volume over time:
    1. Add the following yaml contents to ~/.pioreactor/plugins/contrib/charts/lqiuid_volume.yaml: https://gist.github.com/CamDavidsonPilon/95eef30189101da69f706d02ef28d972
    2. In your config.ini, under ui.overview.charts, add the line liquid_volume=1.
  • New API endpoints for getting the current settings of a running job:
    • Per pioreactor:
      • GET: /unit_api/jobs/settings/job_name/<job_name>
      • GET: /unit_api/jobs/settings/job_name/<job_name>/setting/<setting>
    • Across the cluster:
      • GET: /api/jobs/settings/job_name/<job_name>/setting/<setting>
      • GET: /api/jobs/settings/job_name/<job_name>/experiments/<experiment>
      • GET: /api/jobs/settings/job_name/<job_name>/experiments/<experiment>/setting/<setting>
        This is the first time a web API has allowed one to query basic Pioreactor data, ex: like the temperature of a Pioreactor: curl pio01.local/unit_api/jobs/settings/job_name/temperature_automation/setting/temperature

24.10.1

01 Oct 18:15
Compare
Choose a tag to compare

24.10.1

Important

This is an important bug release update to regressions introduced in 24.9.26. We highly recommend you be on version 24.9.19 or above before updating!

Enhancements

  • amount of data shown on charts is now a function of the OD sampling rate
  • allow for showing more than 16 workers in a chart.

Bug fixes

  • Bug fix for "Manage all" that would start activities in all Pioreactors, whether they were in the experiment or not.
  • Fix for bug when clicking a legend element it not hiding
  • led_intensity (i.e. changes to LEDs) now respect whether a worker is active or not.
  • Fix bug for UI crashing with "colors" error.
  • If a worker is referenced in a profile, but is not part of the current experiment, the actions will not be schedualed for it.

24.9.26

26 Sep 23:04
Compare
Choose a tag to compare

24.9.26

Enhancements

  • UI improvements to the experiment select box.
  • Better clean up of configs when a worker is removed from the cluster.
  • Improved UI loading time

Bug fixes

  • only show ipv4 in UI and in avahi aliases.
  • fixed experiment profile plugin checks.
  • fixed experiment profile display crashing the UI when editing plugins section.

Breaking changes

  • pio clear-cache renamed to pio cache clear
  • pio view-cache renamed to pio cache view
  • some more web API changes to endpoints that manage updates
  • We no longer use monitor to start jobs. This has a slowdown when changing LEDs or starting pumps, unfortunately, but generally better performance elsewhere.
  • watchdog job has been merged with monitor. watchdog no longer exists.

24.9.26rc0

26 Sep 18:28
Compare
Choose a tag to compare
24.9.26rc0 Pre-release
Pre-release

Upcoming

Enhancements

  • UI improvements to the experiment select box.
  • Better clean up of configs when a worker is removed from the cluster.
  • Improved UI loading time

Bug fixes

  • only show ipv4 in UI and in avahi aliases.
  • fixed experiment profile plugin checks.
  • fixed experiment profile display crashing the UI when editing plugins section.

Breaking changes

  • pio clear-cache renamed to pio cache clear
  • pio view-cache renamed to pio cache view
  • some more web API changes to endpoints that manage updates
  • We no longer use monitor to start jobs. This has a slowdown when changing LEDs or starting pumps, unfortunately, but generally better performance elsewhere.
  • watchdog job has been merged with monitor. watchdog no longer exists.

24.9.19

20 Sep 01:29
Compare
Choose a tag to compare

24.9.19

Important

We highly recommend you be on version 24.8.22 before updating!

Highlights

  • Workers now have a webserver on them. This is one of the largest architectural changes to Pioreactor, and lays the foundation for better plugin, version, and calibration cluster management, plus future features.
    • As an example, in your browser, you can enter the url: http://some-worker.local/unit_api/jobs/running to see a list of jobs running on a worker.
    • Note: there is no interactive user interface for workers, just a web API
    • Previous actions that would involve SSHing from leader to a worker are replaced by web requests.

Bug fixes

  • fixed an issue where a calibrated OD reading would be mapped to max OD signal if it was too low.
  • fixed an issue where the Pioreactor UI would lock up if trying to create a new experiment with an existing name.
  • fixed Hours Elapsed not updating in Overview

Breaking changes

  • Lots and lots of web API changes. You'll want to review them on our docs: https://docs.pioreactor.com/developer-guide/web-ui-api
  • We no longer recommend the Raspberry Pi Zero (the original Zero, not the Zero 2.) since supporting a web server + pioreactor functions is too much for a single core.
  • watchdog is neutered. It used to try to "wake-up" a job, but this was flaky and causing more problems than it solved.
  • removed python library dependency sh
  • APIs that initiate a background task either return with the result, or return a task id that be be looked up at /unit_api/task_status/.
  • pios update now updates the UI too.

Enhancements

  • Better MQTT re-connection logic.
  • New Manage Inventory menu on the Inventory page that can be used for bulk actions.
  • pio update is a new command to update both the UI and app.
  • adding more network logs to network_info.txt
  • pios commands now return quicker since they post to the workers servers and don't wait around. You can view the status of the worker's by using the output from including --json.

24.9.19rc0

19 Sep 15:04
Compare
Choose a tag to compare
24.9.19rc0 Pre-release
Pre-release

Upcoming

Highlights

  • Workers now have a webserver on them. This is one of the largest architectural changes to Pioreactor, and lays the foundation for better plugin, version, and calibration cluster management, plus future features.
    • As an example, in your browser, you can enter the url: http://some-worker.local/unit_api/jobs/running to see a list of jobs running on a worker.
    • Note: there is no interactive user interface for workers, just a web API
    • Previous actions that would involve SSHing from leader to a worker are replaced by web requests.

Bug fixes

  • fixed an issue where a calibrated OD reading would be mapped to max OD signal if it was too low.
  • fixed an issue where the Pioreactor UI would lock up if trying to create a new experiment with an existing name.
  • fixed Hours Elapsed not updating in Overview

Breaking changes

  • Lots and lots of web API changes. You'll want to review them on our docs: https://docs.pioreactor.com/developer-guide/web-ui-api
  • We no longer recommend the Raspberry Pi Zero (the original Zero, not the Zero 2.) since supporting a web server + pioreactor functions is too much for a single core.
  • watchdog is neutered. It used to try to "wake-up" a job, but this was flaky and causing more problems than it solved.
  • removed python library dependency sh
  • APIs that initiate a background task either return with the result, or return a task id that be be looked up at /api/task_status/.
  • pios update now updates the UI too.

Enhancements

  • Better MQTT re-connection logic.
  • New Manage Inventory menu on the Inventory page that can be used for bulk actions.
  • pio update is a new command to update both the UI and app.