Skip to content

build(training): standardize on Python 3.12 across manifests, containers, and runtime scripts#541

Merged
katriendg merged 4 commits into
mainfrom
build/540-python-312
Apr 23, 2026
Merged

build(training): standardize on Python 3.12 across manifests, containers, and runtime scripts#541
katriendg merged 4 commits into
mainfrom
build/540-python-312

Conversation

@katriendg
Copy link
Copy Markdown
Collaborator

Description

Standardizes the entire Physical AI Toolchain on Python 3.12, raising requires-python to >=3.12 in every pyproject.toml and regenerating all lock files under the new baseline. This unifies a previously fragmented version floor (>=3.11 in some packages, >=3.11,<3.12 in RL) that blocked Dependabot from proposing dependency updates.

Beyond the version bump, the PR eliminates runtime uv pip compile calls from IL training and SIL evaluation scripts, replacing them with installs from pre-compiled requirements.txt files. This matches the existing RL pattern, removes a deployment-time failure mode (Python 3.11 containers resolving 3.12-only wheels), and cuts job startup latency.

Regenerating requirements surfaced pre-existing metadata conflicts in azureml-mlflow (incompatible caps on mlflow-skinny and azure-storage-blob in RL; marshmallow <4.0.0 cap collision in IL). Dropping azureml-mlflow resolved both — the package was a legacy holdover since azure-ai-ml MLClient already provides the MLflow tracking URI directly.

Closes #540

Type of Change

  • 🐛 Bug fix (non-breaking change fixing an issue)
  • ✨ New feature (non-breaking change adding functionality)
  • 💥 Breaking change (fix or feature causing existing functionality to change)
  • 📚 Documentation update
  • 🏗️ Infrastructure change (Terraform/IaC)
  • ♻️ Refactoring (no functional changes)

Component(s) Affected

  • infrastructure/terraform/prerequisites/ - Azure subscription setup
  • infrastructure/terraform/ - Terraform infrastructure
  • infrastructure/setup/ - OSMO control plane / Helm
  • workflows/ - Training and evaluation workflows
  • training/ - Training pipelines and scripts
  • docs/ - Documentation

Changes

Python 3.12 Version Standardization

Raised requires-python to >=3.12 in all six package manifests (root, RL, IL/LeRobot, dataviewer workspace, dataviewer backend, evaluation). Bumped .python-version from 3.11.13 to 3.12.13. Updated the dataviewer backend Dockerfile base image from an erroneous python:3.14-slim to python:3.12-slim, and changed start.sh to create venvs with --python 3.12. Updated copilot-instructions.md references and ruff target-version documentation to py312.

Runtime Compilation Replaced with Pre-compiled Requirements

Replaced dynamic uv pip compile invocations with installs from committed requirements.txt files in three scripts:

  • training/il/scripts/submit-azureml-lerobot-training.sh — now installs from training/il/lerobot/requirements.txt with a missing-file guard
  • evaluation/sil/infer.sh — same pattern; added PyTorch cu124 fallback index
  • evaluation/sil/validate.sh — same pattern; added PyTorch cu124 fallback index

Created training/il/lerobot/requirements.txt (new file) and regenerated training/rl/requirements.txt under Python 3.12 (CUDA packages shifted from cu12 to cu13 variants).

Dependency Cleanup and Version Alignment

Dropped azureml-mlflow from both RL and IL pyprojects. The package caused metadata conflicts (incompatible caps on mlflow-skinny, azure-storage-blob, and marshmallow) and was redundant — azure-ai-ml MLClient resolves the MLflow tracking URI directly. Removed the corresponding azureml.mlflow entry from _REQUIRED_MODULES in launch.py and launch_rsl_rl.py.

Bumped LeRobot from 0.3.3 to 0.4.4 and aligned transitive pins (huggingface-hub, wandb, torchcodec, numpy, packaging) to LeRobot's upstream caps. Bumped IL azure-ai-ml from 1.31.0 to 1.32.0 for parity with RL. IL marshmallow pinned to 3.26.2 (latest 3.x; forced by azure-ai-ml <4.0.0 cap — no known CVEs).

