Releases: Pioreactor/pioreactor
Releases · Pioreactor/pioreactor
24.10.29
24.10.29
Important
We recommend to be on atleast 24.9.19 before updating!
Enhancements
dosing_automation.vial_volume
replaced withdosing_automation.liquid_volume
. You can see the values by watchingpio 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:- Add the following yaml contents to
~/.pioreactor/plugins/ui/contrib/charts/liquid_volume.yaml
: https://gist.github.com/CamDavidsonPilon/95eef30189101da69f706d02ef28d972 - In your config.ini, under
ui.overview.charts
, add the lineliquid_volume=1
.
- Add the following yaml contents to
- 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, specifycurve_data_
fields with values of the curve's polynomial coefficients (leading term first), and setcurve_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
calledpio_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>
- GET:
- 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
- GET:
- Per pioreactor:
Breaking changes
pio kill --name x
is nowpio 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
orB.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
Upcoming
Enhancements
dosing_automation.vial_volume
replaced withdosing_automation.liquid_volume
. You can see the values by watchingpio 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:- Add the following yaml contents to
~/.pioreactor/plugins/contrib/charts/lqiuid_volume.yaml
: https://gist.github.com/CamDavidsonPilon/95eef30189101da69f706d02ef28d972 - In your config.ini, under
ui.overview.charts
, add the lineliquid_volume=1
.
- Add the following yaml contents to
- 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, specifycurve_data_
fields with values of the curve's polynomial coefficients (leading term first), and setcurve_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
calledpio_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>
- GET:
- 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
- GET:
- Per pioreactor:
Breaking changes
pio kill --name x
is nowpio 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
orB.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
Enhancements
dosing_automation.vial_volume
replaced withdosing_automation.liquid_volume
. You can see the values by watchingpio 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:- Add the following yaml contents to
~/.pioreactor/plugins/contrib/charts/lqiuid_volume.yaml
: https://gist.github.com/CamDavidsonPilon/95eef30189101da69f706d02ef28d972 - In your config.ini, under
ui.overview.charts
, add the lineliquid_volume=1
.
- Add the following yaml contents to
- 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, specifycurve_data_
fields with values of the curve's polynomial coefficients (leading term first), and setcurve_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>
- GET:
- 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
- GET:
- Per pioreactor:
Breaking changes
pio kill --name x
is nowpio 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
orB.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
Upcoming
Enhancements
dosing_automation.vial_volume
replaced withliquid_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:- Add the following yaml contents to
~/.pioreactor/plugins/contrib/charts/lqiuid_volume.yaml
: https://gist.github.com/CamDavidsonPilon/95eef30189101da69f706d02ef28d972 - In your config.ini, under
ui.overview.charts
, add the lineliquid_volume=1
.
- Add the following yaml contents to
- 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>
- GET:
- 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
- GET:
- Per pioreactor:
24.10.1
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
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 topio cache clear
pio view-cache
renamed topio 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 withmonitor
.watchdog
no longer exists.
24.9.26rc0
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 topio cache clear
pio view-cache
renamed topio 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 withmonitor
.watchdog
no longer exists.
24.9.19
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
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
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.