Skip to content

Releases: Pioreactor/pioreactor

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.

24.9.18rc0

18 Sep 13:11
Compare
Choose a tag to compare
24.9.18rc0 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.