-
Notifications
You must be signed in to change notification settings - Fork 178
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
chore(release): 7.2.0 #14440
Merged
Merged
chore(release): 7.2.0 #14440
Conversation
This file contains 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
* docs(api): replace double quotes with single quotes * docs(api): add missing single quote * docs(api): use double quotes in v1 docs * docs(api): use double quotes for v2 example protocols * docs(api): use double quotes in v2 docs
refactors choose robot slideout usage of getRobotUpdateDisplayInfo to eliminate selector console warnings closes RAUT-909
his PR contains updates required to handle Opentrons/oe-core#110 and Opentrons/buildroot#213 which update the flex operating system and ot-2 operating system respectively to more recent versions of, well everything. Perhaps most significantly to us, both PRs update the python that runs on the machine to 3.10, which requires a lot of changes to a lot of our code. This PR makes those changes by updating the python versions used in our test harnesses to 3.10; setting those dependencies explicitly captured by the system builders to their new versions from the new versions of the system builders; and bumping other dependencies the minimum required to make it all work. Further work may increase dependency versions further. The big ones are updating pydantic to 1.9, which is something we've been putting off for a while and probably unlocks further updates. This update is because of the following, which is typical of the process: system builders updated numpy, which is locked in because it must be cross-compiled, to 1.17 numpy 1.17 includes type annotations via .pyi mypy must be updated to 0.981 because previous versions interpreted .pyi files as-if the python version was 3.7, but the .pyis had some >3.7-only features pydantic must be updated to 1.9 because 1.8 doesn't work with that updated mypy because of a change to internal mypy hooks a lot of server code and tests have to be slightly altered because pydantic 1.9 doesn't elide None keys, which is (IMO) good anyway This should hopefully free us to update mypy to the latest again, and hopefully the changes to explicit handling of none keys will let us update pydantic further. Anyway, there's a fair amount of "just run the robot" style testing to do here, and we have to decide what to do about loading pickles; handling user-installed dependencies; and further support of 3.7. But all the tests should now pass.
* refactor(app): change the word from OT-3 to Flex in code
* refactor(app): add tests and clean up components
* refactor(app): update tests for react 18 update
* chore: do not try and set acls in docs and labware * trigger ll sandbox deploys on action changes
fixes the logic to surface a magnetic module fixture conflict if one exists and suppress conflicts with staging area fixtures. changes the background color of the magnetic module item. splits out a ModuleTable component for readability. closes RAUT-913
* add missing docstrings for Well properties * 2-way ref between well_name and dictionary access
when add fixture modal options are provided (during protocol setup on ODD), only show those options and do not allow the modal to close without selecting an option closes RAUT-911
* docs(doc): add corepack usage
We use policies now, not acls
… package (#14281) In addition to properly exporting the necessary components in the bundled components library artifact. Remove legacy usage of css modules and html parsing that posed portability risks in the protocol library project. In order to allow key components to be used in server side rendered environments, remove the dependency on css modules and target exported directories for lib build
Co-authored-by: y3rsh <[email protected]>
…ctions and types (#14291) removes various unused utilities, components, and types related to deck config work
* docs(doc): change python version from 3.7 to 3.10
Closes RSS-128. * Update command unions. * Update stateless command unions. * Work around Pydantic bug. * Fix names and docstrings for union workarounds. * Update tests. * Update command schema.
* fix(app): fix lpc begin wizard long name display issue
* fix(app): replace cut-off success icon closes RQA-2165
fix color on labware intervention modal labware display name according to designs closes [RAUT-1008](https://opentrons.atlassian.net/browse/RAUT-1008) closes [RAUT-1010](https://opentrons.atlassian.net/browse/RAUT-1010) closes [RAUT-1011](https://opentrons.atlassian.net/browse/RAUT-1011) closes [RAUT-1012](https://opentrons.atlassian.net/browse/RAUT-1012)
…ct (#14547) Closes RQA-2311 Closes RSS-490 # Overview Does two things- 1. shared-data: adds (to pipette definitions) the offsets of back left and front right corners of all pipettes' outer casing from their respective mount position 2. api: updates the pipette movement conflict checker to use the above mentioned pipette bounds that include the outer casing of pipettes, instead of just the bounding nozzles. # Test Plan Main objective of this PR is to make sure a conflict with thermocycler lid is caught in analysis. On top of that, since this PR also updates the logic for checking potential collisions, make sure that previously failing cases aren't passing now and vice versa. Good news is that previous integration tests for pipette movement conflict are still passing as expected. Test protocol: ``` from opentrons.protocol_api import COLUMN, ALL requirements = { "robotType": "Flex", "apiLevel": "2.16" } def run(ctx): tip_rack1 = ctx.load_labware("opentrons_flex_96_tiprack_50ul", "B3", adapter="opentrons_flex_96_tiprack_adapter") tip_rack2 = ctx.load_labware("opentrons_flex_96_tiprack_50ul", "D3") instrument = ctx.load_instrument('flex_96channel_1000', mount="left") my_pcr_plate = ctx.load_labware('nest_96_wellplate_200ul_flat', "C2") my_other_plate = ctx.load_labware('nest_96_wellplate_200ul_flat', "C1") thermocycler = ctx.load_module('thermocyclerModuleV2') tc_adjacent_plate = ctx.load_labware("nest_96_wellplate_200ul_flat", "A2") ctx.load_trash_bin("A3") instrument.configure_nozzle_layout(style=COLUMN, start="A12", tip_racks=[tip_rack2]) instrument.pick_up_tip() instrument.aspirate(50, my_pcr_plate.wells_by_name()["A4"]) instrument.dispense(20, my_other_plate.wells_by_name()["A2"]) # Should error out because conflict with thermocycler lid instrument.dispense(20, tc_adjacent_plate.wells_by_name()["A1"]) instrument.drop_tip() ``` # Changelog Shared-data: - added `pipetteBoundingBoxOffsets` to pipette definitions api: - updated `PipetteDict` to include pipette bounding box offsets - added pipette bounding box offsets to engine pipette state's config data - replaced bounding nozzles fetchers with pipette bounding box fetchers - updated the logic that checks whether a pipette is over/ overlapping with a certain slot. # Review requests - any objections to this addition of `pipetteBoundingBoxOffsets` to the definitions? - anything I'm missing with the changes in hardware controller? # Risk assessment Medium. Changes a pretty central part of the pipette movement conflict checker but it's well-tested and only used during 96 channel partial config.
provide padding in form for connecting to robot via IP address closes RQA-2350
…r shared data (#14565) # Overview [RDEVOPS-62](https://opentrons.atlassian.net/browse/RDEVOPS-62) This is a temporary fix for the 7.2.0 release so we may publish shared-data. The real fix is in the work being done to move to Vite. ## Test Plan Works locally ```shell make -C shared-data lib-js make: Entering directory '/root/github/opentrons/shared-data' NODE_OPTIONS=--openssl-legacy-provider yarn webpack yarn run v1.22.10 $ /root/github/opentrons/node_modules/.bin/webpack Hash: 4c23879d2c6e65c2d53a Version: webpack 4.46.0 Time: 3645ms Built at: 02/29/2024 6:57:56 AM Asset Size Chunks Chunk Names opentrons-shared-data.js 653 KiB 0 [emitted] [big] index opentrons-shared-data.js.LICENSE.txt 95 bytes [emitted] opentrons-shared-data.js.map 713 KiB 0 [emitted] [dev] index Entrypoint index [big] = opentrons-shared-data.js opentrons-shared-data.js.map [12] ./errors/definitions/1/errors.json 5.72 KiB {0} [built] [21] ./labware/schemas/2.json 12.3 KiB {0} [built] [22] ./deck/definitions/4/ot2_standard.json 10.1 KiB {0} [built] [39] ./pipette/definitions/1/pipetteNameSpecs.json 16 KiB {0} [built] [40] ./gripper/definitions/1/gripperV1.1.json 689 bytes {0} [built] [75] ./deck/definitions/4/ot3_standard.json 16 KiB {0} [built] [85] ./pipette/definitions/1/pipetteModelSpecs.json 262 KiB {0} [built] [86] ./module/definitions/3/magneticModuleV1.json 13.4 KiB {0} [built] [87] ./module/definitions/3/magneticModuleV2.json 14.4 KiB {0} [built] [88] ./module/definitions/3/temperatureModuleV1.json 4.84 KiB {0} [built] [89] ./module/definitions/3/temperatureModuleV2.json 7.36 KiB {0} [built] [90] ./module/definitions/3/thermocyclerModuleV1.json 54.3 KiB {0} [built] [91] ./module/definitions/3/thermocyclerModuleV2.json 150 KiB {0} [built] [92] ./module/definitions/3/heaterShakerModuleV1.json 16.1 KiB {0} [built] [230] ./js/index.ts + 40 modules 98 KiB {0} [built] | ./js/index.ts 389 bytes [built] | ./js/constants.ts 11 KiB [built] | ./js/getLabware.ts 6.15 KiB [built] | ./js/fixtures.ts 4.1 KiB [built] | ./js/helpers/index.ts 12.5 KiB [built] | ./js/pipettes.ts 5.2 KiB [built] | ./js/types.ts 21 bytes [built] | ./js/labwareTools/index.ts 12.8 KiB [built] | ./js/modules.ts 2.47 KiB [built] | ./js/gripper.ts 810 bytes [built] | ./protocol/index.ts 55 bytes [built] | ./deck/index.ts 33 bytes [built] | ./js/titleCase.ts 913 bytes [built] | ./js/errors.ts 302 bytes [built] | ./js/helpers/get96Channel384WellPlateWells.ts 1.29 KiB [built] | + 26 hidden modules + 216 hidden modules WARNING in asset size limit: The following asset(s) exceed the recommended size limit (244 KiB). This can impact web performance. Assets: opentrons-shared-data.js (653 KiB) WARNING in entrypoint size limit: The following entrypoint(s) combined asset size exceeds the recommended limit (244 KiB). This can impact web performance. Entrypoints: index (653 KiB) opentrons-shared-data.js WARNING in webpack performance recommendations: You can limit the size of your bundles by using import() or require.ensure to lazy load some parts of your application. For more info visit https://webpack.js.org/guides/code-splitting/ Done in 4.23s. make: Leaving directory '/root/github/opentrons/shared-data' ``` ## Changelog - add `--openssl-legacy-provider` so that yarn webpack builds shared-data # Risk assessment Would not want in permanently, Vite work in edge will solve. [RDEVOPS-62]: https://opentrons.atlassian.net/browse/RDEVOPS-62?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
In protocols page, there is a help link to open the Protocol Library. Here, I update the link to direct to PL reborn's URL at library.opentrons.com closes RQA-2414
fix(app): remove body text on module calibration in progress closes RQA-2320
asyncio subprocess used to need loop; now it doesn't. For a minimum-affected fix, just don't pass loop to the subprocess invocations while keeping it in the top level environment. Closes RQA-2417
Partially closes RAUT-990
…14576) A link in the "How labware offsets work" modal goes to a help center page that only covers OT-2. The link is present when setting up Flex or OT-2 protocols. We decided to remove the link for now.
In pipette overflow menu for OT-2 pipettes, the 'Pipette settings' menu item should be disabled during an active run. closes [RQA-2427](https://opentrons.atlassian.net/browse/RQA-2427)
…scription (#14589) Currently, components know to fallback to HTTP if the broker is unresponsive during the initial connection/subscription request to the MQTT broker. However, there is no logic to handle the edge case of falling back to HTTP during an active subscription (the component successfully subscribes to a topic, but during the active subscription, the broker becomes unresponsive). Notify all components subscribed to any topic that they should fallback to HTTP if the broker becomes unresponsive after successfully subscribing.
…14588) Reduce superfluous MQTT network traffic on the app side by keeping track of robots that have known blocked MQTT ports (or have an offline message broker).
8398c83 made a refactor to the way the hardware controller retracts the last-moved mount to get it out of the way when you change a move. This change allowed mounts that have electronic brakes to have those brakes engaged more often, lowring current consumption and heat generation. Unfortunately, it also introduced an issue in a specific code path. If you have a 96 channel attached and you've been moving a mount that is not the left mount, so last_moved_mount is RIGHT or GRIPPER; and then you call `_cache_and_maybe_retract_mount(LEFT)`; then - the left mount is idle, so we home it with home_z - home_z clears _last_moved_mount - there is now no mount to retract, and so it is not retracted The fix for this is to copy last_moved_mount to a local so altering the cached value won't effect the rest of the method. This fixes an issue where we use exactly this codepath: moving to maintenance position immediately after calibrating the gripper. _last_moved_mount is GRIPPER, but we always move the left mount to the maintenance position. This hits the problem. Any other codepath of this kind would also hit it. This change should be strictly safer than the previous behavior. Closes RABR-45, RQA-2380
This PR fixes two issues. 1. Often, after updating the firmware of the head or the gripper, homing that subsystem's z axis would not cause the motor to move. The root cause for this is in the firmware, but lessening the distance that we home the axes also makes the errors happen after 2 minutes instead of 20. 2. Sometimes, after updating the firmware of the head or the gripper, that axis would fall down. This is in fact pretty much the same issue - it's to do with mechanics around how we handle the emergency brakes - and is also fixed in firmware; but disabling these axes when we're about to update them will help. Also, wrap the entirety of `cache_instruments` in the motion lock rather than just sections, which would sometimes lead to part of the calls happening long before the rest of them. Closes RQA-2301, RQA-2429 --------- Co-authored-by: ahiuchingau <[email protected]>
# Overview Added a couple known issues that won't be addressed in 7.2.0. # Review requests Both issues sufficiently and accurately summarized?
y3rsh
approved these changes
Mar 6, 2024
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.
Approved contingent on QA final signoff.
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.
This is the tracking branch for release 7.2.0