Lock File Regeneration

Regenerated data-management/viewer/backend/uv.lock, data-management/viewer/uv.lock, and root uv.lock under Python 3.12. Systematically removed Python 3.11 (cp311) and PyPy 3.11 (pp311) wheel entries.

Ancillary Fixes

  • Replaced deprecated datetime.utcnow() with datetime.now(UTC) in data-management/viewer/backend/tests/storage/conftest.py
  • Removed coverage[toml] optional dependency from root pyproject.toml
  • Updated docs/contributing/prerequisites.md Python version to 3.12+
  • Fixed OSMO installer URL in scripts/security/Test-BinaryFreshness.ps1 to use releases/download path

Related Issues

Testing Performed

  • Terraform plan reviewed (no unexpected changes)
  • Terraform apply tested in dev environment
  • Training scripts tested locally with Isaac Sim
  • OSMO workflow submitted successfully
  • Smoke tests passed (smoke_test_azure.py)

Documentation Impact

  • Documentation updated in this PR

Bug Fix Checklist

N/A — this is a build/dependency change, not a bug fix.

Checklist

Notes

  • Breaking change: Python 3.11 support is fully discontinued. All development environments, containers, and CI pipelines require Python 3.12+.
  • Only IL marshmallow (3.26.2 vs 4.2.3 in RL) and huggingface-hub/wandb pins move backward relative to the RL package — all forced by azure-ai-ml and LeRobot upstream caps. marshmallow 3.26.2 is the latest 3.x release with no known open CVEs.
  • The OSMO installer URL fix in Test-BinaryFreshness.ps1 is unrelated to the Python migration but was included in the same commit.

Follow-up Tasks

…iners, and runtime scripts

- Bump .python-version to 3.12.13 and devcontainer image to python:3.12-bookworm
- Raise requires-python to >=3.12 in rl, il/lerobot, viewer, backend pyprojects
- Regenerate viewer, backend, and evaluation uv.lock under Python 3.12
- Pin 5 CI workflows to python-version 3.12; switch backend Dockerfile to python:3.12-slim; start.sh to uv venv --python 3.12
- Replace runtime  with pre-compiled requirements installs in IL/OSMO/AzureML and SIL eval scripts; fix infer.sh broken manifest reference

🤖 - Generated by Copilot
…ning requirements on Python 3.12

- Drop legacy azureml-mlflow from rl/il pyprojects (URI resolved via azure-ai-ml MLClient)
- Remove azureml.mlflow entry from _REQUIRED_MODULES in launch.py and launch_rsl_rl.py
- Bump lerobot 0.3.3 -> 0.4.4; align huggingface-hub, wandb, torchcodec, numpy, packaging to lerobot caps
- Bump IL azure-ai-ml 1.31.0 -> 1.32.0 for parity with RL
- Regenerate training/rl/requirements.txt and create training/il/lerobot/requirements.txt under Python 3.12
- Update .github/copilot-instructions.md and docs/contributing/prerequisites.md to Python >=3.12
- Replace deprecated datetime.utcnow() with datetime.now(UTC) in dataviewer backend test fixture

🤖 - Generated by Copilot
@katriendg katriendg requested a review from a team as a code owner April 22, 2026 12:23
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 22, 2026

Dependency Review

The following issues were found:

  • ✅ 0 vulnerable package(s)
  • ✅ 0 package(s) with incompatible licenses
  • ✅ 0 package(s) with invalid SPDX license definitions
  • ⚠️ 77 package(s) with unknown licenses.
  • ⚠️ 6 packages with OpenSSF Scorecard issues.

View full job summary

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Apr 22, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.41%. Comparing base (92c5b2e) to head (98be2c4).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #541      +/-   ##
==========================================
+ Coverage   63.68%   66.41%   +2.73%     
==========================================
  Files         248      261      +13     
  Lines       15301    16566    +1265     
  Branches     2106     2272     +166     
