Qt for Python Development Notes

From Qt Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

2021

25. November 2021

  • Releases and Infra
    • 6.2.2 next Tuesday
      • Quick3D and Universal wheels, Shared pointers None story.
    • OpenGL issue solved for setup.py wheel creation (cmake builds are affected)
    • Research on 3.10.0 on Windows
  • Bugs
    • PYSIDE-1710 problematic to keep compatibility with Python 2
      • wheel tester fails, let us stop testing on python 2
    • share smart pointer issues, comparison and nullptr
    • 1715 crash is fixed
    • gallery tool issue with a jpeg file
  • Features
    • documentation warnings
    • brushing up some opengl code
    • creating a libpysideqml
    • Continuing with the PyPy issues

18. November 2021

  • Releases and Infra
    • Issue with ubuntu 20.04 and libOpenGL.so.0 dependency seems to be in the pyside build and not Qt
    • Using more cores in the CI now :)
    • Apple Silicon story
      • Issues with python provisioning on the CI
    • Research on the PyPy CI configuration
    • 6.2.2 release at the end of the month
  • Bugs
    • Shared pointer comparison issue
    • Another shared pointer type related issue
  • Features
    • QmlUncreatable decorator
    • Adding Quick3D module (issue with qml registration)
    • PyPy changes are getting closer to be fully working.

11. November 2021

  • Releases and Infra
    • Apple Silicon CI to be ready soon
    • Windows CI machines slowness to be addressed
    • To enable Python 3.10 in a CI configuration
    • Research about adding PyPy as a CI configuration
  • Bugs
    • PYSIDE-1520 (related 1675) handling slots type hints
  • Features
    • Standard containers
    • Properly handling sets between C++ and Python
    • Adding new QML references examples and new Decorators (still in research)
    • Planning restructuring of libpyside to not be qml dependant
    • Move to Python enum: Roadmap is fixed, tests started
    • PyPy, finding new things and discuss with the team.
      • Improved the pending failing test by fixing a issue on PyCFunction (99 before, 76 to go)

4. November 2021

  • Releases and Infra
    • 5.15 commercial LTS problems were solved.
    • Apple Silicon wheels still in progress
      • changing the way we provision Python on the CI
    • Directory structure for snapshot (internal) installation
  • Features
    • default expr handling fixes
    • memory leak on the keyword arguments handling fixed
    • Default templates for containers in progress
    • PyPy changes in the progress, learning by doing.
      • Finding new issues on both sides, getting in touch with pypy team
  • Bugs
    • Issues with the latest MSVC2019 updates are fixed (typedefs)
    • Issues found related QSet and set/list transformation
    • PYSIDE-1670 singleShot -> single_shot function/property
    • Improving the signature module system
    • Enums of PySide are still in C++, but they could be moved to Python.

28. October 2021

  • Releases and Infra
    • CI is under maintenance
    • 6.2.1 released
    • Commercial LTS 5.15.7 to be released
      • merge from lts to commercial
  • Features
    • PYSIDE-535: PyPy compatibility, object lifecycles differences with CPython, managed to solve other errors. Removed lld regression. Currently solving Signal&Slots problems. Checking large patches for using pypy as a build target. Py_FromSpect implementation still missing.
    • Default function arguments qualifications in progress
    • PYSIDE-1666 Container Templates for shiboken
  • Bugs
    • PYSIDE-1669: addPixmap str arguments
    • PYSIDE-1675: mypy compatibility, improvement on the error messages for generic types.
    • PYSIDE-1670: __feature__: handle properties with function overloads
    • PYSIDE-1431: equality check of some signal/instances fails
    • PYSIDE-1695: Flags comparison issue
    • PYSIDE-1697: Memory leak

21. October 2021

  • General
  • Infra & Releases
    • 6.2.1 release is coming
    • universal wheels might come in later versions.
    • Discussion on incremental wheels to install more things on site-packages/PySide6
    • Performance issues on the CI were fixed
  • Bugs
    • PYSIDE-1691 Adding Cbor
    • Complementation for Opaque Containers
  • Features
    • PyPy compatibility work continues
    • MyPy compatibility work continues
    • Add bluetooth scanner example

