Skip to content

Migrate BYO hosted voice samples to uv - #1060

Merged
Antriksh Jain (antriksh30) merged 3 commits into
mainfrom
migrate-byo-voice-samples-to-uv
Oct 12, 2026
Merged

Antriksh Jain (antriksh30) merged 3 commits into
mainfrom
migrate-byo-voice-samples-to-uv

Conversation

@antriksh30

Copy link
Copy Markdown
Contributor

Summary

  • migrate the three Voice Live Bridge target agents and five VoiceLive BYO Python runtimes from requirements files to pyproject.toml, uv.lock, and uv.toml
  • preserve the existing Python runtime choices, all 668 exact legacy dependency pins, and the GitHub Copilot CLI pre-download/read-only filesystem setup
  • update sample validation, Docker build, contributor, and local-run workflows to use frozen uv environments

Validation

  • python .github/scripts/check-hosted-agent-python-requirements.py --base <merge-base> --head HEAD --resolve
  • 133 Voice Live Bridge tests, plus compile/import/ruff validation
  • all five VoiceLive Docker images built successfully
  • all eight locks pass uv lock --check and frozen production export

Replace requirements-based dependency workflows for the Voice Live Bridge and VoiceLive BYO runtimes with pyproject.toml and frozen uv locks. Preserve the existing dependency graph, container Python versions, and the GitHub Copilot CLI runtime setup.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec0a8f22-0687-4209-912b-1d5f4c4263f1
@antriksh30
Antriksh Jain (antriksh30) requested a review from a team as a code owner October 12, 2026 05:46
Copilot AI balanced review requested due to automatic review settings October 12, 2026 05:46

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Three migrated manifests omit the directly imported Starlette runtime dependency.

3 open findings
What changed in this PR

Migrates eight hosted voice samples from pip requirements files to reproducible uv-managed environments.

Changes:

  • Adds pyproject.toml, uv.lock, and uv.toml dependency management.
  • Updates Docker, validation, and local workflows to use frozen uv environments.
  • Refreshes contributor and usage documentation.

Paths below use:

  • VL = samples/python/hosted-agents/bring-your-own/voicelive
  • Bridge = samples/python/hosted-agents/bring-your-own/voice-agent-target-agent