==========================================
+ Hits         9744    11003    +1259     
- Misses       5270     5274       +4     
- Partials      287      289       +2     
Flag Coverage Δ *Carryforward flag
pester 81.11% <100.00%> (-2.02%) ⬇️ Carriedforward from d18b9ed
pytest-dataviewer 65.12% <ø> (ø)
pytest-dm-tools ?
pytest-evaluation 99.83% <ø> (?)
pytest-fuzz 4.97% <ø> (ø)
pytest-inference ?
pytest-training 81.18% <ø> (ø)
vitest 51.08% <ø> (ø) Carriedforward from d18b9ed

*This pull request uses carry forward flags. Click here to find out more.

Files with missing lines Coverage Δ
scripts/security/Test-BinaryFreshness.ps1 65.77% <100.00%> (ø)

... and 17 files with indirect coverage changes

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@katriendg katriendg requested a review from akzaidi April 22, 2026 13:19
Comment thread data-management/viewer/backend/Dockerfile Outdated
Bill Berry added 2 commits April 22, 2026 15:06
- Restore SHA256 digest pinning dropped during 3.14->3.12 standardization
- Satisfies OSSF Scorecard Pinned-Dependencies and PR #541 review feedback

🔒 - Generated by Copilot
@WilliamBerryiii
Copy link
Copy Markdown
Member

@katriendg @rezatnoMsirhC heads up — pushed two updates to address review feedback and refresh against main:

  1. Merged latest main into the branch (commit f5d3446) to clear the stale merge state.
  2. Restored the python:3.12-slim SHA256 digest pin (commit 98be2c4) that was inadvertently dropped during the 3.14→3.12 standardization, addressing @rezatnoMsirhC's review comment on data-management/viewer/backend/Dockerfile.

For the digest, I confirmed 3.14 originated from a routine Dependabot bump (PR #481, 3.11→3.14) with no version-specific justification, so 3.12 is preserved per @katriendg's intent. New digest sha256:520153e2deb359602c9cffd84e491e3431d76e7bf95a3255c9ce9433b76ab99a was fetched via docker buildx imagetools inspect python:3.12-slim and resolves to 3.12.13-slim-trixie.

Ready for re-review. 🔒

@katriendg katriendg merged commit 7ad014a into main Apr 23, 2026
46 checks passed
@katriendg katriendg deleted the build/540-python-312 branch April 23, 2026 11:51
bindsi added a commit that referenced this pull request Apr 27, 2026
The *AW Dependabot PR Review* agentic workflow has been failing every
Dependabot PR with a **Lock File Out of Sync** error since the Python
3.11 → 3.12 migration in #541. The compiled
*aw-dependabot-pr-review.lock.yml* still hashed to the pre-3.12
frontmatter, so gh-aw refused to dispatch the agent against a stale
configuration. This PR recompiles the lock file so the workflow's hash
matches its source markdown again.

## Description

Ran `gh aw compile aw-dependabot-pr-review` against the unchanged
*.github/workflows/aw-dependabot-pr-review.md* source. The regenerated
*aw-dependabot-pr-review.lock.yml* updates the `frontmatter_hash` from
`b241aa43...` to `68ef551c...`, flips the embedded `python-version` from
`'3.11'` to `'3.12'` to match the imported
*.github/agents/dependabot-pr-reviewer.agent.md*, and refreshes the
per-compile heredoc and config sentinel tokens. Net diff is 12
insertions / 12 deletions in a single generated file. No source
markdown, agent file, or workflow logic changed.

Closes #570.

## Type of Change

- [x] 🐛 Bug fix (non-breaking change fixing an issue)
- [ ] ✨ New feature (non-breaking change adding functionality)
- [ ] 💥 Breaking change (fix or feature causing existing functionality
to change)
- [ ] 📚 Documentation update
- [ ] 🏗️ Infrastructure change (Terraform/IaC)
- [ ] ♻️ Refactoring (no functional changes)

## Component(s) Affected

- [ ] `infrastructure/terraform/prerequisites/` - Azure subscription
setup
- [ ] `infrastructure/terraform/` - Terraform infrastructure
- [ ] `infrastructure/setup/` - OSMO control plane / Helm
- [x] `workflows/` - Training and evaluation workflows
- [ ] `training/` - Training pipelines and scripts
- [ ] `docs/` - Documentation

## Testing Performed

- [ ] Terraform `plan` reviewed (no unexpected changes)
- [ ] Terraform `apply` tested in dev environment
- [ ] Training scripts tested locally with Isaac Sim
- [ ] OSMO workflow submitted successfully
- [ ] Smoke tests passed (`smoke_test_azure.py`)

Validation specific to this PR:

- `gh aw compile aw-dependabot-pr-review` — clean compile, 0 errors / 0
warnings
- Re-running `gh aw compile` produces no further diff (idempotent)
- End-to-end verification deferred to the next Dependabot PR; the
**Check workflow lock file** step on that run is the authoritative
signal that #570 is resolved

## Documentation Impact

- [x] No documentation changes needed
- [ ] Documentation updated in this PR
- [ ] Documentation issue filed

## Bug Fix Checklist

- [x] Linked to issue being fixed
- [ ] Regression test included, OR
- [x] Justification for no regression test:

> *aw-dependabot-pr-review.lock.yml* is fully generated by `gh aw
compile`. The compiler itself owns hash correctness; a hand-written
regression test would either reimplement the gh-aw hash algorithm or pin
the current hash literal, both of which would break on every legitimate
compiler upgrade. The right preventive control is a CI step that runs
`gh aw compile` and fails on a dirty working tree, which is tracked
separately from this hotfix.

## Checklist

- [x] My code follows the [project conventions](copilot-instructions.md)
- [x] Commit messages follow [conventional commit
format](instructions/commit-message.instructions.md)
- [x] I have performed a self-review
- [x] Documentation impact assessed above
- [x] No new linting warnings introduced

## Related Issues

Closes #570

## Follow-up Tasks

- Add a CI guard that runs `gh aw compile` and fails when
*.github/workflows/aw-*.lock.yml* files drift from their *.md* sources,
so the next Python version bump (or any agent-file edit) cannot silently
re-break Dependabot PR review.
WilliamBerryiii pushed a commit that referenced this pull request May 8, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.8.0](v0.7.4...v0.8.0)
(2026-05-08)


