-
Notifications
You must be signed in to change notification settings - Fork 186
Merge back 'chore_release-8.8.0' into 'edge' #20063
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
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ks (#20034) # Overview (This is Part 6 of tiprack definition fixes for PD.) The problem we're trying to solve: `Hydrated{MoveLiquid/Mix}FormData.tipRack` contains the URI of a tiprack, which could be standard or custom labware. Then the lower-level functions have to look up the tiprack definition for that URI. There are 3 ways they try to do that: 1. Get the definition from `InvariantContext.labwareEntities`. 2. Get the definition from `PipetteEntity.tiprackLabwareDef`. 3. Get it from `getAllDefinitions()[tiprackURI]`. The problem with (1) and (2) is that the tiprack is removed from `InvariantContext` and `PipetteEntity` when the user unselects a tiprack from the pipette, but a step form can still refer to the deleted tiprack's URI. The problem with (3) is that `getAllDefinitions()` only contains standard labware, and doesn't work for custom tipracks. We could solve this problem if any function could look up a tiprack definition whenever it needed to, whether the tiprack is custom or not. But PD does not make that easy. The custom tiprack definitions are available in `BaseState`, but most functions only have access to the `InvariantContext`, which does **not** have all the custom labware definitions. I think the best approach is to **hydrate the tiprack definition into the `HydratedMoveLiquidFormData/HydratedMixFormData`**. So this PR changes `.tipRack` from a URI string into a tiprack labware definition. Then any function using `Hydrated*FormData` would have the tiprack definition without having to implement its own lookup. (There is a precedent for this: we do the same thing when we hydrate `.pipette` in `Hydrated*FormData`, turning the field from a string into a `PipetteEntity`.) In order to hydrate the tiprack definition into `Hydrated*FormData.tipRack`, we need to pass the labware definitions down to the hydration functions, which this PR does by calling the `getLabwareDefsByURI()` selector. ## Test Plan and Hands on Testing Tested PD by hand locally. Ran all the CI tests. ## Risk assessment Low-ish. This PR doesn't change any functionality yet, it just hydrates the tiprack definition into `Hydrated*FormData`. An upcoming PR will change the low-level functions to use the hydrated tiprack definition in `Hydrated*FormData.tipRack`.
…Definitions() [cherrypick] (#20044) # Overview This is a cherry-pick of PR #19916. In that PR, I said that I would only apply that change to `edge`, and leave the PD branch alone because `chore_release-pd-8.6.1` was frozen and about to be released, and the files with the obsolete call were not used by the PD CI tests at all. Well, it turns out that a change I want to make to the PD branch now does trigger the `hardware-sim/` tests for some reason: https://github.com/Opentrons/opentrons/actions/runs/19088629372/job/54534570318 So now I need to cherrypick this change back into the PD branch. ## Test Plan and Hands on Testing CI really really hard. ## Risk assessment Low-ish. (cherry picked from commit 04e051d)
…Def instead of URI (#20039) # Overview The `getMaxConditioningVolume()` function previously took a tiprack URI and tried to look up the tiprack definition in `labwareEntities`. However, that could be unreliable if the tiprack URI refers to a tiprack that has been removed from the deck, because the tiprack would no longer be in `labwareEntities`. Now that the tiprack definition is available in the hydrated form, this PR changes `getMaxConditioningVolume()` to just take in the tiprack definition directly instead of trying to look it up in `labwareEntities`. ## Test Plan and Hands on Testing Smoke tested PD running locally. Ran `yarn vitest --silent=false step-generation/ protocol-designer/ app/`. Will run CI tests. ## Risk assessment Low-ish.
…irectly (#20047) # Overview `getMatchingTipLiquidSpecs()` takes a tiprack URI string, and tries to find the labware definition for the tiprack. This has been causing a ton of failures because the tiprack might not be in `PipetteEntity.tiprackLabwareDef` (if the tiprack has been disassociated from the pipette) nor in `InvariantContext.labwareEntities` (if the tiprack has been removed from the deck). A previous bandaid tried to fall back to looking up the tiprack in `getAllDefinitions()` (PR #19874), but that would still fail if tiprack is custom, because `getAllDefinitions()` only contains standard labware. In this final long-term fix, we change `getMatchingTipLiquidSpecs()` to take in the tiprack definition instead of the tiprack URI string. The caller is responsible for supplying the correct tiprack definition: - When the caller is using the `HydratedFormData`, such as in `mixFormToArgs.ts` and `moveLiquidFormToArgs.ts`, the caller can just get the tiprack definition from `HydratedFormData.tipRack`. We previously changed hydration to put the tiprack definition into `.tipRack` (PR #20034), and that works correctly for both custom and default tipracks. - When the caller is using the `rawForm`, such as in `StepFormToolbox.tsx` and other React components, the caller can `useSelector(getLabwareDefsByURI)` to get the tiprack definition. This selector returns both custom and default labware, so it also works correctly. Sorry this is kind of long. ## Test Plan and Hands on Testing Updated unit tests. Ran `yarn vitest --silent=false step-generation/ protocol-designer/ app/`. Smoke-tested PD running locally. Will run CI tests. ## Risk assessment Low-ish.
…tMatchingTipLiquidSpecsFromSpec() (#20048) # Overview The last one! Back in PR #19041, @ncdiehl introduced `getMatchingTipLiquidSpecsFromSpec()`, which was almost an exact a copy of `getMatchingTipLiquidSpecs()` except that it looked up the tiprack definition differently, because Nick's `getMatchingTipLiquidSpecsFromSpec()` did not have access to the `PipetteEntity.tiprackLabwareDef`. After the recent refactorings, the caller passes in the tiprack definition into both `getMatchingTipLiquidSpecs()` and `getMatchingTipLiquidSpecsFromSpec()`, so now there is no difference between the 2 functions anymore. So this PR merges the 2 functions together and eliminates `getMatchingTipLiquidSpecsFromSpec()`. ## Test Plan and Hands on Testing Run CI tests. ## Risk assessment Low.
# Overview Thought I had added these checks to everything but only added them to dynamic mix.
# Overview This PR enables mixpanel tracking for We will track - Camera enablement & settings - Photo usage - Live feed usage - Photo access and management ## Test Plan and Hands on Testing - View analytics of robots in office on mixpanel ## Changelog ## Review requests - Ensure I am not missing any spots in the code base where a camera action can be set. - How do I get livestream open duration time? ## Risk assessment low
Lots of conflicts: - components/src/hardware-sim/Pipette/PipetteRender.stories.tsx - protocol-designer/src/form-types.ts - protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/StepTools/MoveLiquidTools/SecondStepsMoveLiquidTools.tsx - protocol-designer/src/pages/Designer/ProtocolSteps/StepForm/index.tsx - protocol-designer/src/steplist/fieldLevel/index.ts - protocol-designer/src/steplist/formLevel/handleFormChange/utils.ts - protocol-designer/src/steplist/formLevel/stepFormToArgs/mixFormToArgs.ts - protocol-designer/src/steplist/formLevel/stepFormToArgs/moveLiquidFormToArgs.ts - protocol-designer/src/steplist/formLevel/stepFormToArgs/test/mixFormToArgs.test.ts
…volume is out of bounds (#20056) # Overview Add a default value for the thermocycler max block volume when the found well volume is out of bounds ## Test Plan and Hands on Testing Simulated protocol `/Users/rhyannclarke/opentrons/abr-testing/abr_testing/protocols/active_protocols/4_Illumina DNA Enrichment.py` with apiLevel to 2.27 and received this error: `ProtocolCommandFailedError [line 299]: Error 4000 GENERAL_ERROR (ProtocolCommandFailedError): InvalidBlockVolumeError: Thermocycler max block volume must be between 0 and 100, but got 150.0.` After the change was made, the protocol simulated successfully with `start_set_block_temperature()` and `set_block_temperature()` ## Changelog - Added default block temperatures based on if it was higher than the max or lower than the min ## Risk assessment low Closes RQA-4820
mjhuff
approved these changes
Nov 7, 2025
Contributor
mjhuff
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you as always!
# Fix Slack notifications to prevent workflow failures Fixes two issues with Slack notifications: 1. **Added missing `webhook-type` input** to `simple-build-alert` action (required by `slackapi/[email protected]`) 2. **Made all Slack notifications non-blocking** by adding `continue-on-error: true` to 5 notification steps in `app-test-build-deploy.yaml` Slack notification failures will no longer cause workflow failures, while still logging warnings for debugging.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Changes from PD 8.6.3 and RS 8.8.0 from the past few days.