Skip to content

FIX: Separate ODBC wheel payloads by Linux libc family - #798

Merged
Jahnvi Thakkar (jahnvi480) merged 4 commits into
mainfrom
jahnvi/odbc-wheel-triage
Sep 18, 2026
Merged

Jahnvi Thakkar (jahnvi480) merged 4 commits into
mainfrom
jahnvi/odbc-wheel-triage

Conversation

@jahnvi480

@jahnvi480 Jahnvi Thakkar (jahnvi480) commented Sep 18, 2026

Copy link
Copy Markdown
Contributor

Work Item / Issue Reference

GitHub Issue: #790


Summary

Separate Linux ODBC wheel payloads by libc family: manylinux wheels retain the glibc-based Debian/Ubuntu, RHEL, and available SUSE variants; musllinux wheels retain only Alpine/musl. Preserve architecture filtering, driver resources, and the existing runtime layout.

  • Strengthen release-pipeline checks to reject opposite-libc distro trees.
  • Update Conda inventory expectations and existing audit tests without requiring Alpine in glibc packages; retain compatibility when auditing older payloads.
  • Document the libc-specific packaging. No native binaries, runtime-loader behavior, or package versions are changed, and no new test file is included.

Validation completed in Docker with native-built CPython 3.12 extensions on glibc and musl x86-64. Installed-wheel dependency, connection, and cursor/lifecycle checks passed on both (67 passed, 4 skipped per environment), along with live SQL queries, Unicode, DDL/DML, commit, and rollback. Confirmed ODBC libraries loaded from the installed package, not the checkout or system. Existing Conda audit tests passed, and all four Linux wheels passed archive/ELF inspection. Formatting and release-gate checks passed.

ARM64 validation was limited to archive/ELF inspection. The full nonstress/Rust/bulkcopy suite was not run; Rust package downloads were TLS-blocked.

Select only matching libc distro trees for manylinux and musllinux wheels. Update release assertions, Conda inventory expectations, existing audit coverage, and packaging documentation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings September 18, 2026 06:06
@github-actions github-actions Bot added the pr-size: small Minimal code update label Sep 18, 2026

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 packaging, release validation, Conda audits, tests, and documentation consistently implement the requested libc separation.

Pull request overview

Separates ODBC wheel payloads by Linux libc family while preserving architecture and runtime layout.

Changes:

  • Restricts manylinux wheels to glibc trees and musllinux wheels to Alpine/musl.
  • Updates release checks and Conda audits for the new inventories.
  • Documents libc-specific packaging and legacy audit compatibility.
File summaries
File Description
setup_odbc.py Selects libc-specific Linux payloads.
OneBranchPipelines/stages/build-odbc-all-stage.yml Validates wheel contents and rejects foreign libc trees.
eng/conda_tools/contracts.py Updates required Linux driver inventories.
eng/conda_tools/__main__.py Updates audit documentation.
tests/test_029_bundled_binary_audit.py Covers glibc-only and legacy musl payloads.
PyPI_Description_ODBC.md Documents libc-specific wheels.
Review details
  • Files reviewed: 6/6 changed files
  • Comments generated: 0
  • Review effort level: Lite

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

@github-actions

github-actions Bot commented Sep 18, 2026

Copy link
Copy Markdown

📊 Code Coverage Report

🔥 Diff Coverage

100%


🎯 Overall Coverage

83%


📈 Total Lines Covered: 8455 out of 10100
📁 Project: mssql-python


Diff Coverage

Diff: main...HEAD, staged and unstaged changes

No 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: 64.1%
mssql_python.pybind.logger_bridge.hpp: 70.8%
mssql_python.row.py: 77.6%
mssql_python.pybind.ddbc_bindings.cpp: 77.7%
mssql_python.pybind.connection.connection_pool.cpp: 81.8%
mssql_python.logging.py: 86.2%
mssql_python.pooling.py: 90.1%
mssql_python.pybind.py_type_cache.hpp: 91.6%

🔗 Quick Links

⚙️ Build Summary 📋 Coverage Details

View Azure DevOps Build

Browse Full Coverage Report

Copilot AI review requested due to automatic review settings September 18, 2026 07:45
@github-actions

github-actions Bot commented Sep 18, 2026

Copy link
Copy Markdown

PR Performance Report

Performance assessment pending.

Waiting for the matching performance run for head 9f5631d1572657a5316f88efabf0a04085b4748d.

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.

🔵 Needs a closer look

It changes cross-platform wheel packaging and release gates, with ARM64 runtime validation limited to archive and ELF inspection.

Review details
  • Files reviewed: 6/6 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings September 18, 2026 09: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 reviewed changes consistently enforce libc-specific payload selection and update corresponding release audits and tests.

Review details
  • Files reviewed: 6/6 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

Copilot AI review requested due to automatic review settings September 18, 2026 10:29

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

No unresolved correctness issues were found in the payload selection, release checks, or Conda compatibility updates.

Review details
  • Files reviewed: 6/6 changed files
  • Comments generated: 0 new
  • Review effort level: Lite

@jahnvi480
Jahnvi Thakkar (jahnvi480) merged commit 89aee60 into main Sep 18, 2026
43 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-size: small Minimal code update

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants