Skip to content

Merge | Official Builds From Common Project#4068

Merged
benrr101 merged 25 commits intomainfrom
dev/russellben/common/official-mds-build2
Mar 31, 2026
Merged

Merge | Official Builds From Common Project#4068
benrr101 merged 25 commits intomainfrom
dev/russellben/common/official-mds-build2

Conversation

@benrr101
Copy link
Copy Markdown
Contributor

@benrr101 benrr101 commented Mar 19, 2026

Description

This PR is the last functional PR for common project completion. It updates the official/non-official builds to use the targets from build2.proj, and effectively build the common project for official releases. I had plans for a larger overhaul of the "new" official pipeline, but I lost control of the direction, so I took a step back, pulled out the minimal changes to make this happen and am submitting this now.

Since the *csproj* steps/jobs are based on build.proj, I've created separate steps for MDS build.

🤖

Dropped "compound-" from steps files and fixed links. I thought I was onto something when I adopted that naming convention a while back, but ... no.

Update: used codex to attempt to wire versioning together, but it didn't really figure it out in a simple way. But it did help trace through the wiring to find what was broken.

Issues

N/A

Testing

Currently running test build can he found:
https://sqlclientdrivers.visualstudio.com/ADO.Net/_build/results?buildId=144204&view=results
https://sqlclientdrivers.visualstudio.com/ADO.Net/_build/results?buildId=144572&view=results
https://sqlclientdrivers.visualstudio.com/ADO.Net/_build/results?buildId=144579&view=results
https://sqlclientdrivers.visualstudio.com/ADO.Net/_build/results?buildId=144586&view=results
https://sqlclientdrivers.visualstudio.com/ADO.Net/_build/results?buildId=144869&view=results
https://sqlclientdrivers.visualstudio.com/ADO.Net/_build/results?buildId=145060&view=results PASSES
https://sqlclientdrivers.visualstudio.com/ADO.Net/_build/results?buildId=145414&view=results PASSES

@benrr101 benrr101 added this to the 7.0.1 milestone Mar 19, 2026
@benrr101 benrr101 requested a review from a team as a code owner March 19, 2026 21:51
@benrr101 benrr101 added the Common Project 🚮 Things that relate to the common project project label Mar 19, 2026
Copilot AI review requested due to automatic review settings March 19, 2026 21:51
@github-project-automation github-project-automation Bot moved this to To triage in SqlClient Board Mar 19, 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

Updates OneBranch official/non-official pipeline templates to build Microsoft.Data.SqlClient (MDS) from build2.proj (common project) and refactors pipeline steps by removing the prior “compound-*” templates in favor of more granular build/sign/pack/analyze steps.

Changes:

  • Replace the old SqlClient official build job with a new build-signed-mds-package-job.yml that drives MDS build/pack via build2.proj.
  • Add new OneBranch step templates for Roslyn analyzers, MDS build/pack, ESRP signing, APIScan file extraction, and symbols publishing parameterization.
  • Remove deprecated “compound-*” step templates and the prior SqlClient job template.

Reviewed changes

Copilot reviewed 17 out of 20 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
src/Microsoft.Data.SqlClient.sln Updates solution items to reference new OneBranch job/step templates.
eng/pipelines/onebranch/variables/common-variables.yml Updates comments around template aliases.
eng/pipelines/onebranch/stages/build-stages.yml Switches SqlClient build job to new MDS/build2-based job and wires new parameters.
eng/pipelines/onebranch/jobs/build-signed-mds-package-job.yml New job orchestrating build2-based MDS build/analyze/sign/pack/publish-symbols.
eng/pipelines/onebranch/jobs/build-signed-csproj-package-job.yml Migrates to new Roslyn analyzers/sign/pack/symbol templates.
eng/pipelines/onebranch/steps/build-mds-step.yml New step template to run build2.proj -t:BuildMds.
eng/pipelines/onebranch/steps/pack-mds-step.yml New step template to run build2.proj -t:PackMds.
eng/pipelines/onebranch/steps/extract-apiscan-files-mds-step.yml New step template to copy MDS DLL/PDB outputs to APIScan folders.
eng/pipelines/onebranch/steps/roslyn-analyzers-mds-step.yml New step template to run Roslyn analyzers for build2-based MDS build.
eng/pipelines/onebranch/steps/roslyn-analyzers-csproj-step.yml New generic Roslyn analyzers step for build.proj-driven builds.
eng/pipelines/onebranch/steps/publish-symbols-step.yml Refactors the symbols publish template parameter model and implementation.
eng/pipelines/onebranch/steps/esrp-dll-signing-step.yml Updates ESRP DLL signing inputs/paths and parameter quoting.
eng/pipelines/onebranch/steps/esrp-nuget-signing-step.yml New dedicated ESRP NuGet signing step template.
eng/pipelines/onebranch/steps/pack-csproj-step.yml New dedicated pack step for csproj-based extension packages.
eng/pipelines/onebranch/steps/build-csproj-step.yml Comment update to reference new pack step template name.
eng/pipelines/onebranch/steps/esrp-code-signing-step.yml Removed legacy combined DLL/pkg signing template.
eng/pipelines/onebranch/steps/compound-publish-symbols-step.yml Removed deprecated compound symbols template.
eng/pipelines/onebranch/steps/compound-nuget-pack-step.yml Removed deprecated compound NuGet pack template.
eng/pipelines/onebranch/steps/build-all-configurations-signed-dlls-step.yml Removed legacy MDS build-all-configurations step driven by build.proj.
eng/pipelines/onebranch/jobs/build-signed-sqlclient-package-job.yml Removed prior SqlClient official build job template.

