Skip to content

Commit 1c14bb9

Browse files
jahnvi480Copilot
andauthored
RELEASE: mssql-python-odbc 18.6.2.2 (#807)
### Work Item / Issue Reference > [AB#48265](https://sqlclientdrivers.visualstudio.com/c6d89619-62de-46a0-8b46-70b92a84d85e/_workitems/edit/48265) ------------------------------------------------------------------- ### Summary Prepare mssql-python-odbc 18.6.2.2 as a packaging-only release of the existing Microsoft ODBC Driver 18.6 binaries. - Bump the authoritative ODBC package version and update its packaging-revision documentation. - Release the merged libc-specific Linux wheel packaging: manylinux wheels contain glibc-based driver variants, and musllinux wheels contain only the Alpine/musl variant, for x86-64 and ARM64. - Keep the mssql-python ODBC dependency pin derived from the authoritative package version. No native driver binaries or main mssql-python version are changed. This is a draft release-preparation PR; it does not publish packages. Rebuilt artifacts must be validated before the separate ODBC PyPI release. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
1 parent 4b3ba72 commit 1c14bb9

4 files changed

Lines changed: 15 additions & 11 deletions

File tree

‎README.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ The driver is compatible with all the Python versions >= 3.10
1616
>
1717
> - Package: `mssql-python-odbc`
1818
> - Import name: `mssql_python_odbc`
19-
> - Current version: **18.6.2.1**
19+
> - Source dependency version (release preparation): **18.6.2.2**
2020
>
21-
> `mssql-python` depends on `mssql-python-odbc==18.6.2.1`. The ODBC driver is loaded lazily when the first connection is created. `pip install mssql-python` transparently pulls the companion package alongside it — no separate install step is required.
21+
> Builds from this source pin `mssql-python-odbc==18.6.2.2`, a packaging-only revision that separates glibc (manylinux) and Alpine/musl (musllinux) wheel contents without changing the native driver binaries. This release preparation does not publish the package. Already-published `mssql-python` releases that pin `mssql-python-odbc==18.6.2.1` retain that dependency; they do not automatically adopt the new revision. The ODBC driver is loaded lazily when the first connection is created. `pip install mssql-python` transparently pulls the companion version required by the selected release — no separate install step is required.
2222
>
23-
> Starting with v1.13.0, the bundled `libs/` fallback that shipped in v1.12.0 has been removed. For pip installations, creating a connection will fail if `mssql-python-odbc` is not installed. If you install `mssql-python` from a private index or with `--no-deps`, make sure `mssql-python-odbc==18.6.2.1` is installed alongside it.
23+
> Starting with v1.13.0, the bundled `libs/` fallback that shipped in v1.12.0 has been removed. For pip installations, creating a connection will fail if `mssql-python-odbc` is not installed. If you install `mssql-python` from a private index or with `--no-deps`, make sure the exact `mssql-python-odbc` version specified in that release's dependency metadata is installed alongside it.
2424
>
2525
> The **temporary Conda candidate** instead combines the code and ODBC payload in one `mssql-python` Conda package. It does not require a separately installed Conda ODBC package. This is not an announcement of public channel availability or release qualification; see the [Conda installation, migration, and readiness guide](conda/README.md).
2626
>

‎mssql_python/pybind/configure_dylibs.sh‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ if [ ! -f "$ODBC_VERSION_FILE" ]; then
1212
exit 1
1313
fi
1414

15-
DRIVER_MAJOR=$(sed -nE "s/^__version__[[:space:]]*=[[:space:]]*['\"]([0-9]+)\.[0-9]+\.[0-9]+['\"].*/\1/p" "$ODBC_VERSION_FILE" | head -1)
15+
DRIVER_MAJOR=$(sed -nE "s/^__version__[[:space:]]*=[[:space:]]*['\"]([0-9]+)\.[0-9]+\.[0-9]+(\.[0-9]+)?['\"].*/\1/p" "$ODBC_VERSION_FILE" | head -1)
1616
if [ -z "$DRIVER_MAJOR" ]; then
1717
echo "Error: failed to parse __version__ from $ODBC_VERSION_FILE"
1818
exit 1

‎mssql_python_odbc/__init__.py‎

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,15 @@
3232
# The bundled Microsoft ODBC driver is 18.6; the trailing components are
3333
# mssql-python-odbc's own packaging-revision counter. 18.6.2.1 is a metadata-only
3434
# re-release of 18.6.2 (license label corrected MIT -> proprietary; identical
35-
# binaries) -- the trailing ".1" is packaging revision 1. A literal "v1" suffix
36-
# is not a valid PEP 440 version and +local versions are rejected by PyPI, so the
37-
# revision is expressed as a fourth numeric component. ``mssql_python/pybind/
38-
# CMakeLists.txt`` parses only the leading MAJOR.MINOR from this value, so the
39-
# extra component does not affect the resolved driver filename.
40-
__version__ = "18.6.2.1"
35+
# binaries). 18.6.2.2 separates Linux wheel contents by libc: manylinux ships
36+
# glibc variants, while musllinux ships only Alpine/musl, for x86-64 and ARM64.
37+
# This is a packaging-only revision, not a new native driver build. A literal
38+
# "v1" suffix is not a valid PEP 440 version and +local versions are rejected by
39+
# PyPI, so the revision is expressed as a fourth numeric component.
40+
# ``mssql_python/pybind/CMakeLists.txt`` uses the leading MAJOR.MINOR, while
41+
# ``configure_dylibs.sh`` uses only MAJOR. Both accept the packaging revision
42+
# without changing the resolved native driver filenames.
43+
__version__ = "18.6.2.2"
4144

4245

4346
def get_libs_dir() -> str:

‎tests/test_026_odbc_provider.py‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import pytest
1818

1919
import mssql_python
20+
import mssql_python_odbc
2021
from mssql_python.odbc_provider import (
2122
NATIVE_PROVIDER_ENV_VAR,
2223
PROVIDER_MSODBCSQL18,
@@ -228,7 +229,7 @@ def test_get_info_before_and_after_resolve(monkeypatch):
228229
info = ProviderManager.get_info()
229230
assert info["id"] == PROVIDER_MSODBCSQL18
230231
assert info["package"] == "mssql_python_odbc"
231-
assert info["version"] == "18.6.2.1"
232+
assert info["version"] == mssql_python_odbc.__version__
232233
_assert_classic_driver_filename(info["driver_path"])
233234
assert info["source"] == "default"
234235
assert info["frozen"] is False

0 commit comments

Comments
 (0)