Skip to content

Releases: Pioreactor/pioreactor

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.

24.9.17rc0

17 Sep 13:41
Compare
Choose a tag to compare
24.9.17rc0 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 an 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 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/.

Enhancements

  • Better MQTT re-connection logic.
  • New Manage Inventory menu on the Inventory page that can be used for bulk actions.

24.9.16rc0

16 Sep 18:07
Compare
Choose a tag to compare
24.9.16rc0 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 an 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 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/.

Enhancements

  • Better MQTT re-connection logic.
  • New Manage Inventory menu on the Inventory page that can be used for bulk actions.

24.9.15rc0

16 Sep 01:09
Compare
Choose a tag to compare
24.9.15rc0 Pre-release
Pre-release
bump rc version

24.8.22

22 Aug 14:42
Compare
Choose a tag to compare

24.8.22

Important

We highly recommend you be on version 24.7.18 before updating!

Enhancements

  • pio logs now includes the UI logs (if run on leader).
  • introduce a new od_reading config,turn_off_leds_during_reading, which enables / disables turning off the other LEDS during an OD snapshot. By default, it is set to 1 (enables).
  • leader-only Pioreactors also have a config_<hostname>.local file now.
  • a new top-level section in experiment profiles, inputs, allows you to define parameters that can be used in expressions. This is useful if you are copy the same constant over an over again, and want a quick way to change it once. Example:
inputs:
  growth_phase_temp: 37.0
  stationary_phase_temp: 30.0
  od_threshold: 1.6

common:
  jobs:
    temperature_automation:
      actions:
        ...
        - type: update
          hours_elapsed: 12.0
          if: ${{ ::od_reading:od1.od < od_threshold }}
          options:
            target_temperature: ${{ stationary_phase_temp }}
        - type: update
          hours_elapsed: 12.0
          if: ${{ ::od_reading:od1.od >= od_threshold }}
          options:
            target_temperature: ${{ growth_phase_temp }}

Bug fixes

  • more resilience to "UI state" diverging from "bioreactor state". Often, this occurred when two jobs stared almost immediately (often a networking issue), and the last job would halt since it couldn't get the required resources, however any MQTT data would be overwritten by the last job. Now, multiple places in the request pipeline will reduce duplication and prevent two jobs from starting too close to each other.
  • improved stirring clean up when stopped in quick succession after starting.
  • if a network isn't found, the monitor job will not stall, but warn and continue.
  • fixed HAT warning for HAT-less leaders.

Breaking changes

  • the RP2040 firmware is now on i2c channel 0x2C (previously 0x30). This is to solve an annoying i2cdetect issue where the i2c channel would lock up.
  • the web server now writes its logs to the same location as the app: /var/log/pioreactor.log. Those wishing to keep the old location can use a new configuration parameter ui_log_file to [logging] section and set it to /var/log/pioreactorui.log.
  • removed psutil and zeroconf Python packages from new images. We replaced their functionality with built-in routines.
  • in config.ini, the section od_config renamed to od_reading.config, and stirring is stirring.config. When you update, a script will run to automatically update these names in your config.inis.

24.8.21rc0

21 Aug 15:37
Compare
Choose a tag to compare
24.8.21rc0 Pre-release
Pre-release

Upcoming

Enhancements

  • pio logs now includes the UI logs (if run on leader).
  • introduce a new od_reading config,turn_off_leds_during_reading, which enables / disables turning off the other LEDS during an OD snapshot. By default, it is set to 1 (enables).
  • leader-only Pioreactors also have a config_<hostname>.local file now.
  • a new top-level section in experiment profiles, inputs, allows you to define parameters that can be used in expressions. This is useful if you are copy the same constant over an over again, and want a quick way to change it once. Example:
inputs:
  growth_phase_temp: 37.0
  stationary_phase_temp: 30.0
  od_threshold: 1.6

common:
  jobs:
    temperature_automation:
      actions:
        ...
        - type: update
          hours_elapsed: 12.0
          if: ${{ ::od_reading:od1.od < od_threshold }}
          options:
            target_temperature: ${{ stationary_phase_temp }}
        - type: update
          hours_elapsed: 12.0
          if: ${{ ::od_reading:od1.od >= od_threshold }}
          options:
            target_temperature: ${{ growth_phase_temp }}

Bug fixes

  • more resilience to "UI state" diverging from "bioreactor state". Often, this occurred when two jobs stared almost immediately (often a networking issue), and the last job would halt since it couldn't get the required resources, however any MQTT data would be overwritten by the last job. Now, multiple places in the request pipeline will reduce duplication and prevent two jobs from starting too close to each other.
  • improved stirring clean up when stopped in quick succession after starting.
  • if a network isn't found, the monitor job will not stall, but warn and continue.
  • fixed HAT warning for HAT-less leaders.