File Description
VL/​hotel-booking-invocations-voicelive/​src/​hotel-booking-python-invocations-voicelive/​uv.toml Configures uv resolution.
VL/​hotel-booking-invocations-voicelive/​src/​hotel-booking-python-invocations-voicelive/​uv.lock Pins the dependency graph.
VL/​hotel-booking-invocations-voicelive/​src/​hotel-booking-python-invocations-voicelive/​requirements.txt Removes legacy pip dependencies.
VL/​hotel-booking-invocations-voicelive/​src/​hotel-booking-python-invocations-voicelive/​pyproject.toml Declares project dependencies.
VL/​hotel-booking-invocations-voicelive/​src/​hotel-booking-python-invocations-voicelive/​Dockerfile Builds and runs the uv environment.
VL/​hotel-booking-invocations-voicelive/​README.md Documents local uv usage.
VL/​hello-world-invocations-voicelive/​src/​hello-world-python-invocations-voicelive/​uv.toml Configures uv resolution.
VL/​hello-world-invocations-voicelive/​src/​hello-world-python-invocations-voicelive/​uv.lock Pins the dependency graph.
VL/​hello-world-invocations-voicelive/​src/​hello-world-python-invocations-voicelive/​requirements.txt Removes the resolved pip graph.
VL/​hello-world-invocations-voicelive/​src/​hello-world-python-invocations-voicelive/​requirements.in Removes pip-tools inputs.
VL/​hello-world-invocations-voicelive/​src/​hello-world-python-invocations-voicelive/​pyproject.toml Declares project dependencies.
VL/​hello-world-invocations-voicelive/​src/​hello-world-python-invocations-voicelive/​Dockerfile Builds and runs the uv environment.
VL/​hello-world-invocations-voicelive/​README.md Documents local uv usage.
VL/​handoff-langgraph-responses-voicelive/​src/​handoff-langgraph-responses-voicelive/​uv.toml Configures uv resolution.
VL/​handoff-langgraph-responses-voicelive/​src/​handoff-langgraph-responses-voicelive/​uv.lock Pins the dependency graph.
VL/​handoff-langgraph-responses-voicelive/​src/​handoff-langgraph-responses-voicelive/​requirements.txt Removes the resolved pip graph.
VL/​handoff-langgraph-responses-voicelive/​src/​handoff-langgraph-responses-voicelive/​requirements.in Removes pip-tools inputs.
VL/​handoff-langgraph-responses-voicelive/​src/​handoff-langgraph-responses-voicelive/​pyproject.toml Declares project dependencies.
VL/​handoff-langgraph-responses-voicelive/​src/​handoff-langgraph-responses-voicelive/​Dockerfile Builds and runs the uv environment.
VL/​handoff-langgraph-responses-voicelive/​README.md Documents local uv usage.
VL/​github-copilot-responses-voicelive/​src/​github-copilot-responses-voicelive/​uv.toml Configures uv resolution.
VL/​github-copilot-responses-voicelive/​src/​github-copilot-responses-voicelive/​uv.lock Pins the dependency graph.
VL/​github-copilot-responses-voicelive/​src/​github-copilot-responses-voicelive/​requirements.txt Removes the resolved pip graph.
VL/​github-copilot-responses-voicelive/​src/​github-copilot-responses-voicelive/​requirements.in Removes pip-tools inputs.
VL/​github-copilot-responses-voicelive/​src/​github-copilot-responses-voicelive/​pyproject.toml Declares project dependencies.
VL/​github-copilot-responses-voicelive/​src/​github-copilot-responses-voicelive/​Dockerfile Uses uv while preserving CLI pre-download.
VL/​github-copilot-responses-voicelive/​README.md Updates local debugging setup.
VL/​github-copilot-responses-voicelive/​AGENTS.md Updates contributor dependency guidance.
VL/​foreground-background-agents-responses-voicelive/​src/​foreground-background-agents-voicelive/​uv.toml Configures uv resolution.
VL/​foreground-background-agents-responses-voicelive/​src/​foreground-background-agents-voicelive/​uv.lock Pins the dependency graph.
VL/​foreground-background-agents-responses-voicelive/​src/​foreground-background-agents-voicelive/​requirements.txt Removes the resolved pip graph.
VL/​foreground-background-agents-responses-voicelive/​src/​foreground-background-agents-voicelive/​requirements.in Removes pip-tools inputs.
VL/​foreground-background-agents-responses-voicelive/​src/​foreground-background-agents-voicelive/​pyproject.toml Declares project dependencies.
VL/​foreground-background-agents-responses-voicelive/​src/​foreground-background-agents-voicelive/​Dockerfile Builds and runs the uv environment.
VL/​foreground-background-agents-responses-voicelive/​README.md Documents local uv usage.
Bridge/​basic/​src/​voice-live-bridge-basic-python/​uv.toml Configures uv resolution.
Bridge/​basic/​src/​voice-live-bridge-basic-python/​uv.lock Pins runtime and development dependencies.
Bridge/​basic/​src/​voice-live-bridge-basic-python/​requirements.txt Removes the pip runtime graph.
Bridge/​basic/​src/​voice-live-bridge-basic-python/​requirements-dev.txt Removes pip development dependencies.
Bridge/​basic/​src/​voice-live-bridge-basic-python/​pyproject.toml Consolidates runtime and development dependencies.
Bridge/​basic/​sample.yaml Runs validation and tests through uv.
Bridge/​basic/​README.md Updates setup, run, and test commands.
Bridge/​basic/​AGENTS.md Updates contributor dependency guidance.
Bridge/​langchain/​src/​voice-live-bridge-langchain-python/​uv.toml Configures uv resolution.
Bridge/​langchain/​src/​voice-live-bridge-langchain-python/​uv.lock Pins runtime and development dependencies.
Bridge/​langchain/​src/​voice-live-bridge-langchain-python/​requirements.txt Removes the pip runtime graph.
Bridge/​langchain/​src/​voice-live-bridge-langchain-python/​requirements-dev.txt Removes pip development dependencies.
Bridge/​langchain/​src/​voice-live-bridge-langchain-python/​pyproject.toml Consolidates runtime and development dependencies.
Bridge/​langchain/​sample.yaml Runs validation and tests through uv.
Bridge/​langchain/​README.md Updates setup, run, and test commands.
Bridge/​langchain/​AGENTS.md Updates contributor dependency guidance.
Bridge/​langgraph/​src/​voice-live-bridge-langgraph-python/​uv.toml Configures uv resolution.
Bridge/​langgraph/​src/​voice-live-bridge-langgraph-python/​uv.lock Pins runtime and development dependencies.
Bridge/​langgraph/​src/​voice-live-bridge-langgraph-python/​requirements.txt Removes the pip runtime graph.
Bridge/​langgraph/​src/​voice-live-bridge-langgraph-python/​requirements-dev.txt Removes pip development dependencies.
Bridge/​langgraph/​src/​voice-live-bridge-langgraph-python/​pyproject.toml Consolidates runtime and development dependencies.
Bridge/​langgraph/​sample.yaml Runs validation and tests through uv.
Bridge/​langgraph/​README.md Updates setup, run, and test commands.
Bridge/​langgraph/​AGENTS.md Updates contributor dependency guidance.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Declare Starlette in the three VoiceLive runtimes that import it directly, while retaining the versions already present in their frozen lock graphs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec0a8f22-0687-4209-912b-1d5f4c4263f1
Copilot AI balanced review requested due to automatic review settings October 12, 2026 06:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

