Skip to content

refactor(api, shared-data): liquid class tiprack schema change #18958

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: edge
Choose a base branch
from

Conversation

jbleon95
Copy link
Contributor

Overview

Test Plan and Hands on Testing

Changelog

Review requests

Risk assessment

@jbleon95 jbleon95 added the DO NOT MERGE Indicates a PR should not be merged, even if there's a shiny green merge button available label Jul 17, 2025
Copy link

codecov bot commented Jul 17, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 56.08%. Comparing base (32d0a66) to head (fc35160).
Report is 16 commits behind head on edge.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             edge   #18958      +/-   ##
==========================================
- Coverage   56.24%   56.08%   -0.17%     
==========================================
  Files        3342     3349       +7     
  Lines      288642   289637     +995     
  Branches    36922    36992      +70     
==========================================
+ Hits       162356   162450      +94     
- Misses     126084   126985     +901     
  Partials      202      202              
Flag Coverage Δ
protocol-designer 18.96% <ø> (+0.02%) ⬆️
step-generation 5.32% <ø> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
...red_data/liquid_classes/liquid_class_definition.py 93.81% <ø> (-0.04%) ⬇️

... and 36 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@ddcc4 ddcc4 self-requested a review July 17, 2025 21:41
...,
description="The name of tiprack whose tip will be used"
" when handling this specific liquid class with this pipette"
)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Move this down so that the entries here are ordered as liquidClassName, pipetteModel, tiprack; and update the comment below.

@@ -825,7 +825,7 @@ def minimal_liquid_class_def2() -> LiquidClassSchemaV1:
pipetteModel="flex_1channel_50",
byTipType=[
ByTipTypeSetting(
tiprack="opentrons_flex_96_tiprack_50ul",
tiprack=["opentrons_flex_96_tiprack_50ul"],
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder how much more would break if you changed the name to tipracks to reflect its new type.

Comment on lines +57 to +61
# TODO having these refer to the same transfer property object
# but this may change IDK
transfer_props = build_transfer_properties(tip_type)
for tiprack in tip_type.tiprack:
tip_settings[tiprack] = transfer_props
Copy link
Member

@sanni-t sanni-t Jul 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ya I think we should copy the transfer props instead of using the same, because otherwise multiple tipracks will have reference to the same transfer props object. This will cause problems like this-

props_for_v1_tiprack = water.get_for(pipette_load_name, "opentrons/opentrons_flex_96_tiprack_50ul/1")
props_for_v2_tiprack = water.get_for(pipette_load_name, "opentrons/opentrons_flex_96_tiprack_50ul/2")

assert props_for_v1_tiprack == props_for_v2_tiprack            # passes
assert props_for_v1_tiprack.aspirate.submerge.speed == 100  # passes

props_for_v1_tiprack.aspirate.submerge.speed = 231
assert props_for_v2_tiprack.aspirate.submerge.speed == 231  # passes, not desirable

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DO NOT MERGE Indicates a PR should not be merged, even if there's a shiny green merge button available
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants