Skip to content

Conversation

@MHendricks
Copy link
Collaborator

@MHendricks MHendricks commented Dec 28, 2025

This pull request should not be merged, it is just for experimentation.

This branch is used to track changes for the upcoming 2.0 and 2.1 releases of Qt.py. I will be force pushing to this branch often and refactoring its history. I will eventually make several pull requests from this commit history once the development is done.

Currently I'm planning to make two minor releases of Qt.py 2.0.

  • See roadmap for the plan.
  • 2.0: Drops support for python > 3.7. Drops support for Qt4(PySide, PyQt4). Supports Qt 5.13.
  • 2.1: Drops support for Qt 5.13 for Qt 5.15. I may drop support for Python > 3.9

This allows us to be able to support updates for Qt 5.13 by releasing Qt.py 2.0.1, 2.0.2, etc at the same time as Qt.py 2.1 can focus on the modern releases of Python and Qt.

@MHendricks MHendricks added the v2.0 To be implemented in the 2.0 release of Qt.py label Dec 28, 2025
@MHendricks MHendricks force-pushed the mikeh/2.X_experimental branch 7 times, most recently from 7c2737a to 9e20d38 Compare January 2, 2026 21:14
@MHendricks MHendricks self-assigned this Jan 2, 2026
@MHendricks MHendricks added the v2.1 To be implemented in the 2.1 release of Qt.py. Supporting Qt5.15+ only label Jan 2, 2026
@MHendricks MHendricks force-pushed the mikeh/2.X_experimental branch 11 times, most recently from afe5d1d to fffb1d8 Compare January 7, 2026 22:12
@MHendricks MHendricks force-pushed the mikeh/2.X_experimental branch from fffb1d8 to 047c2c9 Compare January 10, 2026 23:37
@MHendricks MHendricks force-pushed the mikeh/2.X_experimental branch 4 times, most recently from 4d3695c to 2af4cee Compare January 11, 2026 08:10
Excluding required python 2 specific fixes
Leaving Python 3 only fixes for now
Prevent json parsing errors caused by printing when printing json
Cy2020 uses python 3.7 and Qt 5.13.
Correct Cy2021 test to use python 3.7

Improve py 3.7 PyQt5-sip workaround in tox. This prevents needing to have
visual studio installed to compile sdist by forcing it to use versions
providing pre-built wheels.
On linux these require the pulse audio libraries.
Sorts PySide before PyQt and Qt 6 before Qt 5.

Also Remove QIntList from membership report. It will not be common for
the 2.0 versions of Qt.py because it is not available in PySide2, PyQt5
or PyQt6. It's also adding a lot of visual clutter being present in ~50
modules in PySide6.
Uses the common_members.json generated list

Update membership.py to exclude platform specific members
This includes a workaround for python 3.7 and PySide2 in python 3.9.
Update github actions for artifact upload/download
This enables mapping QAction to the QtGui for the PySide6 reference, but
still add it to QtWidgets for backwards compatibility.
Adds support for adding `Qt.QtOpenGl` and other modules. These modules
don't actually have any common members because the different bindings used
unique module names. For example in Qt6 all QtOpenGL functions are stored
under QtOpenGL, but in PySide2 they are stored under QtGui and QtOpenGLFunctions,
and PyQt5 is ... complex.

Also moves most of the extras passed to _setup into the `__extras__` key
of `_misplaced_members[binding]`. This allows QtSiteConfig to customize them.

Remove Qt 5.11 legacy support for PyQt5 sip import.

QtWidgets.QFileSystemModel is now mapped to all misplaced bindings and tested.
This shows how to use QtSiteConfig to add this module as well as modifying
the new `__extras__` misplaced member feature.
This adds several common members that had to be excluded when supporting Qt 5.13.
@MHendricks MHendricks force-pushed the mikeh/2.X_experimental branch from 2af4cee to 5f803f1 Compare January 11, 2026 08:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

v2.0 To be implemented in the 2.0 release of Qt.py v2.1 To be implemented in the 2.1 release of Qt.py. Supporting Qt5.15+ only

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant