Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why does Python 3.12 only exist for MSYS2, but not for MinGW64 or UCRT64? #4953

Closed
1 task done
Paebbels opened this issue Oct 13, 2024 · 7 comments
Closed
1 task done
Labels
not-bug General questions, not an issue

Comments

@Paebbels
Copy link

Description / Steps to reproduce the issue

MSYS2 provides Python for the shells MSYS2/MSYS, MSYS2/MinGW32, MSYS2/MinGW64, MSYS2/UCRT64, ..., but only MSYS2/MSYS installs Python 3.12.x, whereas MinGW64 or UCRT64 only provide 3.11.x.

Before 3.12, all shells provided the same Python version.


Btw, a few days ago Python 3.13 was released.

Expected behavior

Provide latest Python 3.12 (or better: directly jump to 3.13 😄) for all shells.

Actual behavior

$ pacman -Ss python | grep "python 3.1"
clangarm64/mingw-w64-clang-aarch64-python 3.11.10-1
mingw32/mingw-w64-i686-python 3.11.10-1
mingw64/mingw-w64-x86_64-python 3.11.10-1 [Installiert]
ucrt64/mingw-w64-ucrt-x86_64-python 3.11.10-1 [Installiert]
clang32/mingw-w64-clang-i686-python 3.11.10-1
clang64/mingw-w64-clang-x86_64-python 3.11.10-1
msys/python 3.12.7-1 [Installiert]

Verification

Windows Version

MINGW64_NT-10.0-22631

Are you willing to submit a PR?

No response

@Paebbels Paebbels added the bug label Oct 13, 2024
@Biswa96
Copy link
Member

Biswa96 commented Oct 14, 2024

Why does Python 3.12 only exist for MSYS2, but not for MinGW64 or UCRT64?

It takes tremendous amount of effort to port python for mingw toolchain. There is a temporary mingw python 3.12 for testing https://packages.msys2.org/base/mingw-w64-python3.12. It would not work with other programs because those requires to be rebuilt.

The source code for mingw python can be found in this repository https://github.com/msys2-contrib/cpython-mingw

@Biswa96 Biswa96 closed this as not planned Won't fix, can't repro, duplicate, stale Oct 14, 2024
@Biswa96 Biswa96 added not-bug General questions, not an issue and removed bug labels Oct 14, 2024
@Paebbels
Copy link
Author

@Biswa96 I know Python is not easy, because I'm building dozens of Docker containers from scratch to provide old and new Python releases for my company's workflow demands.

I believe a "not planned" justification is not suitable for MSYS2, because at some point in time Python 3.11 will be outdated - actually it is already out of bugfixes state and in security fixes only state. Sooner or later MSYS2 needs to provide Python or remove it completely...


What is needed to support you or get Python 3.12 to all platforms or even get Python 3.13?

/cc @skoehler

@Biswa96
Copy link
Member

Biswa96 commented Oct 17, 2024

What is needed to support you or get Python 3.12 to all platforms or even get Python 3.13?

@naveen521kk may help with that question.

@naveen521kk
Copy link
Member

What is needed to support you or get Python 3.12 to all platforms or even get Python 3.13?

Here's the issue that tracks Python 3.12 msys2-contrib/cpython-mingw#167. We are currently testing out whether it's working for people by providing a python3.12 package. There are some things that we've planned to do before rolling it out as the default version (see the linked issue), but I don't have time for that atm, so the current status is likely standby (or @lazka would help 🙂)

As for Python 3.13, someone needs to port it first. We have a lot of patches on top of upstream and requires a huge effort. On top of that, it'll always be better to wait for at least one bug-fix release (like 3.13.1). I'm planning to work on this during Christmas vacation, but if you want it earlier you could work on it ;-).

@Paebbels
Copy link
Author

Paebbels commented Nov 8, 2024

See also this issue for Python 3.13: Compiling 3.13 in MSYS2/UCRT64 causes a type error for _PyTime_AsTime_t

@lazka
Copy link
Member

lazka commented Nov 8, 2024

We have updated to 3.12 now btw

@Paebbels
Copy link
Author

@lazka thanks for the update.

I updates my libraries to handle the new platform names and pushed a release of pyTooling:

  • MinGW32: mingw_i686mingw_i686_msvcrt_gnu
  • MinGW64: mingw_x86_64mingw_x86_64_msvcrt_gnu
  • UCRT64: mingw_x86_64_ucrtmingw_x86_64_ucrt_gnu
  • LLVM64: mingw_x86_64_clangmingw_x86_64_ucrt_llvm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
not-bug General questions, not an issue
Projects
None yet
Development

No branches or pull requests

4 participants