Skip to content

mega pipeline improvements#592

Open
prathikr wants to merge 27 commits intomainfrom
prathikrao/unify-flc-versioning-2
Open

mega pipeline improvements#592
prathikr wants to merge 27 commits intomainfrom
prathikrao/unify-flc-versioning-2

Conversation

@prathikr
Copy link
Copy Markdown
Contributor

@prathikr prathikr commented Apr 5, 2026

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_version stage produces a version-info artifact with sdkVersion.txt (semver), pyVersion.txt (PEP 440), and flcVersion.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

  • Removes dead code like nightly version support in c#/js

Copilot AI review requested due to automatic review settings April 5, 2026 06:07
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 5, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
foundry-local Ready Ready Preview, Comment Apr 7, 2026 11:42pm

Request Review

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.json as 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-versions artifact 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.

@prathikr prathikr changed the title unifies versioning for foundry-local-core, onnxruntime, and onnxruntime-genai across all SDKs mega pipeline improvements Apr 7, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

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.

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.

2 participants