Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Pull request overview
This PR centralizes version pinning for Foundry Local Core, onnxruntime, and onnxruntime-genai across Rust/JS/Python/C# SDKs by introducing a shared sdk/deps_versions.json and updating build/install/pipeline logic to read from it.
Changes:
- Added
sdk/deps_versions.jsonas the single source of truth for NuGet + Python dependency versions. - Updated Rust build script, JS install scripts, and Python build backend to load versions from
deps_versions.json. - Updated CI pipelines to publish/consume a
deps-versionsartifact and overwrite the repo copy during downstream SDK build/test stages.
Reviewed changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| sdk/rust/Cargo.toml | Bumps crate version and attempts to include shared deps_versions.json in the packaged crate. |
| sdk/rust/build.rs | Loads dependency versions from deps_versions.json instead of hardcoding. |
| sdk/python/requirements.txt | Removed (previously contained pinned native deps). |
| sdk/python/requirements-winml.txt | Removed (previously contained pinned WinML native deps). |
| sdk/python/requirements-base.txt | Added as the pure-Python dependency base for generated requirements. |
| sdk/python/build_backend.py | Generates requirements.txt from deps_versions.json for standard/WinML builds. |
| sdk/js/script/install-standard.cjs | Reads versions from deps_versions.json instead of hardcoding. |
| sdk/js/script/install-winml.cjs | Reads versions from deps_versions.json instead of hardcoding. |
| sdk/deps_versions.json | New centralized dependency versions file. |
| sdk/cs/src/Microsoft.AI.Foundry.Local.csproj | Reads FLC package versions from deps_versions.json (regex-based). |
| .pipelines/templates/update-deps-versions-steps.yml | New template to overwrite repo deps_versions.json from pipeline artifact. |
| .pipelines/templates/test-*-steps.yml | Wires in depsVersionsDir and calls the update template before building/testing. |
| .pipelines/templates/build-*-steps.yml | Wires in depsVersionsDir and calls the update template before building/packing. |
| .pipelines/templates/package-core-steps.yml | Publishes deps_versions.json as a deps-versions artifact. |
| .pipelines/foundry-local-packaging.yml | Adds deps-versions artifact flow to all downstream build/test stages. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 22 out of 22 changed files in this pull request and generated 8 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 24 out of 24 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Unified Packaging Pipeline
Overview
Enables the packaging pipeline to build Core and all 4 SDKs in a single run — SDKs reference the just-built Core directly from pipeline artifacts instead of requiring Core to be published to a feed first. Also reduces the pipeline from 21 stages to 10 saving ~20mins per run.
Changes
Centralized Version Computation
A
compute_versionstage produces aversion-infoartifact withsdkVersion.txt(semver),pyVersion.txt(PEP 440), andflcVersion.txt(NuGet). All downstream stages read from this single source — no timestamp drift between standard and WinML builds.FLC/ORT/ORT-GenAI Dependency Version Infrastructure
Each SDK reads its native dependency versions (FLC Core, ORT, GenAI) from a JSON file at build time. The pipeline generates this file during FLC packaging with the exact versions that were just built, so SDK builds resolve the correct (unpublished) FLC without hitting a feed. Standard and WinML each get their own file (
deps_versions.json/deps_versions_winml.json) with identical key structure, allowing both paths to build fully in parallel.Combined Build/Test/Packaging Stages
Merged 10 separate test/packaging stages into the build templates. Pipeline: 21 → 10 stages.
Bug Fixes