- Create new JSON schema in
shared-data/protocol/schemas/${schemaVersion}.json
- Create TS types for new schema in
shared-data/protocol/types
- Create or modify Python types as necessary in both
python/opentrons_shared_data/protocol/types
and in the python apitypes
inapi/src/opentrons/protocol_api/types.py
- Create new executor in api to handle new schema. Be sure to include unit tests
- Add new test in
api/tests/opentrons/test_execute.py
for the schema - Add new test in
shared-data/js/__tests__/protocolSchemaV${schemaVersion}.test.js
to ensure new schema definition functions as intended - Add new schema fixture to
shared-data/protocol/fixtures/${schemaVersion}/${schemaVersion}.json
that the above test will read - Update
MAX_SUPPORTED_VERSION
inapi/src/opentrons/protocols/parse.py
IMPORTANT: Be sure to clearly communicate the schema bump to the software + QA teams. This is a strict contract that should be honored by both the frontend and robot stack.