You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit acdb42c
Browse filesBrowse the repository at this point in the historyBrowse files
### Work Item / Issue Reference
<!--
IMPORTANT: Please follow the PR template guidelines below.
For mssql-python maintainers: Insert your ADO Work Item ID below
For external contributors: Insert Github Issue number below
Only one reference is required - either GitHub issue OR ADO Work Item.
-->
<!-- mssql-python maintainers: ADO Work Item -->
>
[AB#48877](https://sqlclientdrivers.visualstudio.com/c6d89619-62de-46a0-8b46-70b92a84d85e/_workitems/edit/48877)
<!-- External contributors: GitHub Issue -->
> GitHub Issue: N/A - related pull request linked below.
-------------------------------------------------------------------
### Summary
<!-- Insert your summary of changes below. Minimum 10 characters
required. -->
Add ordinary CPython 3.15 to the existing combined binding/ODBC/RS Conda
package without removing older supported versions.
- Extend build and release defaults to 34 variants: Python 3.10-3.15 on
five subdirs and 3.12-3.15 on win-arm64. Free-threaded Python and
musllinux remain outside the Conda matrix.
- Use the target Windows site-packages directory for extraction and
validation: `lib/python/site-packages` on 3.15, retaining
`Lib/site-packages` on older Python.
- Pin conda-build 26.9.1 only for Windows legs containing 3.15, because
it reads the target Python's recorded layout. Other legs retain the
existing `<26` constraint.
- Use `microsoft`, then `conda-forge`, for the win-arm64 3.15 build and
verification dependencies. Preserve the exact older-version channel
policies and the 3.12 ARM64 ABI workaround.
Source RS/ODBC versions, optional dependencies, OS floors and publisher
tools are unchanged.
**User-directed PR smoke follow-up:** keep current-checkout source tests
blocking, but obtain the real Linux CPython 3.11 smoke inputs directly
from PyPI using `fetch-wheels --published-smoke`. Select PyPI's current
published binding and its exact ODBC/RS dependencies, rather than
unpublished source versions or independently mixing latest components.
No smoke versions, filenames or SHA256 values are hardcoded. Downloads
still require PyPI-provided hashes and actual
METADATA/WHEEL/RECORD/dependency checks. Missing or mismatched inputs
fail; no skip, older-release fallback or release-policy relaxation. The
workflow supports both embedded-core and separate-RS published bindings
without substituting source RS pins. This published packaging control
does not qualify current-source RS or CPython 3.15. Production/default
source-bound selection and trigger scoping are unchanged. The hardcoded
digest literals reported by DevSkim have been removed, not suppressed.
Builds on merged #817 and now targets `main`.
**Validation**
```text
.\myvenv\Scripts\python.exe -m pytest --noconftest -o addopts='' tests\test_027_conda_release_metadata.py tests\test_029_bundled_binary_audit.py tests\test_030_pe_machine_assert.py tests\test_033_driver_load_probe.py tests\test_034_conda_verify_cwd.py tests\test_035_conda_macho_assert.py tests\test_036_conda_provenance.py tests\test_037_rs_wheel_download.py tests\test_038_conda_archive_limits.py -q
```
Result: **1,388 passed** on the initial Conda support commit. These are
source-only packaging/tooling tests, not native driver or SQL
integration tests.
```text
.\myvenv\Scripts\python.exe -m pytest --noconftest -o addopts='' tests\test_036_conda_provenance.py tests\test_027_conda_release_metadata.py tests\test_034_conda_verify_cwd.py -q
```
Result: **1,073 passed** on the PyPI-selection follow-up, covering
explicit published/source selection, unavailable or invalid published
dependencies, target restriction, embedded/separate RS and existing
digest/dependency/provenance/trigger controls. Live
`read_published_versions()` selected the current PyPI binding and its
exact ODBC requirement successfully. Earlier local wheel-download
attempts hit TLS handshake errors on Windows and a bounded Linux
container; no TLS bypass was used. The normal post-push hosted
`conda-audit` run validates actual wheel downloads and the build/audit
for this revision.
```text
.\myvenv\Scripts\python.exe -m pre_commit validate-config
.\myvenv\Scripts\python.exe -m pre_commit run black-check --all-files --hook-stage pre-push
git diff --check
```
Result: **all passed**. Normal commit and push hooks also passed.
Earlier bounded local experiments solved the full ordinary-3.15 runtime
dependency closure on all six subdirs. Synthetic packaging with actual
Conda interpreters and conda-build 26.9.1 passed for win-64 3.10/3.15
and cross-built win-arm64 3.15, including ABI, PE and
installed-component checks.
**Not end-to-end qualification:** this host's
`NoDefaultCurrentDirectoryInExePath` setting blocks conda-build's normal
bare batch-file launch, including the production `build_packages`
invocation. The synthetic packaging results used an explicit-path
generated-batch launch followed by `conda-build --post`, without
changing host policy or installed libraries. They do not establish
normal pipeline success or native ARM64 execution. Approved-agent
execution, real candidate wheels, native
platform/SQL/TLS/authentication/bulk-copy and optional-feature
qualification remain pending. No ADO pipeline was queued and nothing was
published to Anaconda.
<!--
### PR Title Guide
> For feature requests
FEAT: (short-description)
> For non-feature requests like test case updates, config updates ,
dependency updates etc
CHORE: (short-description)
> For Fix requests
FIX: (short-description)
> For doc update requests
DOC: (short-description)
> For Formatting, indentation, or styling update
STYLE: (short-description)
> For Refactor, without any feature changes
REFACTOR: (short-description)
> For performance improvements
PERF: (short-description)
> For AI tooling, agents, skills, prompts, or AI-assisted development
workflows
AI: (short-description)
> For release related changes, without any feature changes
RELEASE: #<RELEASE_VERSION> (short-description)
### Contribution Guidelines
External contributors:
- Create a GitHub issue first:
https://github.com/microsoft/mssql-python/issues/new
- Link the GitHub issue in the "GitHub Issue" section above
- Follow the PR title format and provide a meaningful summary
mssql-python maintainers:
- Create an ADO Work Item following internal processes
- Link the ADO Work Item in the "ADO Work Item" section above
- Follow the PR title format and provide a meaningful summary
-->
---------
Co-authored-by: Gaurav Sharma <sharmag@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Sumit Sarabhai <sumitsar@microsoft.com>
0 commit comments