Skip to content

feat(api, shared-data): Add locatingFeatureAsParent/Child to valid entity types #18628

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 9 commits into from
Jun 16, 2025

Conversation

mjhuff
Copy link
Contributor

@mjhuff mjhuff commented Jun 13, 2025

Works toward EXEC-77

Overview

Adds locatingFeaturesAsParent and locatingFeaturesAsChild properties to the various entity types that may be involved in a stackup where relevant. This PR is best viewed commit-by-commit.

Notably, 686e400 adds support for locatingFeaturesAsParent to all addressable areas. It sounds like we have to make this a required property even for the module addressable areas, because we can't rely on a child labware always resting on a parent module-based location. Down the road, this would imply that we will have duplicated locatingFeaturesAsParent data between modules and addressable areas, but I suppose there's no way around this.

Test Plan and Hands on Testing

  • Covered by passing CI. There are no functional changes.
  • Snapshot failures all seem expected given the PR changes.

Changelog

  • Add locating feature properties to module defs, labware defs, addressable areas, and deck slots.

Review requests

  • It will make accessing locatingFeatureAsParent much cleaner in our utils if the addressable area property is locatingFeatureAsParent, camel-cased, which is consistent with the camel-cased locatingFeaturesAsParent present in labware defs. However, this does break the current AddressableArea convention of snake-casing properties. Are we ok with this or not?
  • Does the above logic concerning requiring all addressable areas to specify a locatingFeatureAsParent seem valid?

Risk assessment

none

@mjhuff mjhuff requested review from SyntaxColoring and a team June 13, 2025 18:38
@mjhuff mjhuff requested review from a team as code owners June 13, 2025 18:38
@mjhuff mjhuff requested review from jerader and removed request for a team and jerader June 13, 2025 18:38
@mjhuff mjhuff force-pushed the locating-feature-support branch from 53cf0a6 to 59b6602 Compare June 13, 2025 18:45
Copy link

codecov bot commented Jun 13, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 23.67%. Comparing base (482c6da) to head (9c2cfd6).
Report is 21 commits behind head on edge.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             edge   #18628      +/-   ##
==========================================
+ Coverage   23.38%   23.67%   +0.29%     
==========================================
  Files        3237     3240       +3     
  Lines      279313   280103     +790     
  Branches    28098    28561     +463     
==========================================
+ Hits        65306    66314    +1008     
+ Misses     213980   213762     -218     
  Partials       27       27              
Flag Coverage Δ
protocol-designer 19.10% <ø> (+0.04%) ⬆️
step-generation 4.86% <ø> (+0.34%) ⬆️

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

see 32 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.

Copy link
Member

@sfoster1 sfoster1 left a comment

Choose a reason for hiding this comment

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

I think it's a good idea to make everything have the feature, yes. I think it is annoying to have to special case code for the underscores but it's worth it to keep the attribute names consistent. I wish the other stuff was snake case too 😢

Copy link
Member

@sfoster1 sfoster1 left a comment

Choose a reason for hiding this comment

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

🐍 🐍 🐍 🐍 🐍

@mjhuff mjhuff added the gen-analyses-snapshot-pr Generate a healing PR if the analyses snapshot test fails label Jun 13, 2025
Copy link
Contributor

A PR has been opened to address analyses snapshot changes. Please review the changes here: #18632

mjhuff added a commit that referenced this pull request Jun 13, 2025
…ts (#18632)

This PR was requested on the PR
#18628

Co-authored-by: mjhuff <64858653+mjhuff@users.noreply.github.com>
@mjhuff
Copy link
Contributor Author

mjhuff commented Jun 13, 2025

The underlying problem we now come up against is that loadModule commands contain the module definition which means we have to do database migration...or not: EXEC-212.

After consulting with @SyntaxColoring , the plan is to make locatingFeaturesAsParent as optional for now on for module defs, then do EXEC-212 immediately, and then make this field required again.

@mjhuff mjhuff force-pushed the locating-feature-support branch from 7fc08f5 to 72d03fa Compare June 13, 2025 21:41
@mjhuff mjhuff removed the gen-analyses-snapshot-pr Generate a healing PR if the analyses snapshot test fails label Jun 13, 2025
Copy link
Contributor

A PR has been opened to address analyses snapshot changes. Please review the changes here: #18635

1 similar comment
Copy link
Contributor

A PR has been opened to address analyses snapshot changes. Please review the changes here: #18635

@mjhuff mjhuff force-pushed the locating-feature-support branch from d5856fb to 72d03fa Compare June 14, 2025 02:04
…ts (#18635)

This PR was requested on the PR
#18628

Co-authored-by: mjhuff <64858653+mjhuff@users.noreply.github.com>
@mjhuff mjhuff merged commit cf02395 into edge Jun 16, 2025
58 checks passed
@mjhuff mjhuff deleted the locating-feature-support branch June 16, 2025 12:09
mjhuff added a commit that referenced this pull request Jun 16, 2025
…dule defs (#18645)

Works towards EXEC-77

Overview
In #18628, we wanted to require locatingFeaturesAsParent for module definitions, but we couldn't (see comments in PR discussion), so we marked the field as optional and followed up with #18639. Now that the module definition issue is resolved, we can make the field required as originally intended.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants