Repository navigation
FIX: Preserve Python-specific release dependencies - #832
gargsaumya wants to merge 6 commits into
Conversation
Compile supported multi-version locks in universal mode so environment markers remain intact across scheduled refreshes. Keep ODBC generation unchanged and add focused regression coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
PR Performance Report✅ No regression detectedNo consistent slowdowns detected across all 2 environments. 0 IMPROVEMENTS 0 SLOWDOWNS 2/2 ENVIRONMENTS Coverage: 2 of 2 environments completed. Advisory result; does not block merging. Performance diagnosticsPhase times are inclusive diagnostics and must not be added together. They identify where measured time changed, not why it changed. No affected phases or call-count changes were recorded. All database tasks and timingsUnix / SQL Server 2022
Unix / SQL Server 2025
Build and measurement detailsPR head:
A consistent change requires more than 20% median paired movement, at least 1 ms between the median runtimes, and at least 80% of pairs exceeding the relative threshold in the same direction. A slowdown without enough pair agreement is reported as inconsistent. The displayed change is the median of paired before-and-after ratios. It is not recalculated from the two displayed median runtimes. Both revisions use profiling-enabled builds on the same agent and database, with alternating order and discarded warmups. Results are diagnostic and do not represent production-wheel latency. Raw samples and logs are attached to the ADO run as |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The new regression tests contain a cross-entry false positive and hard-code a dependency version that future lock refreshes may legitimately upgrade.
Review effort: Balanced
Findings: 2
Open (2)
What changed in this PR
Preserves conditional dependencies across supported Python versions during release-lock generation.
Changes:
- Enables universal marker preservation for Linux, macOS, and Windows locks.
- Regenerates affected dependency locks with environment markers.
- Adds regression tests for workflow configuration and asyncio backport selection.
| File | Description |
|---|---|
.github/workflows/refresh-build-dependencies.yml |
Enables universal compilation while excluding ODBC. |
eng/requirements-build-linux.txt |
Adds preserved platform and Python markers. |
eng/requirements-test-linux.txt |
Preserves conditional test dependencies. |
eng/requirements-build-macos.txt |
Preserves macOS lock environment markers. |
eng/requirements-build-windows.txt |
Preserves Windows lock environment markers. |
tests/test_release_build_dependencies.py |
Adds static regression coverage for lock generation. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
📊 Code Coverage Report
Diff CoverageDiff: main...HEAD, staged and unstaged changesNo lines with coverage information in this diff. 📋 Files Needing Attention📉 Files with overall lowest coverage (click to expand)mssql_python.pybind.performance_counter.hpp: 0.7%
mssql_python.pybind.logger_bridge.cpp: 57.9%
mssql_python.pybind.ddbc_bindings.h: 62.6%
mssql_python.pybind.logger_bridge.hpp: 70.8%
mssql_python.pybind.connection.connection_pool.cpp: 82.3%
mssql_python.pybind.connection.connection.cpp: 83.1%
mssql_python.logging.py: 86.2%
mssql_python.pooling.py: 90.1%
mssql_python.pybind.fetch_temporal.hpp: 92.1%
mssql_python.cursor.py: 92.5%🔗 Quick Links
|
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copy the narrow set of repository-side runner contract files into isolated Linux wheel test directories, and surface subprocess diagnostics if the status artifact is absent. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Keep installed-wheel validation focused on package behavior while release lock and workflow contracts continue to run from a complete source checkout. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Warning
Copilot couldn't run its full agentic review because it didn't start before the timeout. Make sure your repository has a runner available, or add a copilot-code-review.yml file specifying one with the runs-on attribute. See the docs for more details.
Copilot review overview
Review effort: Lite
Findings: 1
Open (6)
Include lock files in manylinux fixturenext(...)will raiseStopIterationwith a less actionable error if the expected compile line… · New These DOTALL regexes can become brittle and accidentally match across unrelated YAML sections as… · New Avoid hard-coding the version in the marker assertion Bound assertion to the macOS matrix item This assertion includes a trailing space, so it will miss variants likecp -r /workspace/eng(no… · New
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
The new regression tests can miss incorrect matrix configuration and unnecessarily block future dependency upgrades.
Review effort: Balanced
Findings: 4
Open (5)
These DOTALL regexes can become brittle and accidentally match across unrelated YAML sections as…next(...)will raiseStopIterationwith a less actionable error if the expected compile line… Avoid hard-coding the version in the marker assertion Bound assertion to the macOS matrix item This assertion includes a trailing space, so it will miss variants likecp -r /workspace/eng(no…
Resolved since last review (1)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Copilot review overview
🔵 Needs a closer look
Cross-platform release-lock and production pipeline changes require final matrix validation and human approval.
Review effort: Balanced
Findings: None
Resolved since last review (6)
Include lock files in manylinux fixture These DOTALL regexes can become brittle and accidentally match across unrelated YAML sections as…next(...)will raiseStopIterationwith a less actionable error if the expected compile line… Avoid hard-coding the version in the marker assertion Bound assertion to the macOS matrix item This assertion includes a trailing space, so it will miss variants likecp -r /workspace/eng(no…



Work Item / Issue Reference
Summary
Preserves Python-version environment markers when release dependency locks are refreshed, preventing the Python 3.10-only asyncio backport from being selected on Python 3.11 and newer.
Changes:
Validation