### ⚠ BREAKING CHANGES

* **dataviewer:** bump frontend stack to React 19, Vite 8, Tailwind v4,
MSAL 5, ESLint 10
([#524](#524))

### ✨ Features

* **agents:** add automated validation for high-risk Dependabot bumps
([#574](#574))
([8c3686a](8c3686a)),
closes
[#573](#573)
* **data:** add camera selector to annotation workspace and fix AV1
frame extraction
([#591](#591))
([c809d2f](c809d2f))
* **data:** seed dataviewer frontend test foundation and per-section
codecov flags
([#594](#594))
([c06c4e3](c06c4e3))
* **dataviewer:** add OWASP security middleware stack
([#439](#439))
([239edb9](239edb9))
* **infrastructure:** add conversion pipeline Terraform module
([#542](#542))
([244531e](244531e))
* **infrastructure:** upgrade OSMO to chart 1.2.1 / image 6.2 with
secure auth and skrl 2.0.0 compatibility
([#492](#492))
([edfd7a5](edfd7a5))
* **pipeline:** add ACSA setup for ROS2 bag sync to Blob
([#451](#451))
([c271a54](c271a54))
* **workflows:** add advisory Dependabot PR reviewer agentic workflow
([#498](#498))
([d4bb140](d4bb140))
* **workflows:** trigger AW Dependabot PR reviewer after PR Validation
([#580](#580))
([7ab3d16](7ab3d16))


### 🐛 Bug Fixes

* **ci:** correct stale version comment for
actions/create-github-app-token
([#506](#506))
([b2e9a54](b2e9a54))
* **ci:** restore data-pipeline and training broken tests by domain
folder restructure
([#547](#547))
([06d8472](06d8472))
* **docs:** update remaining stale 'Coming soon' labels in
docs/README.md
([#507](#507))
([02439d6](02439d6))
* **docs:** update stale coming soon label for Training section
([#472](#472))
([46db49b](46db49b))
* **evaluation:** scope SIL AzureML validation code path and script
reference
([#387](#387))
([9f138a9](9f138a9))
* **infrastructure:** OSMO workflow execution, PostgreSQL public access,
and quickstart corrections
([#477](#477))
([9ed2da6](9ed2da6))
* **scripts:** exclude CHANGELOG.md from changed-files msdate check
([#644](#644))
([8133bdc](8133bdc))
* **workflows:** allow dependabot[bot] to activate AW Dependabot PR
Review
([#586](#586))
([39dc022](39dc022))
* **workflows:** correct branches filter on AW Dependabot PR Review
workflow_run trigger
([#584](#584))
([fe06b52](fe06b52))
* **workflows:** normalize validate.yaml placeholder env/compute values
([#510](#510))
([340ff44](340ff44))
* **workflows:** recompile aw-dependabot-pr-review lock file
([#576](#576))
([d77c167](d77c167))
* **workflows:** switch AW Dependabot PR Review to pull_request_target
([#589](#589))
([3f1edd1](3f1edd1))


### 📚 Documentation

* **docs:** Fix deployment guide links
([#614](#614))
([0070b04](0070b04))
* document dependency-pinning-artifacts directory purpose
([#508](#508))
([50e0010](50e0010))


### 📦 Build System

* **training:** standardize on Python 3.12 across manifests, containers,
and runtime scripts
([#541](#541))
([7ad014a](7ad014a))


### 🔧 Operations

* **build:** add Copilot cloud agent setup-steps workflow
([#593](#593))
([c912668](c912668))


### 🔧 Miscellaneous

* **build:** exclude auto-generated CHANGELOG.md from cspell and seed
dictionary
([#582](#582))
([de1dd57](de1dd57))
* **build:** redesign codecov flags and split pytest CI per component
([#520](#520))
([357e745](357e745))
* **dataviewer:** bump frontend stack to React 19, Vite 8, Tailwind v4,
MSAL 5, ESLint 10
([#524](#524))
([50f8ad4](50f8ad4))
* **dataviewer:** repoint stale src/dataviewer references to
data-management/viewer
([#504](#504))
([88fa1b4](88fa1b4)),
closes
[#503](#503)
* **deps-dev:** bump basic-ftp from 5.3.0 to 5.3.1
([#618](#618))
([ca10f2a](ca10f2a))
* **deps-dev:** bump globals from 15.15.0 to 17.5.0 in
/data-management/viewer/frontend
([#527](#527))
([0e0b2ae](0e0b2ae))
* **deps-dev:** bump ip-address from 10.1.0 to 10.2.0
([#616](#616))
([816c9cf](816c9cf))
* **deps-dev:** bump lint-staged from 16.4.0 to 17.0.2 in the
root-npm-dependencies group across 1 directory
([#626](#626))
([0e2f293](0e2f293))
* **deps-dev:** bump pydantic from 2.13.3 to 2.13.4 in the
python-dependencies group across 1 directory
([#629](#629))
([c24f1c1](c24f1c1))
* **deps-dev:** bump the python-dependencies group across 1 directory
with 2 updates
([#514](#514))
([8410f4b](8410f4b))
* **deps:** bump azure-core from 1.39.0 to 1.40.0 in /evaluation in the
inference-dependencies group across 1 directory
([#597](#597))
([6141db4](6141db4))
* **deps:** bump cryptography from 46.0.6 to 46.0.7 in
/data-management/viewer
([#424](#424))
([5fb6d58](5fb6d58))
* **deps:** bump cryptography from 46.0.6 to 46.0.7 in
/data-management/viewer/backend
([#423](#423))
([b516ad5](b516ad5))
* **deps:** bump lucide-react from 0.469.0 to 1.8.0 in
/data-management/viewer/frontend
([#528](#528))
([1bdfc1e](1bdfc1e))
* **deps:** bump nginx from `8aa63af` to `5616878` in
/data-management/viewer/frontend
([#511](#511))
([9e7e20e](9e7e20e))
* **deps:** bump nginx from 1.27-alpine to 1.29-alpine in
/data-management/viewer/frontend
([#484](#484))
([0e5c3dd](0e5c3dd))
* **deps:** bump node from `435f353` to `e49fd70` in
/data-management/viewer/frontend
([#560](#560))
([2884649](2884649))
* **deps:** bump react-is from 18.3.1 to 19.2.5 in
/data-management/viewer/frontend
([#530](#530))
([d51318c](d51318c))
* **deps:** bump tensordict from 0.11.0 to 0.12.1 in /evaluation in the
inference-dependencies group across 1 directory
([#456](#456))
([b24e733](b24e733))
* **deps:** bump the dataviewer-backend-dependencies group across 1
directory with 2 updates
([#531](#531))
([171a1da](171a1da))
* **deps:** bump the dataviewer-backend-dependencies group across 1
directory with 5 updates
([#516](#516))
([4f9a577](4f9a577))
* **deps:** bump the dataviewer-backend-dependencies group across 1
directory with 5 updates
([#602](#602))
([6c27ab5](6c27ab5))
* **deps:** bump the dataviewer-dependencies group across 1 directory
with 2 updates
([#529](#529))
([8646971](8646971))
* **deps:** bump the dataviewer-dependencies group across 1 directory
with 3 updates
([#601](#601))
([d28fb50](d28fb50))
* **deps:** bump the dataviewer-dependencies group across 1 directory
with 3 updates
([#632](#632))
([4ca5f3e](4ca5f3e))
* **deps:** bump the dataviewer-dependencies group across 1 directory
with 5 updates
([#515](#515))
([109ee81](109ee81))
* **deps:** bump the dataviewer-frontend-patch-minor group across 1
directory with 6 updates
([#630](#630))
([04d5dfd](04d5dfd))
* **deps:** bump the dataviewer-frontend-patch-minor group across 1
directory with 9 updates
([#563](#563))
([c08f450](c08f450))
* **deps:** bump the docusaurus-dependencies group across 1 directory
with 4 updates
([#627](#627))
([f5825fc](f5825fc))
* **deps:** bump the docusaurus-dependencies group across 1 directory
with 6 updates
([#599](#599))
([b859344](b859344))
* **deps:** bump the github-actions group across 1 directory with 4
updates
([#459](#459))
([2609c52](2609c52))
* **deps:** bump the github-actions group across 1 directory with 4
updates
([#517](#517))
([f54bf5d](f54bf5d))
* **deps:** bump the inference-dependencies group across 1 directory
with 11 updates
([#562](#562))
([087f53a](087f53a))
* **deps:** bump the inference-dependencies group across 1 directory
with 2 updates
([#628](#628))
([4a3be47](4a3be47))
* **deps:** bump the pip group across 2 directories with 1 update
([#494](#494))
([a14b6b0](a14b6b0))
* **docs:** update stale Python 3.11 references to 3.12
([#575](#575))
([6f85c95](6f85c95))
* **scripts:** remove redundant SC1091 disables in OSMO deploy scripts
([#509](#509))
([ae1cb82](ae1cb82))


### 🔒 Security

* **build:** pin dependencies and hash-verify downloads
([#465](#465))
([0289f49](0289f49))
* **build:** remediate dependency security advisories
([#479](#479))
([7196d6d](7196d6d))
* **deps-dev:** bump basic-ftp from 5.2.1 to 5.2.2
([#454](#454))
([cb158f1](cb158f1))
* **deps-dev:** bump basic-ftp from 5.2.2 to 5.3.0
([#495](#495))
([e983b8b](e983b8b))
* **deps-dev:** bump hypothesis from 6.152.3 to 6.152.4 in the
python-dependencies group
([#598](#598))
([83384d2](83384d2))
* **deps-dev:** bump markdownlint-cli2 from 0.22.0 to 0.22.1 in the
root-npm-dependencies group
([#559](#559))
([32bde35](32bde35))
* **deps-dev:** bump picomatch from 2.3.1 to 2.3.2 in /docs/docusaurus
([#455](#455))
([66f86ca](66f86ca))
* **deps-dev:** bump postcss from 8.5.10 to 8.5.12 in
/data-management/viewer/frontend
([#569](#569))
([a652dba](a652dba))
* **deps-dev:** bump the python-dependencies group with 2 updates
([#457](#457))
([749d231](749d231))
* **deps-dev:** bump the python-dependencies group with 2 updates
([#485](#485))
([71b44fd](71b44fd))
* **deps-dev:** bump the python-dependencies group with 3 updates
([#564](#564))
([9fc52fd](9fc52fd))
* **deps-dev:** bump typescript from 6.0.2 to 6.0.3 in /docs/docusaurus
in the docusaurus-dependencies group
([#513](#513))
([5694dbc](5694dbc))
* **deps:** bump azureml/openmpi4.1.0-ubuntu22.04 from 20260303.v5 to
20260409.v4 in /evaluation/sil/docker
([#480](#480))
([25d4df8](25d4df8))
* **deps:** bump cryptography from 46.0.6 to 46.0.7 in /evaluation in
the uv group across 1 directory
([#538](#538))
([92c5b2e](92c5b2e))
* **deps:** bump diffusers from 0.35.2 to 0.38.0 in /training/il/lerobot
([#638](#638))
([6261d19](6261d19))
* **deps:** bump follow-redirects from 1.15.11 to 1.16.0 in
/docs/docusaurus
([#469](#469))
([0458908](0458908))
* **deps:** bump gitpython and mako for lerobot IL training
([#623](#623))
([9f8022b](9f8022b))
* **deps:** bump node from 24.14.1-slim to 25.9.0-slim in
/data-management/viewer/frontend
([#482](#482))
([1532d09](1532d09))
* **deps:** bump packaging from 26.0 to 26.1 in /evaluation in the
inference-dependencies group
([#483](#483))
([f4afb6c](f4afb6c))
* **deps:** bump pillow from 12.1.1 to 12.2.0
([#467](#467))
([39fb663](39fb663))
* **deps:** bump python from 3.11-slim to 3.14-slim in
/data-management/viewer/backend
([#481](#481))
([7af9dfc](7af9dfc))
* **deps:** bump the dataviewer-backend-dependencies group across 1
directory with 15 updates
([#428](#428))
([e4446a2](e4446a2))
* **deps:** bump the dataviewer-backend-dependencies group in
/data-management/viewer/backend with 4 updates
([#487](#487))
([0f57c5b](0f57c5b))
* **deps:** bump the dataviewer-backend-dependencies group in
/data-management/viewer/backend with 8 updates
([#566](#566))
([d6e7869](d6e7869))
* **deps:** bump the dataviewer-dependencies group across 1 directory
with 5 updates
([#464](#464))
([24c208d](24c208d))
* **deps:** bump the dataviewer-dependencies group in
/data-management/viewer with 2 updates
([#486](#486))
([90149f3](90149f3))
* **deps:** bump the dataviewer-dependencies group in
/data-management/viewer with 6 updates
([#565](#565))
([f0bb36b](f0bb36b))
* **deps:** bump the dataviewer-frontend-patch-minor group across 1
directory with 10 updates
([#613](#613))
([e481f83](e481f83))
* **deps:** bump the github-actions group across 1 directory with 4
updates
([#534](#534))
([5478ab6](5478ab6))
* **deps:** bump the github-actions group with 2 updates
([#488](#488))
([4e6ce98](4e6ce98))
* **deps:** bump the github-actions group with 3 updates
([#567](#567))
([48c38dc](48c38dc))
* **deps:** bump the github-actions group with 3 updates
([#634](#634))
([00cfb49](00cfb49))
* **deps:** bump the github-actions group with 6 updates
([#603](#603))
([73eb79a](73eb79a))
* **deps:** bump the training-dependencies group across 1 directory with
23 updates
([#463](#463))
([d5a8656](d5a8656))
* **deps:** bump yaml from 2.8.2 to 2.8.3 in
/data-management/viewer/frontend
([#453](#453))
([10449df](10449df))
* pytest harness, dependabot advisories, and OSSF Scorecard remediations
([#501](#501))
([e8756e8](e8756e8))
* **scripts:** pin and hash-verify all shell script downloads
([#468](#468))
([0c2bb9c](0c2bb9c))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: physical-ai-toolchain-release[bot] <267194360+physical-ai-toolchain-release[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
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.

build: standardize on Python 3.12 as repository minimum

4 participants