Breaking changes

  • the RP2040 firmware is now on i2c channel 0x2C (previously 0x30). This is to solve an annoying i2cdetect issue where the i2c channel would lock up.
  • the web server now writes its logs to the same location as the app: /var/log/pioreactor.log. Those wishing to keep the old location can use a new configuration parameter ui_log_file to [logging] section and set it to /var/log/pioreactorui.log.
  • removed psutil and zeroconf Python packages from new images. We replaced their functionality with built-in routines.
  • in config.ini, the section od_config renamed to od_reading.config, and stirring is stirring.config. When you update, a script will run to automatically update these names in your config.inis.

24.8.19rc0

19 Aug 18:07
Compare
Choose a tag to compare
24.8.19rc0 Pre-release
Pre-release

Upcoming

Enhancements

  • pio logs now includes the UI logs (if run on leader).
  • introduce a new od_reading config,turn_off_leds_during_reading, which enables / disables turning off the other LEDS during an OD snapshot. By default, it is set to 1 (enables).
  • leader-only Pioreactors also have a config_<hostname>.local file now.
  • a new top-level section in experiment profiles, inputs, allows you to define parameters that can be used in expressions. This is useful if you are copy the same constant over an over again, and want a quick way to change it once. Example:
inputs:
  growth_phase_temp: 37.0
  stationary_phase_temp: 30.0
  od_threshold: 1.6

common:
  jobs:
    temperature_automation:
      actions:
        ...
        - type: update
          hours_elapsed: 12.0
          if: ${{ ::od_reading:od1.od < od_threshold }}
          options:
            target_temperature: ${{ stationary_phase_temp }}
        - type: update
          hours_elapsed: 12.0
          if: ${{ ::od_reading:od1.od >= od_threshold }}
          options:
            target_temperature: ${{ growth_phase_temp }}

Bug fixes

  • more resilience to "UI state" diverging from "bioreactor state". Often, this occurred when two jobs stared almost immediately (often a networking issue), and the last job would halt since it couldn't get the required resources, however any MQTT data would be overwritten by the last job. Now, multiple places in the request pipeline will reduce duplication and prevent two jobs from starting too close to each other.
  • improved stirring clean up when stopped in quick succession after starting.
  • if a network isn't found, the monitor job will not stall, but warn and continue.
  • fixed HAT warning for HAT-less leaders.

Breaking changes

  • the RP2040 firmware is now on i2c channel 0x2C (previously 0x30). This is to solve an annoying i2cdetect issue where the i2c channel would lock up.
  • the web server now writes its logs to the same location as the app: /var/log/pioreactor.log. Those wishing to keep the old location can use a new configuration parameter ui_log_file to [logging] section and set it to /var/log/pioreactorui.log.
  • removed psutil and zeroconf Python packages from new images. We replaced their functionality with built-in routines.
  • in config.ini, the section od_config renamed to od_reading.config, and stirring is stirring.config. When you update, a script will run to automatically update these names in your config.inis.

24.8.16rc0

16 Aug 17:10
Compare
Choose a tag to compare
24.8.16rc0 Pre-release
Pre-release

Upcoming

Enhancements

  • pio logs now includes the UI logs (if run on leader).
  • introduce a new od_reading config,turn_off_leds_during_reading, which enables / disables turning off the other LEDS during an OD snapshot. By default, it is set to 1 (enables).
  • leader-only Pioreactors also have a config_<hostname>.local file now.
  • a new top-level section in experiment profiles, inputs, allows you to define parameters that can be used in expressions. This is useful if you are copy the same constant over an over again, and want a quick way to change it once. Example:
inputs:
  growth_phase_temp: 37.0
  stationary_phase_temp: 30.0
  od_threshold: 1.6

common:
  jobs:
    temperature_automation:
      actions:
        ...
        - type: update
          hours_elapsed: 12.0
          if: ${{ ::od_reading:od1.od < od_threshold }}
          options:
            target_temperature: ${{ stationary_phase_temp }}
        - type: update
          hours_elapsed: 12.0
          if: ${{ ::od_reading:od1.od >= od_threshold }}
          options:
            target_temperature: ${{ growth_phase_temp }}

Bug fixes

  • more resilience to "UI state" diverging from "bioreactor state". Often, this occurred when two jobs stared almost immediately (often a networking issue), and the last job would halt since it couldn't get the required resources, however any MQTT data would be overwritten by the last job. Now, multiple places in the request pipeline will reduce duplication and prevent two jobs from starting too close to each other.
  • improved stirring clean up when stopped in quick succession after starting.
  • if a network isn't found, the monitor job will not stall, but warn and continue.
  • fixed HAT warning for HAT-less leaders.

Breaking changes

  • the web server now writes its logs to the same location as the app: /var/log/pioreactor.log. Those wishing to keep the old location can use a new configuration parameter ui_log_file to [logging] section and set it to /var/log/pioreactorui.log.
  • removed psutil and zeroconf Python packages from new images. We replaced their functionality with built-in routines.
  • in config.ini, the section od_config renamed to od_reading.config, and stirring is stirring.config. When you update, a script will run to automatically update these names in your config.inis.