14. October 2021

  • General
    • Bug fixing week
    • New contributors from Hacktoberfest
  • Infra & Releases
    • 6.2.1 release is approaching
    • We need to setup a new provisioning for Apple Silicon wheels.
    • Splitting wheels research.
  • Bugs
    • PYSIDE-1685 Font families
    • Addressing flaky tests
    • PYSIDE-656 raising exceptions related to mouse events
    • PYSIDE-1669 QIcon.addPixmap issue with argument 'str'
  • Features
    • Implicit conversion in Shiboken
      • Get list of invalid usages from wrappers
      • From 6.3/6.4 enable the option.
    • Render control example
    • PyPy compatibility work continues
    • Improve mypy compatibility will continue

07. October 2021

  • General
    • Blog post published https://www.qt.io/blog/qt-for-python-release-6.2
    • Progress regarding a better cross compilation story
    • Apple Silicon wheels needs some testing
    • PyPi wheel size issue due to macOS wheels having Universal Binaries and new modules
      • Thinking on how to generate wheels for intel and apple silicon without them being too large.
      • Maybe split the wheels into essential modules
      • Maybe create dependencies groups
    • 2 more weeks until we move to use Qt dev on the CI
  • Release and Infra
    • COIN updates and some speed issues.
    • Making bug-fix releases from LTS soon to follow the KDE Qt Free Software agreement.
  • Features
    • Signal & Slot tutorial to be available in 6.2.1, and hopefully more tutorials
    • Refactoring and cleanup on the primitive types.
    • Fixing PYSIDE-1673 and PYSIDE-1664
    • Add qml reference example
    • PYSIDE-535 PyPy development still continues
    • PYSIDE-656 old issue found, that's related to PyPy development.
  • Bugs
    • Signals are missing from the Class documentation in 6.2.1

30. September 2021

  • Release and Infra
    • We expect a release on time with respect to Qt
    • Release blog post almost ready
    • M1 wheels are still in progress.
  • Features
    • Add section to https://wiki.qt.io/New_Features_in_Qt_6.2 to highlight features
    • built-in types included into shiboken
    • adding wstring support in shiboken, extending limited api a bit.
    • Integrating PyPy related changes that don't affect Python functionality
  • Bugs
    • changelog tool using textwrap for better formatting
    • adapting examples and other minor revisions.
    • Working on Nuitka testing

23. September 2021

  • Release and Infra
    • Preparation for 6.2
  • Features
    • PyPy compatibility is still in progress due to unexpected complications.
    • WebChannel module is in plus the markdowneditor example
    • Built-in types improvements in shiboken
    • Cleaning the old suppress messages from the build
    • Examples and tutorials were added.
  • Bugs
    • QSurfaceDataArray issue when handling copies

16. September 2021

  • Release & Infra
    • Mostly focusing on having 6.2 on time
  • Bugs
    • 1659 QUiLoader issue with connecting signals based on strings.
    • 1660 Taking care of native C++ and Python types in the typesystem
  • Features
    • Opaque containers improved
    • SbkObjectType was removed, and an alias was left to PyObjectType
    • PyPy Support: heavy refactoring required for compatibility. Rewrites, and many other fixes.
      • Inheritance seems to be the more problematic bit at the moment (__new__)

09. September 2021

  • Releases & Infra
    • Commercial LTS 5.15.6 was released yesterday.
    • 6.1.3 is already out.
    • Some progress on the M1 wheels
  • Bugs
    • CoAP issue made us discover other flaws in shiboken that are fixed.
    • Sanitizing options needs more research.
  • Features
    • Updates to the docs before 6.2
    • Opaque containers still in progress
    • Adding new API to be compatible with PyCallable (QThreadPool)
    • Progress on the PyPy compatibility effort
    • Moving away from distutils to setuptools

02. September 2021

  • Releases & Infra
    • Commercial LTS 5.15.6 should be out soon
    • 6.1.3 should be ready today/tomorrow
    • starting migration from distutils to setuptools.
  • Bugs
    • OpenGL types issues working with macOS now (to test further examples)
    • Triaging
    • Shiboken issues when snippets and function collection with same names (QCoapClient::disconnect and QObject::disconnect)
    • PYSIDE-1646 signature mapping issues with OpenGL types
  • Features
    • PYSIDE-1650 QAccesibility missing API
    • Continue research on opaque containers
    • PYSIDE-1436 Continue fixing things towards a full 3.10 compatibility (fixing refcounts)
    • PYSIDE-535 PyPy compatibility still in progress (many bugs to be tackled)

26. August 2021

  • Releases
    • Commercial 5.15.6 LTS is being prepared.
    • 6.1.3 might be delay a couple of days due to a couple of high prio bugs that were fixed.
  • Bugs
    • Fixing the OpenGL issues of missing GL* types
    • Removing QtQuick classes that were blocking the CI
    • Addressing errors on debug mode.
  • Features
    • Planning fixes for Nuitka to get a better support.

19. August 2021

  • Bugs
    • Various fixes in four patches for Python 3.10
    • Bug from 2012 found in shiboken tests after three days debugging Python 3.10
  • Features
    • Python 3.10 support is totally ready

12. August 2021

  • Infra & Releases
    • Maintenance break
    • Still looking into universal binary wheels (some tests failing)
    • Preparing new releases.
  • Bugs
    • Threading/lock issues with QInputDialog and QAbstractSocket
    • Stripping down shiboken installation files
  • Features
    • Moving important new patches from dev to 6.1 (tricky due the changes we have in dev atm)
    • Continuing the test of 3.10
    • Addressing new pyi issues

5. August 2021

  • Infra & Releases
    • Debug CI builds are still in progress.
  • Bugs
    • PYSIDE-1626 uic switching new minor problem with qApp.
    • PYSIDE-1617 memory leaks
    • New missing information in some .pyi files
    • QInputDialog seems to be failing with threads
  • Features
    • Cleanups related to cheating macros Py Int/Long checks.
    • reconstruction of the features for future work

29. July 2021

  • Infra & Releases
    • Universal binaries still in research
    • Some errors were found on the CI debug configuration
    • COIN has some network issues.
  • Bugs
    • Refactoring and small issues.
    • feature: fix the UIC switching problem
    • Documentation seems outdated in some places, so fix are coming.
  • Features

22. July 2021

15. July 2021

  • Infra & Releases
    • CI has some issues related to qtbase and Windows
  • Bugs
    • https://bugreports.qt.io/browse/PYSIDE-535 Issues when transforming Macros to Functions, leaks were found
    • Fix memory leaks in shiboken
    • QMultiMap and QMultiHash was not properly handle (defaultdict) | behavioral change
      • Before it was a a normal dict, with the last value (all the other values were not preserved)
  • Features
    • https://bugreports.qt.io/browse/PYSIDE-1252 support classmethods in signatures and properties (static methods become properties, and that's the relation with classmethods)
    • Adding QtDBus (QPendingReply is missing) and QtNetworkAuth modules
    • Tools like qdbusxml2cpp is not supported yet.
    • Remote Objects getting some contributions.
    • Refreshing QML code and good practices, adding new examples, etc
    • WIP qmlRegisterSingletonInstance and research on QML_NAMED_ELEMENT
    • Improve docs: icons, style, content.

08. July 2021

  • Infra & Releases
    • Planning next releases.
  • Bugs
    • 1334 .connect returns now a bool to verify the connection.
    • 1613 logging level
    • 1618 session manager issue (Qt bug)
    • 1619 discussion on accepting the QSettings.value (still in progress)
  • Features
    • lupdate now has support for Python, and will be available in 6.2 (+ docs)
    • adding new API for WebEngine
    • gettext tutorial
    • pathlib support continues (QUrl)
    • PyPy compatibility: still addressing the issues related to the type extensions.
    • ApiExtractor: add classmethod attribute to add-function for tr()
    • Attempting to expose QtDBus
    • Improving docs and tutorials
    • Experimenting with python-only modules.

01. July 2021

  • Infra & Releases
    • 6.1.2 ready to go out
    • Trying CI debug configuration
  • Bugs
    • Documentation broken links, and improve Designer tutorials.
    • PYSIDE-1609 findChild fixed
    • PYSIDE-1370 QSharedMemory fixed
    • PYSIDE-131 Translations issues fixed (with the problem that we don't have lupdate support on PySide6)
    • QtSensors issues on the CI due to update solved.
  • Features
    • PYSIDE-535 PyPy Support still on going.
    • Adding more missing classes.
    • Analysing deployment scenario for PySide applications.

24. June 2021

  • Feedback from Akademy 2021 sessions
    • Tutorials on the Designer process, and other process that might be simple for Qt users, but unknown for Python users.
    • More examples on the QML - Python interaction.
    • Improve documentation
    • Qt Creator support
    • Template tool
  • Release and Infra
    • 6.1.2 coming next week.
  • Bugs
    • PYSIDE-131 in progress, related to translation with automatic language tools.
  • Features
    • Trying to address issues related to PyPy (type declaration, and extension structure)
    • Add new qml functions (update missing binding)
    • Multimedia changes
    • WebEngine is partially in the repo.

17. June 2021

  • Release and Infra
    • Commercial LTS release 5.15.5
    • New Debug VM setup ready to test
    • Testing new architecture to handle universal binaries on M1 machines
  • Bugs
    • PYSIDE-1599 Issue with .pyi files on the CI (to test them) is now fixed, considering wrong signatures that we had and didn't detect.
    • Seems like there is something going on with the --quiet options and log levels.
    • Cleaning old bugs that were invalid
  • Feature
    • Qt6 API adaption
    • There are some corner cases with pathlib that need to be documented and fixed.
    • Changes to rely on qtpath instead of qmake (from qt6 changes)
    • Testing aarch64 and M1 builds

10. June 2021

03. June 2021

  • Release and Infra
    • Qt 6.1.1 scheduled for Friday (might be release next week)
    • Commercial LTS 5.15.5 scheduled for the 10th.
    • Research on M1 build on the CI
    • Debug build on Windows to be tested.
    • The possibility of releasing Docker images is being addressed
  • Bugs
  • Features
    • Small cleanups and fixes
    • Added more API (PYSIDE-1586) for qtbase for starters
    • Working on native interfaces (PYSIDE-1568)
    • pathlib support https://bugreports.qt.io/browse/PYSIDE-1499
      • File system paths in Qt are supported
    • Discussion on new repo structure.

27. May 2021

  • Release and Infra
    • 5.15.5 LTS (Commercial only) release planned.
    • 6.1.1 to be release soon.
    • Debug build on Windows (using python_d.exe and pass '--debug' when building, and remove the '--limited-api=yes')
    • Research: M1 build CI testing
  • Features
    • Improvements to the general pyi generator, and features.
    • pathlib compatibility still in progress
    • Shiboken documentation: unused code
  • Bugs
  • Changelog policy
    • [Changelog] This class will act like..., to be used for important changes.
  • Research
    • performance tests
    • Tool: report new classes per Qt versions.
    • Missing Qt API
    • new structure cmake/build

20. May 2021

  • 6.2 considerations (checking on newly added modules, examples, tests)
  • Added textedit example
  • Features
    • PYSIDE-1415 Make `generate_pyi.py` usable for any binding - checked in
    • PYSIDE-1019 __feature__: Support generation of modified .pyi files - done, needs cleanup
  • Bugs
    • PYSIDE-1564 QObject does not support cooperative multiple inheritance
      • working patch written but wrong, the problem is much harder since we need to call __init__ along the MRO and handle keyword args.
    • PYSIDE-229 Signal disconnect fails in multiple inheritance situation
      • postponed until the above problem is solved since it voids all debugging done

13. May 2021

06. May 2021

29. April 2021

22. April 2021

15. April 2021

  • Infrastructure
    • Setting on track the content of OSS and commercial wheels.
    • Qt addons distribution will change in 6.1 and 6.2, so we need to keep an eye on that.
    • New macOS machines for the CI
  • Documentation update process to be improved.
  • Bugs
    • There were some problems with the default encoding and the doc build process (python version related)
    • 1529 fixed, and other issues (QPointF), 1514 QPainter, 1503 QCharts.
  • Features
    • Improving examples to use new features and refreshing the code base.
    • Performance examples to compare C++ and Python
    • Reformatting some code base to use f-strings and warning
    • New tutorials in progress based on Model View
    • Internal Qt Hackathon
      • Focused on integration with matplotlib (Performance discussion)
      • Scripting C++ applications.

08. April 2021

  • No meeting

01. April 2021

  • Deployment story
    • Add new test for Nuitka (on macOS)
    • Update the tutorials, since PyInstaller and cx_Freeze seems to be partially working on Qt6.
    • Higher versions from macOS are more restrictive for the bundles that are generated. This leads to new breakage.
  • Preparation for 6.0.3 release
  • Bug
    • PYSIDE-1523 Nuitka compile methods/functions is done
    • PYSIDE-1338 Hiding confusing feature frame entries
    • Wheel Tester to be improved.
  • Features
    • pathlib features still in progress.
    • Porting more examples to snake_case
    • Check snippets_translator tool.
    • Make generate_pyi as a generic tool to be merged.

25. March 2021

  • Infra
    • Evaluation to change the wheel names to specify glibc version for 6.1
    • CI issues still with macOS
  • Features
    • Refactoring examples (snake_case)
    • Updating deployment docs.
    • PYSIDE-1523 Nuitka, support for compiled functions.
    • PYSIDE-1415 make the generate_pyi more general
    • PYSIDE-1449 pathlib compatibility
    • Improvements on the documentation, tutorials, and examples.
    • Enabling snippet translator into the doc building process.
  • Bugs
    • Fix crash from the new Network components.
    • Triage and some other fixes.
    • PYSIDE-1502 Compiling pyside2 with build target does not result in PySide2 `support` module being installed
    • PYSIDE-1524 warning related to sprintf
    • PYSIDE-1019 1038 hidden imports, properties, other fixes.
    • There seems to be some problems with PyInstaller on macOS

18. March 2021

  • Infra
    • CI has been showing some issues. 12h timeouts for macOS.
    • Soon to have 6.1 branch
    • Synchronization of the commercial repository with latest Qt.
  • Features
    • Improving commercial tools.
    • Finding issues and getting ideas to improve the docs.
    • Using new qttools directory
    • Add option to not copy qt tools to the wheel when building.
    • pathlib compatibility patch still on-going
    • improvements to the documentation, adding 'doc' directory to each example.
  • Bugs
    • OpenGLFunctions issues (mailing list announcement)
    • PYSIDE-1520 Union types
    • PYSIDE-1514 Shiboken module movement patches had some issues, which will be fixed
    • PYSIDE-1502 Working on improving the __feature__ option to make them safer in diff installation errors.
    • PYSIDE-1019 feature import problem (found in PYSIDE-1338) waiting for review

11. March 2021

  • Infra
    • 6.0.2 is out
    • 5.15.3 still pending
    • Trying to update dependencies for 6.1 (modules)
    • auditwheel (research, optional)
    • COIN seems to be acting weird, but generally.
  • Features
    • cleanup snippets and general things in shiboken
    • license changes for LTS
    • Adding clarifications to the docs.
    • Discussion on the proper build processes.
  • Bugs

5. March 2021

  • General Topics
    • 6.0.2 release preparations
      • Final fix for license checking instructions
      • OSS RC1 wheels should be available for testing later today
      • Merge from pyside-setup/6.0 into tqtc-pyside-setup/6.0 is pending that final fix
    • Bugs
      • PYSIDE-1438 Crash in Qt DataVisualisation adressed
      • Bug triage, moved several bugs over to Qt
    • Features
      • Cleanup and improvement of injected code snippets in PySide6
      • Improvements in error handling

25. February 2021

  • General Topics
    • Commercial 5.15.3 release next week.
    • 6.0.2 release next week.
  • Infra updates
    • Keep an eye on the next Python releases.
  • Features
    • Documentation for the designer plugin
    • shiboken: c++ using directive
    • pathlib compatibility support discussion (initial implementation was discarded)
      • Trying to discover all the methods that are related to paths.
  • Bugs
    • cx_Freeze issues in 6.0.0/1

18. February 2021

  • General Topics
    • Commercial LTS 5.15.3 release.
    • DeveloperWeek conference talk by Corey: will mention Qt for Python.
  • Infra Update
    • TBD: Need of a new branch in qt5.git for the lts qt for python release.
  • Features
    • pathlib.Path (soon to be ready) and fspath support (difficult) in pyside
    • __feature__ documentation
    • Designer patches are done (we still need docs)
    • documentation generation fixes.
    • shiboken: general refactoring (constructors)
    • doc: examples code in tabs
    • doc: new ideas for tutorials and vocabulary.

11. February 2021

  • General topics
    • Issues with Pick-to: 5.15
    • Discussion about the usage of pathlib
    • Reduce linux wheel size by not including .debug files.
  • Infra update
    • Timeouts in RHEL
    • Preparing addons for 6.1
  • Bugs
    • Fixing many issues related to sphinx, and documentation in general.
  • Features
    • Moving the internal shiboken6.shiboken6.Shiboken to shiboken6.Shiboken 1497
    • Will be finish today (Documentation about the __feature__ options) PYSIDE-1481
    • (in progress) https://bugreports.qt.io/browse/PYSIDE-1019 usage of constructor properties when enabling true_property
    • Migration to pathlib in our code, and add support for fspath in our API, https://bugreports.qt.io/browse/PYSIDE-1499
    • Examples gallery embedded into the doc building process.
    • Designer patch ready for review.
    • Commercial tools on-going (icons discussion)
    • (in progress) Error handling in shiboken

4. February 2021

28. January 2021

  • Infra update
    • 'dev' we are missing tests on macOS (in progress). Qt5 bin on macOS 11, and running test on 10.15/13
    • trying to build pyside on a custom Qt (with plugins/addons) oss and commercial
  • Bugs
  • Features
    • refactoring shiboken
    • statmachine module rebirth
    • designer patches to include custom widgets.
    • enabling clang_options on shiboken
  • Branching story
    • lts-5.15 issues
      • Fix pyside-setup/5.15 and do all the merges     (done)                                        
      • Merge pyside-setup/5.15 into tqtc-pyside-setup/5.15    (done)                                        
      • Create tqtc-pyside-setup/lts-5.15 from pyside-setup/5.15
      • Close pyside-setup/5.15 Make the Pick-to bot merge from Pick-to: 5.15 -> tqtc/lts-5.15
    • tqtc
      • create tqtc/dev from oss/dev
      • move manually the patches that added things for the commercial offering into tqtc/dev (shiboken ui, m2m protocols modules)
    • Process to fix bugs
      • push to oss/dev Pickt-to: 5.15 (this will go to lts-5.15)
      • before release we push oss/dev to tqtc/dev

21. January 2021

  • Infra update
    • 'dev' branch seems to be the only broken (maybe 5.15)
    • Provisioning is affected
    • need to create lts-5.15 branch for commercial releases
    • WinRT is broken (at a Qt/CI level)
  • Bug fixes
  • Features
    • Rename internal shiboken import: 'from shiboken6 import shiboken6 as Shiboken' -> 'from shiboken6 import Shiboken'
      • Both options in 6.1,
      • Only 'from shiboken6 import Shiboken' from 6.2 on.
    • Designer plugin: set environment in the launcher script (instead of the rpath option)
    • Removing extra QtCharts namespace (it was removed in Qt) -> QtDataVisualization?
      • Externals helping the migration process.
    • https://bugreports.qt.io/browse/PYSIDE-1477 clang options for shiboken cross build
  • Starting work on new tutorials and applications (Data Science and visualization)

14. January 2021

7. January 2021

  • Infra update
    • libclang install fixes (issues related to 6.0 and 10.0)
      • from the MSVC update, we require 10.0 for 5.15 and 6.0
  • Bug fixes
    • PYSIDE-1447 qapp flag
    • PYSIDE-1463 snake_case init issue
    • PYSIDE-1470 shiboken delete qapp
    • PYSIDE-79 reopened due to a leak introduced by the fix to PYSIDE-68
  • Features
    • Possible research PYSIDE-163
    • Refactoring shiboken
    • PYSIDE-1455 designer plugin
    • Snippets translators
    • Deployment story for PySide6

2020

2019

2018