Skip to content

[Bug] Missing wheels (bad requirement) for broker support on Python 3.13 #823

Open
@qris

Description

@qris

Describe the bug
Until 4eb7bd1, msal[broker] requires pymsalruntime < 0.18, for which wheels are only published up to Python 3.12, so for Python 3.13 it wants to build from source, which many can't do (including me on my work computer).
Since that commit, pymsalruntime 0.18.1 is acceptable, for which wheels for Python 3.13 are available.
Please could we have a new release including this commit, or at least relaxing the maximum version restriction on pymsalruntime?

To Reproduce
Steps to reproduce the behavior:

  1. Install Python 3.13
  2. pip install "msal[broker]>=1.20,<2" (as seen here)

Expected behavior
As seen with Python 3.12:

C:\Temp>py312\Scripts\pip.exe install "msal[broker]>=1.20,<2"
Collecting msal<2,>=1.20 (from msal[broker]<2,>=1.20)
  Using cached msal-1.32.3-py3-none-any.whl.metadata (11 kB)
...
Collecting pymsalruntime<0.18,>=0.14 (from msal[broker]<2,>=1.20)
  Using cached pymsalruntime-0.17.1-cp312-cp312-win_amd64.whl.metadata (274 bytes)
...
Successfully installed PyJWT-2.10.1 certifi-2025.4.26 cffi-1.17.1 charset-normalizer-3.4.2 cryptography-44.0.3 idna-3.10 msal-1.32.3 pycparser-2.22 pymsalruntime-0.17.1 requests-2.32.3 urllib3-2.4.0

What you see instead
Using Python 3.13 instead:

C:\Temp>py313\Scripts\pip.exe install "msal[broker]>=1.20,<2"
Collecting msal<2,>=1.20 (from msal[broker]<2,>=1.20)
  Using cached msal-1.32.3-py3-none-any.whl.metadata (11 kB)
Collecting requests<3,>=2.0.0 (from msal<2,>=1.20->msal[broker]<2,>=1.20)
  Using cached requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
Collecting PyJWT<3,>=1.0.0 (from PyJWT[crypto]<3,>=1.0.0->msal<2,>=1.20->msal[broker]<2,>=1.20)
  Using cached PyJWT-2.10.1-py3-none-any.whl.metadata (4.0 kB)
Collecting cryptography<47,>=2.5 (from msal<2,>=1.20->msal[broker]<2,>=1.20)
  Using cached cryptography-44.0.3-cp39-abi3-win_amd64.whl.metadata (5.7 kB)
Collecting pymsalruntime<0.18,>=0.14 (from msal[broker]<2,>=1.20)
  Downloading pymsalruntime-0.14.2.tar.gz (1.3 MB)
     ---------------------------------------- 1.3/1.3 MB 9.6 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done

...
Building wheels for collected packages: pymsalruntime
  Building wheel for pymsalruntime (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for pymsalruntime (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [23 lines of output]
...
      building 'pymsalruntime.pymsalruntime' extension
      error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
      [end of output]

**The MSAL Python version you are using**
Paste the output of this
`python -c "import msal; print(msal.__version__)"`

Additional context
On Windows of course :)

Related to #774.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions