Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/edge' into RSS-100-Robust620DB
Browse files Browse the repository at this point in the history
* origin/edge: (31 commits)
  refactor(hardware): Update appropriate revision (#12130)
  fix(api): Fix accidental error on any PAPIv2.14 protocol (#12141)
  refactor(api): Allow homing after drop tip in engine core (#12124)
  fix(shared-data): remove newLocation and strategy from schemav6 (#12133)
  refactor(api): load pipette with useVirtualPipettes config option (#12117)
  chore(api): further speed up ot3controller tests and add profiling (#12132)
  docs(api): Settle in to leave Labware.default_magdeck_engage_height alone, for now (#12122)
  refactor(api): Improve error messages for JSONv6 and PAPIv2.14 protocols (#12131)
  refactor(robot-server): Note mistaken type in migration (#12126)
  chore(hardware): Remove docstring content checks (#12128)
  feat(hardware_control): Added firmware update mechanism for submodules (#12076)
  feat(app): remove feature flag for calibration dashboard and wizard updates (#12125)
  feat(app):  Calibration dashboard wizard data invalidation (#12097)
  feat(hardware): support new revision values (#12111)
  feat(app): add Chip component (#12090)
  docs(api): Officially remove the `height` parameter of `MagneticModuleContext.engage()` (#12114)
  feat(system-server): add persistent UUID generation (#12123)
  feat(odd): add manual connection for a hidden network (#12033)
  feat(hardware): add progress output to subsystem firmware update process (#12059)
  refactor(api): Improve OT3 instrument calibration process (#11807)
  ...
  • Loading branch information
y3rsh committed Feb 13, 2023
2 parents 5fdd626 + cc7824c commit fea7ca3
Show file tree
Hide file tree
Showing 481 changed files with 60,461 additions and 24,823 deletions.
1 change: 1 addition & 0 deletions api/Pipfile
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,6 @@ opentrons = { editable = true, path = "." }
opentrons-hardware = { editable = true, path = "./../hardware" }
# specify typing-extensions explicitly to force lockfile inclusion on Python >= 3.8
typing-extensions = ">=4.0.0,<5"
pytest-profiling = "~=1.7.0"
# TODO(mc, 2022-03-31): upgrade sphinx, remove this subdep pin
jinja2 = ">=2.3,<3.1"
58 changes: 38 additions & 20 deletions api/Pipfile.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion api/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
"""
import pytest


# Options must be added at the root level for pytest to properly
# pick them up. Technically, the main conftest that we use in
# tests/opentrons is not the root level.
Expand Down
10 changes: 10 additions & 0 deletions api/docs/static/override_sphinx.css
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,22 @@ div.document {
padding-top: 150px;
margin-top: 0;
}

div.document [id] {
scroll-margin-top: 150px;
}

@media only screen and (min-device-width: 768px) and (min-width: 768px) and (max-width: 1023px) {
div.document {
padding-top: 100px;
margin-top: 0;
}

div.document [id] {
scroll-margin-top: 100px;
}
}

div.body p {
line-height: 20pt;
font-family: "Open Sans", "sans-serif";
Expand Down
11 changes: 7 additions & 4 deletions api/docs/v2/new_protocol_api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ Protocols and Instruments
:members:
:exclude-members: delay

.. autoclass:: opentrons.protocol_api.Liquid

.. _protocol-api-labware:

Labware and Wells
Expand All @@ -29,24 +31,25 @@ Labware and Wells

Modules
-------

.. autoclass:: opentrons.protocol_api.TemperatureModuleContext
:members:
:exclude-members: start_set_temperature, await_temperature, broker, geometry
:exclude-members: start_set_temperature, await_temperature, broker, geometry, load_labware_object
:inherited-members:

.. autoclass:: opentrons.protocol_api.MagneticModuleContext
:members:
:exclude-members: broker, geometry
:exclude-members: calibrate, broker, geometry, load_labware_object
:inherited-members:

.. autoclass:: opentrons.protocol_api.ThermocyclerContext
:members:
:exclude-members: total_step_count, current_cycle_index, total_cycle_count, hold_time, ramp_rate, current_step_index, broker, geometry
:exclude-members: total_step_count, current_cycle_index, total_cycle_count, hold_time, ramp_rate, current_step_index, broker, geometry, load_labware_object
:inherited-members:

.. autoclass:: opentrons.protocol_api.HeaterShakerContext
:members:
:exclude-members: broker, geometry
:exclude-members: broker, geometry, load_labware_object
:inherited-members:


Expand Down
56 changes: 40 additions & 16 deletions api/docs/v2/versioning.rst
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ This table lists the correspondence between Protocol API versions and robot soft
+-------------+------------------------------+
| 2.13 | 6.1.0 |
+-------------+------------------------------+
| 2.14 | unreleased |
| 2.14 | 6.3.0 |
+-------------+------------------------------+

Changes in API Versions
Expand Down Expand Up @@ -237,18 +237,42 @@ Version 2.13
Version 2.14
++++++++++++

Upcoming, not yet released.

- :py:meth:`.ProtocolContext.define_liquid` and :py:meth:`.Well.load_liquid` added will allow you to define different liquid types and add them to wells at the beginning of your protocol.
- :py:class:`.Labware` and :py:class:`.Well` objects will adhere to the protocol's API level setting. Prior to this version, they incorrectly ignore the setting.
- :py:meth:`.ModuleContext.load_labware_object` will be deprecated.
- :py:meth:`.MagneticModuleContext.calibrate` will be deprecated.
- The ``presses`` and ``increment`` arguments of :py:meth:`.InstrumentContext.pick_up_tip` will be deprecated. Configure your pipettes pick-up settings with the Opentrons App, instead.
- Several internal properties of :py:class:`.Labware`, :py:class:`.Well`, and :py:class:`.ModuleContext` will be deprecated and/or removed:
- ``Labware.separate_calibration`` and ``ModuleContext.separate_calibration``, which are holdovers from a calibration system that no longer exists.
- The ``Well.has_tip`` setter, which will cease to function in a future upgrade to the Python protocol execution system. The corresponding ``Well.has_tip`` getter will not be deprecated.
- :py:meth:`.ModuleContext.geometry` will be deprecated
- The ``model`` and ``type`` properties of this interface will be replaced by :py:meth:`.ModuleContext.model` and :py:meth:`.ModuleContext.type`, respectively
- :py:meth:`.ProtocolContext.load_labware` will favor loading custom labware over Opentrons defaults if a name shadows a default and no namespace is included.
- :py:meth:`.InstrumentContext.touch_tip` will end with the pipette tip in the center of the well instead of on the edge closest to the front of the machine.

This version introduces a new protocol runtime. Several older parts of the Protocol API were deprecated as part of this switchover.
If you specify an API version of 2.13 or lower, your protocols will continue to execute on the old runtime.

- Feature additions

- :py:meth:`.ProtocolContext.define_liquid` and :py:meth:`.Well.load_liquid` added
to define different liquid types and add them to wells, respectively.

- Bug fixes

- :py:class:`.Labware` and :py:class:`.Well` now adhere to the protocol's API level setting.
Prior to this version, they incorrectly ignored the setting.

- :py:meth:`.InstrumentContext.touch_tip` will end with the pipette tip in the center of the well
instead of on the edge closest to the front of the machine.

- :py:meth:`.ProtocolContext.load_labware` now prefers loading user-provided labware definitions
rather than built-in definitions if no explicit ``namespace`` is specified.

- Deprecations and removals

- ``ModuleContext.load_labware_object`` was deprecated as an unnecessary internal method.

- ``ModuleContext.geometry`` was deprecated in favor of
:py:attr:`.ModuleContext.model` and :py:attr:`.ModuleContext.type`

- ``MagneticModuleContext.calibrate`` was deprecated since it was never needed nor implemented.

- The ``height`` parameter of :py:meth:`MagneticModuleContext.engage` was deprecated.
Use ``offset`` or ``height_from_base`` instead.

- ``Labware.separate_calibration`` and ``ModuleContext.separate_calibration`` were removed,
since they were holdovers from a calibration system that no longer exists.

- The :py:attr:`.Well.has_tip` setter was deprecated. The getter is not deprecated.
Use :py:meth:`.Labware.reset` to reset your tip rack's state, instead.

- The ``presses`` and ``increment`` arguments of :py:meth:`.InstrumentContext.pick_up_tip` were deprecated.
Configure your pipette pick-up settings with the Opentrons App, instead.
10 changes: 9 additions & 1 deletion api/src/opentrons/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,13 +159,21 @@ async def _blink() -> None:
# is returned. Do our own blinking here to keep it going while we home the robot.
blink_task = asyncio.create_task(_blink())

# check for and start firmware updates if OT3
async def _do_updates() -> None:
if should_use_ot3() and ff.enable_ot3_firmware_updates():
log.info("Checking firmware updates")
await hardware.do_firmware_updates()

await asyncio.create_task(_do_updates())

try:

if not ff.disable_home_on_boot():
log.info("Homing Z axes")
await hardware.home_z()

await hardware.set_lights(button=True)

return hardware
finally:
blink_task.cancel()
Expand Down
19 changes: 11 additions & 8 deletions api/src/opentrons/config/advanced_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -176,14 +176,6 @@ class Setting(NamedTuple):
),
restart_required=True,
),
SettingDefinition(
_id="enableProtocolEnginePAPICore",
title="Enable experimental execution core for Python protocols",
description=(
"This is an Opentrons-internal setting to test new execution logic."
" Do not enable."
),
),
SettingDefinition(
_id="enableOT3FirmwareUpdates",
title="Enable experimental OT-3 firmware updates",
Expand Down Expand Up @@ -518,6 +510,16 @@ def _migrate19to20(previous: SettingsMap) -> SettingsMap:
return newmap


def _migrate20to21(previous: SettingsMap) -> SettingsMap:
"""Migrate to version 21 of the feature flags file.
- Removes deprecated enableProtocolEnginePAPICore option
"""
removals = ["enableProtocolEnginePAPICore"]
newmap = {k: v for k, v in previous.items() if k not in removals}
return newmap


_MIGRATIONS = [
_migrate0to1,
_migrate1to2,
Expand All @@ -539,6 +541,7 @@ def _migrate19to20(previous: SettingsMap) -> SettingsMap:
_migrate17to18,
_migrate18to19,
_migrate19to20,
_migrate20to21,
]
"""
List of all migrations to apply, indexed by (version - 1). See _migrate below
Expand Down
Loading

0 comments on commit fea7ca3

Please sign in to comment.