Comment thread eng/pipelines/onebranch/steps/pack-mds-step.yml Outdated
Comment thread eng/pipelines/onebranch/steps/pack-mds-step.yml
Comment thread eng/pipelines/onebranch/stages/build-stages.yml Outdated
Comment thread eng/pipelines/onebranch/stages/build-stages.yml Outdated
Comment thread eng/pipelines/onebranch/jobs/build-signed-mds-package-job.yml Outdated
Comment thread eng/pipelines/onebranch/jobs/build-signed-csproj-package-job.yml
Comment thread eng/pipelines/onebranch/variables/common-variables.yml Outdated
Comment thread eng/pipelines/onebranch/steps/copy-apiscan-files-mds-step.yml
Comment thread eng/pipelines/onebranch/jobs/build-signed-mds-package-job.yml Outdated
Comment thread eng/pipelines/onebranch/steps/roslyn-analyzers-mds-step.yml Outdated
Comment thread eng/pipelines/onebranch/steps/publish-symbols-step.yml
@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 19, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.46%. Comparing base (60d4b92) to head (967206a).
⚠️ Report is 11 commits behind head on main.

❗ There is a different number of reports uploaded between BASE (60d4b92) and HEAD (967206a). Click for more details.

HEAD has 1 upload less than BASE
Flag BASE (60d4b92) HEAD (967206a)
CI-SqlClient 1 0
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4068      +/-   ##
==========================================
- Coverage   73.22%   66.46%   -6.77%     
==========================================
  Files         280      274       -6     
  Lines       43000    65778   +22778     
==========================================
+ Hits        31486    43717   +12231     
- Misses      11514    22061   +10547     
Flag Coverage Δ
CI-SqlClient ?
PR-SqlClient-Project 66.46% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@paulmedynski paulmedynski self-assigned this Mar 20, 2026
@paulmedynski paulmedynski moved this from To triage to In review in SqlClient Board Mar 20, 2026
Comment thread eng/pipelines/onebranch/jobs/build-signed-csproj-package-job.yml Outdated
Comment thread eng/pipelines/onebranch/stages/build-stages.yml Outdated
Comment thread eng/pipelines/onebranch/steps/build-mds-step.yml
Comment thread eng/pipelines/onebranch/steps/copy-apiscan-files-mds-step.yml
Comment thread eng/pipelines/onebranch/steps/copy-apiscan-files-mds-step.yml
@github-project-automation github-project-automation Bot moved this from In review to In progress in SqlClient Board Mar 20, 2026
Copy link
Copy Markdown
Contributor

@mdaigle mdaigle left a comment

Choose a reason for hiding this comment

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

Really just the one comment, otherwise looks good. I would also like to review the pipeline run when we get one that's green.

Comment thread eng/pipelines/onebranch/jobs/build-signed-csproj-package-job.yml Outdated
Copy link
Copy Markdown
Contributor

@mdaigle mdaigle left a comment

Choose a reason for hiding this comment

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

Really just the one comment, otherwise looks good. I would also like to review the pipeline run when we get one that's green.

Copy link
Copy Markdown
Contributor

@mdaigle mdaigle left a comment

Choose a reason for hiding this comment

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

🤖

Code Review Summary

Thanks for moving the MDS build to build2.proj — the cleanup of the "compound-" prefix and the separation of MDS into its own job/step templates is a nice improvement.

I found 3 critical issues and 1 major issue that will likely cause the official pipeline to produce incorrectly signed or broken packages:

Critical

