-
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
Write new JSON schema for V3 #3110
Comments
A json command including
In addition, it would be useful to be able to set offsets in the commands themselves. For example, here is exactly what I'd want to do in a plating protocol to avoid agar stabs blocking the pipette:
I appreciate flattening of commands: this can basically be summed up with zen of python rule #5 |
note: only for APIv2 executor Closes #3110
* define v3 json protocol schema * support v3 JSON protocol execution in APIv2 executor Closes #3110
* define v3 json protocol schema * support v3 JSON protocol execution in APIv2 executor Closes #3110
* define v3 json protocol schema * support v3 JSON protocol execution in APIv2 executor Closes #3110
This ticket should be updated to include any changes we want to make in the V3 protocol json schema. The result of this ticket will be a
protocolSchemaV3.json
file added toshared-data/
.This ticket does NOT include making PD save V3 protocols, or loading V3 protocols in Run App / JSON executor/ etc. This ticket is a prereq of all that work, and is just concerned with writing the schema definition which we will move towards.
Changes for the next JSON schema:
pipette-model
and all pipette "model" related fields. Require "name" field for pipette, no longer optional.schemaVersion: 3
is required, value must be the integer3
for it to be a valid schema v3 protocol). From v3 onward,schema-version / schemaVersion
will be aninteger
, not a semver string.touchTipMmFromTop
required underdefaultValues
- no longer optional (WIP: any missing defaultValues?)labware
key contain labware definitions, removelabware.model
and use newlabware.definition
"additionalProperties": false
-- unless it's impossible w/ ref reuse :/STUFF WE HAVEN'T ALL TALKED ABOUT: Breaking
procedure
upMake
procedure
a flat array (call itcommands
), and use an optionalcommandAnnotations
object to keep an arbitrarily-nested array of description objects that references indicies incommands
. ThecommandAnnotations
could be used for the RA run log when it is present.Since we aren't sure what kind of data will go in there, let's leave
commandAnnotations
permissive - it's an optional object of arbitrary shape. That means to use it, the consumer (Run App) will need to be defensive, or we'll have to release a new JSON protocol schema version.The 2 motivations are that procedures/subProcedures does not allow arbitrarily deep nesting, only one level -- but annotations in the Run Log might be better deep. And, keeping commands flat and un-annotated will make the JSON executor's task simpler.
The text was updated successfully, but these errors were encountered: