Skip to content

25.1.21

Latest
Compare
Choose a tag to compare
@CamDavidsonPilon CamDavidsonPilon released this 21 Jan 16:05

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.
  • 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
  • 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
  • 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>
  • 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
  • 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 under od_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 to utils.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.