# Issue File
C1 Typo: PackageVersionAbstractionPackageVersionAbstractions (missing trailing 's') — pack step will fail pack-mds-step.yml:27
C2 ESRP NuGet signing scans wrong directory: Signing searches $(PACK_OUTPUT) (output/) but PackMds emits .nupkg to $(BUILD_OUTPUT)/Microsoft.Data.SqlClient/Package-Release/ — packages ship unsigned build-signed-mds-package-job.yml:142
C3 PackMds re-builds over signed DLLs: DependsOnTargets="BuildMds" re-triggers the build in a fresh MSBuild invocation, overwriting ESRP-signed DLLs. -p:PackBuild=false has no effect (not implemented in build2.proj) pack-mds-step.yml:25

Major

# Issue File
M1 $(PACKAGE_NAME) is undefined: Symbols publish with empty product name build-signed-mds-package-job.yml:157

Minor (not commented inline)

  • Missing @self on pack-mds-step.yml template reference (line 139 of the job file)
  • ob_outputDirectory: '$(BUILD_OUTPUT)' publishes the entire artifacts/ tree instead of just nupkg — compare with csproj jobs which use $(PACK_OUTPUT)

Question

Has the test build (pipeline 144204) successfully produced and validated a signed MDS package? The issues above should cause failures in the signing/validation stages.

Comment thread eng/pipelines/onebranch/steps/pack-mds-step.yml
Comment thread eng/pipelines/onebranch/jobs/build-signed-mds-package-job.yml
Comment thread eng/pipelines/onebranch/steps/pack-mds-step.yml
Comment thread eng/pipelines/onebranch/jobs/build-signed-mds-package-job.yml

This comment was marked as outdated.

Copilot AI review requested due to automatic review settings March 23, 2026 18:33

This comment was marked as outdated.

paulmedynski
paulmedynski previously approved these changes Mar 23, 2026
Copilot AI review requested due to automatic review settings March 24, 2026 22:03

This comment was marked as spam.

Copilot AI review requested due to automatic review settings March 27, 2026 23:08
@benrr101 benrr101 force-pushed the dev/russellben/common/official-mds-build2 branch from 48a27d2 to f356f00 Compare March 27, 2026 23:08

This comment was marked as spam.

Comment thread src/Microsoft.Data.SqlClient/MdsVersions.props Outdated
Copy link
Copy Markdown
Member

@cheenamalhotra cheenamalhotra left a comment

Choose a reason for hiding this comment

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

Assembly Version needs a fix - rest everything looks good!
Great work 🎉

Image

Comment thread eng/pipelines/libraries/ci-build-variables.yml Outdated
Comment thread eng/pipelines/onebranch/jobs/build-signed-csproj-package-job.yml
File version = major.minor.patch.build
Package version = major.minor.patch[-suffixbuildnumber]
cheenamalhotra
cheenamalhotra previously approved these changes Mar 30, 2026
Comment thread src/Microsoft.Data.SqlClient/MdsVersions.props
Comment thread eng/pipelines/onebranch/jobs/build-signed-csproj-package-job.yml Outdated
@mdaigle
Copy link
Copy Markdown
Contributor

mdaigle commented Mar 30, 2026

Will also take a quick look at the build when it finishes. Otherwise looks good.

Copilot AI review requested due to automatic review settings March 30, 2026 23:53
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 28 out of 30 changed files in this pull request and generated 1 comment.

Comment thread src/Microsoft.Data.SqlClient/MdsVersions.props Outdated
@paulmedynski paulmedynski moved this from In progress to In review in SqlClient Board Mar 31, 2026
@benrr101 benrr101 merged commit 2c37eb9 into main Mar 31, 2026
300 checks passed
@benrr101 benrr101 deleted the dev/russellben/common/official-mds-build2 branch March 31, 2026 20:39
@github-project-automation github-project-automation Bot moved this from In review to Done in SqlClient Board Mar 31, 2026
paulmedynski added a commit that referenced this pull request Apr 20, 2026
Rename compound-* step files to match internal/main naming from #4068:
  compound-build-csproj-step -> build-csproj-step
  compound-esrp-dll-signing-step -> esrp-dll-signing-step
  compound-esrp-nuget-signing-step -> esrp-nuget-signing-step
  compound-pack-csproj-step -> pack-csproj-step
  code-analyze-step -> roslyn-analyzers-csproj-step

Add new split step files from main:
  build-sqlclient-step, pack-sqlclient-step, roslyn-analyzers-sqlclient-step

Remove orphaned files no longer referenced:
  build-all-configurations-signed-dlls-step, compound-nuget-pack-step,
  compound-publish-symbols-step, esrp-code-signing-step,
  sqlclient-validation-variables

Add package-variables.yml with per-package version definitions for 7.0.1,
with isPreview conditional toggling between GA and preview versions.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Common Project 🚮 Things that relate to the common project project

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants