@@ -22,7 +22,7 @@ dependencies = [
2222 " aionotify==0.3.1" ,
2323 " anyio==4.9.0" ,
2424 " click==8.1.2" ,
25- " jsonschema>=4.17.3,<5 " ,
25+ " jsonschema==4.21.1 " ,
2626 " numpy==1.22.3" ,
2727 " packaging==22.0" ,
2828 " pydantic==2.11.7" ,
@@ -36,12 +36,16 @@ dependencies = [
3636
3737[project .optional-dependencies ]
3838# Robot dependencies - exact versions from Pipfile [packages] for robot deployment
39- # These exact pins narrow the version ranges in main dependencies for robot deployment
39+ # Note: Most packages from Pipfile [packages] are already in main dependencies with exact versions.
40+ # jsonschema is constrained by opentrons-shared-data (which requires ==4.21.1), so we don't
41+ # override it here. The Pipfile had ==4.17.3, but shared-data requires ==4.21.1, so robots
42+ # will use 4.21.1 as required by the shared-data dependency.
4043robot = [
41- " jsonschema==4.17.3" ,
42- # Note: Other packages from Pipfile [packages] (pydantic, pydantic-settings, anyio,
43- # numpy, packaging, pyusb, zipp, opentrons-shared-data, opentrons-hardware, performance_metrics)
44- # are already pinned to exact versions in main dependencies, so no need to duplicate here.
44+ # Note: All packages from Pipfile [packages] are either:
45+ # 1. Already pinned to exact versions in main dependencies (pydantic, pydantic-settings, anyio,
46+ # numpy, packaging, pyusb, zipp, opentrons-shared-data, opentrons-hardware, performance_metrics)
47+ # 2. Constrained by transitive dependencies (jsonschema is required by opentrons-shared-data==4.21.1)
48+ # So no additional packages need to be specified in the robot extra.
4549]
4650dev = [
4751 " atomicwrites==1.4.0; sys_platform == 'win32'" ,
0 commit comments