The uv manifests, frozen locks, container workflows, documentation, and previously identified direct dependencies are consistent and complete.

0 open findings

3 resolved since last review

🧠 Review effort: Balanced

List uv explicitly for local azd runs and align each hosted voice sample's documented Python requirement with its pyproject.toml metadata.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec0a8f22-0687-4209-912b-1d5f4c4263f1
@antriksh30

Copy link
Copy Markdown
Contributor Author

Addressed the prerequisite documentation review in a146605:

  • all eight sample READMEs now list uv 0.11.7 or later on PATH before azd ai agent run
  • documented Python versions now match pyproject.toml (>=3.13 for the three Bridge samples and GitHub Copilot; >=3.12 for the other VoiceLive samples)
  • the local-run notes now clarify that azd ai agent run uses the installed uv command to sync dependencies

No azd or Voice wrapper configuration changes were needed.

Copilot AI balanced review requested due to automatic review settings October 12, 2026 08:06

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

The uv artifacts, runtime dependencies, Docker workflows, validation commands, and documentation are consistent with repository policy.

0 open findings

🧠 Review effort: Balanced

@antriksh30
Antriksh Jain (antriksh30) merged commit f5ea73d into main Oct 12, 2026
27 checks passed
@antriksh30
Antriksh Jain (antriksh30) deleted the migrate-byo-voice-samples-to-uv branch October 12, 2026 08:30
Antriksh Jain (antriksh30) added a commit that referenced this pull request Oct 12, 2026
Remove direct Starlette declarations from the hosted voice samples migrated in #1060. Starlette remains pinned transitively in each frozen lock graph through AgentServer, which stays responsible for compatibility updates.

Co-authored-by: Antriksh Jain <antrikshjain@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: ec0a8f22-0687-4209-912b-1d5f4c4263f1

This branch was successfully deployed

1 active deployment
L4-validation — a1466055 Deployed Oct 12, 2026 by antriksh30 via trusted #494
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.

4 participants