Qt for Python Development Notes

From Qt Wiki
Jump to: navigation, search

2022

30. June 2022

  • General
    • New team member will start on Friday
    • Intern interview next week
    • Experience improvements
      • Add note to Qt Creator Wizard
      • Video tutorials
      • Survey to understand
    • Designer icons (create SVGs, can we use them?)
  • Infra & Releases
    • dev is now 6.4
    • precheck on gerrit requires 'full' when the dialog is opened
    • Source of 5.15.6 to be release soon.
    • TODO: 5.15, 62 wheel name adapt
  • Bugs & Features
    • 1970 slots issue still in progress, seems to be tricky.
    • Continuing improving the cross compiling story
    • PyEnum changes are still in the work.
      • Dealing with defaults values and initialization
    • 3.11 compatibility continues
    • vectorcall support improved
    • Fix new numpy version 1.23
    • unique_ptr new example
    • QSpatialAudio added
    • WebAssembly research continues

23. June 2022

  • Infra and Releases
    • NumPy 1.23 broke dev and PyPy :(
    • We need to pin the other packages to avoid breakage
    • 6.2.5 commercial LTS to be released next week
    • 5.15.6 source code to be released in the following weeks.
      • wheel name adapt patch pending
    • Research: CI cores will be reduced in favor of finding available VMs faster.
  • Bugs & Features
    • PYSIDE-1964 Improved messages for kwargs
    • 6.4 preparations, API and documentation
    • Initial work on Python 3.11
    • PYSIDE-1945 python to cpp conversion more updates
    • Strict/Forgiving PyEnum implementation was done
      • remove duplicated enums in outer scope but silently emulate them,
      • support the old Flags names to be used
      • pretend externally a strict interface in .PYI and line completion
    • Bugs fixing 1968 1934 (type hinting issue) 1972 (snippet translate)
    • trying to tackle the __slots__ issue 1970
      • for debug builds it break, but release only 3.10 breaks
    • QVariant Enum issue 1974 168

16. June 2022

  • Bug fixing week
  • QtDevCon
    • Meeting new people using PySide!
    • Talk went well :) got some feedback.
  • Releases & Infra
    • 5.15.10 Commercial released
      • adapt wheel names
    • 6.3.1 to be released in the following days
      • RPATH issue with designer.
    • Issues with COIN
    • Issues with Windows builds, they are broken on Windows PYSIDE-1962
  • Features & Bugs
    • non-limited api issue
    • continue with the Python Enum story
      • issues wrt backward compatibility
    • Issue with __slots__ on QObject classes (related to 3.10 on macOS and Linux in general)
    • 1945 python to cpp conversion more updates
    • research on 3.11 continues
    • 1959 __mul__ operator
    • 1930 QVariant on linux issue was fixed
    • 1934 type hinting issues
  • Extras
    • New commercial portal account.qt.io
    • Webinar today at 5pm CEST
    • Don't forget 6.4 will drop python 3.6 support

09. June 2022

  • Next week is Bug Fixing Week
  • Infra & Releases
    • commercial LTS 5.15.10 to be released
    • 6.3.1 to be release next week
    • Changing the python version on windows is generating new errors.
    • CI times are too long, so there is some plan to improve the waiting times.
  • Bugs & Features
    • Tooling research
    • Issues with special application cases, QML threading and stuff
    • Access violation on debug builds on Python 3.7, on COIN it was a release build and presented the issue as well
    • Adding new QML files to the wheel (GraphicalEffects)
    • Continue research with WebAssembly
    • Discussion with pyqtgraph to improve API in favor of their module and performance.
    • Continue work with Qt Enums as Python Enums. Code generation needs some fixes still. Python 3.6 is causing issues...mainly for debug mode and limited API.


02. June 2022

  • Infra & Releases
    • Windows 10: 3.6 -> 3.7, and add Windows 11: 3.10
    • Signing binaries on Windows is time consuming
    • 6.2 Commercial LTS close to 6.3.1 OSS release.
  • Bugs & Features
    • PYSIDE-1731 signatures issues related to QFlags
    • PYSIDE-1760 flake8 fixtures broke pyside builds, because it had some effect regarding the replacement of distutils by setuptools.
    • PyEnum improvements, adding them in the enclosing scopes.
    • Continue the research on the deployment story
    • PYSIDE-1930 QVariant issues
    • PYSIDE-1939 Crashes related to return value from shiboken heuristics
    • The project now adopted SDPX licensing (2 lines instead of a wall of text)
    • PYSIDE-1947 data() and constData() from QAudioBuffer
    • PYSIDE-661 moving around messages, we still need to tackle some memory improvements.
    • Documentation updates


26. May 2022

  • Holiday

19. May 2022

  • Infra & Releases
    • 5.15.5 source code ready to be released
    • 6.3.1 delayed to mid-June
    • 6.2.4 was the last OSS 6.2 release
  • Bugs & Features
    • 1905 specify free functions in Shiboken
    • move the error messages to libshiboken
    • 1932 QEnum issues
    • Starting research on webassembly
    • Continue research on improve our deployment

story

    • Improve timeouts related to testing
    • Enum story is ready for review, additional improvements might come in the future. This feature will be optional before 6.4, and from 6.4 on it will be mandatory (Using Python Enum instead of our own Enum implementation)
    • PyIndex_Check issue

12. May 2022

  • Infra & Releases
    • 5.15.4 sources should be released soon, preparing 5.15.5
    • Special pypy branch for nightly integrations
  • Bugs & Features
    • 1898 QMetaObject invokeMethod added Q_ARG
    • 1919 Crash was fixed
    • 1912 context properties, adding missing API
    • NumPy dependencies are moved to Shiboken (pyqtgraph discussion)
    • General refactoring
    • 1912 unique_ptr issues
    • 1878 pyside-qml tool to quickly prototype/view qml code
    • Research on support for new platforms
    • Attempting to use PyTest instead of unittest
    • Missing PyIndex_Check in 3.7 issue

5. May 2022

  • Infra & Releases
    • Starting new commercial branch for 6.2 LTS, 6.2.4 was the last OSS 6.2 release.
    • Preparing new 5.15.4 OSS package (according to the KDE Free Qt Foundation)
  • Bugs & Features
    • Python 3.7 PyIndex_Check issue to be addressed in 6.2 and 6.3
    • Research and improvements on the Raspberry Pi story
    • QtWebEngine: Missing setCookieFilter and setNotificationPresenter
    • Can't use category based logging from PySide
    • Continue research on deployment story
    • 1880 DataVisualization + NumPy
    • 1898 QMetaObject.invokeMethod with arguments not possible
    • 1901 Enum "QVariantList" passed to Property breaks property datatype
    • shiboken to generate deterministic includes
    • Enum new implementation patch is mature to be included in dev and start additional testing
    • Research on testing improvements

28. April 2022

  • Bugs & Features
    • Fixed PYSIDE-1895, strings with 0 chars.
    • Diagnosed PYSIDE-1893, object deletion with lambdas.
    • Worked on PYSIDE-1859, native Win handles
    • Continued PYSIDE-1880 QDataVisualization
    • String migration of the code according to QTBUG-98434 and related cleanups
    • Improved isolation between tests and __feature__ settings, reset() method implemented.
    • Migration to PyEnum PYSIDE-1735 is now error-free:
      • qformlayout_test.py gives phantasy values when no elements exist. Python enums can't handle that.

21. April 2022

  • Infra & Releases
    • 6.2.4 is the las OSS release, 6.2 LTS being prepared
    • 6.3.x will continue as the new OSS release.
    • Issues from people having 6.2.4 and upgrading to 6.3.0. The recommendation is to uninstall the old version and install the new version. This is mainly to an issue we found while upgrading that files were removed, leaving no Qt modules available.
  • Bug & Features
    • QDataVisualization + ItemModel request for data handling (performance discussion), issues seems to be on the C++ implementation of the module.
    • https://bugreports.qt.io/browse/PYSIDE-1859 Windows handle classes issue
    • Found some issues with previous setuptools versions on Linux
    • 1890 fixing cmake build for the new __all__ resolution.
    • New Enum implementation for PySide is already in progress, it's aimed to be in place for 6.4 to avoid breaking existing code. Be aware, that there are things that are currently supported by a wrong implementation, and code adaptation will be required.
    • Improving tests overall (due to the enum changes)

14. April 2022

  • Infra & Releases
  • Bugs & Features
    • Continue the research on qml plugins and deployment story
    • Refactoring and improvements to the build_scripts
    • Python Qt Enums in progress, still some hard-to-find issues to solve
    • 1627 issue regarding QAction API related to QMenu
    • Shiboken refactorings
    • 1883 QTest issues
    • 1880 Request for 3D ItemModel functionality -> added new examples
    • Smart pointers and std::optional support

7. April 2022

  • Infra & Releases
    • New commercial 5.15 releases, difficulties with libclang 12
    • _Py_Mangle issues on >=5.15.4 to be included in 5.15.4 source packages (and others)
    • Branching 6.3 in the next days.
  • Bugs & Features
    • PYSIDE-1876 qmlparserstatus issue fixed
    • Fix TOC doc issue and adapt new qtbase changes
    • refactorings to reduce size of generated code
    • smartpointers improvements, adding tests and tuning implementation
    • PYSIDE-1878 improving qml and python interaction (plugins)
    • Working on the new Qt Python Enums approach (will be a TP with a compile time option)
    • Improve some issues on 5.15.x regarding Python 3.10 compatibility (_Py_Mangle)

31. March 2022

  • Bugs & Features
    • PYSIDE-187O fixed.
    • Wheel size reduction - new flag --no-size-optimization - ready to merge.
    • pyqmlscene (starts with PySide6QmlPlugin) in the working. Requirements gathering from Qml team.
    • shiboken6-genpyi was fixed (was not functional after the Python virtualization)
    • adaptation of PySide6.__all__ after the wheel split, still a problem not understood
    • PYSIDE-1735: Use Python Enums to handle Qt Enum. Making fast progress.
    • PYSIDE-535: completing PyPy documentation to introduce the project for 6.3
    • PYSIDE-1874 SIGSEGV when accessing __doc__ of a Property fixed

24. March 2022

  • Infra & Releases
    • 6.2.4 was released
    • 5.15.3 sources were updated to include pyside2-tools, and 3.10 compatibility.
    • We will replace 3.6.1 by 3.7.x to test on windows
    • Adding new set of wheels to the download.qt.io snapshots
  • Bugs & Features
    • Research on reducing wheel sizes via compiling flags and other things.
    • REG PYSIDE-1870 still in progress
    • Fixing doc issues, and sphinx related changes.
    • 1862 top level cmake build fixed
    • 1868 crash on frame buffer (factory function)
    • Adapting to changes in Qt/C++
    • share_ptr handling refactoring to write independently of the platform
    • wheel_tester issue on macos was fixed (scriptableapplication building with qmake only), it uses cmake and ninja now.
    • Issue in pyside6 re-introduced an old issue: https://codereview.qt-project.org/c/pyside/pyside-setup/+/401438
    • Continue with the work on Enums in PySide
    • Improvements to the create wheel process

17. March 2022

  • General
  • Infra & Releases
    • 6.2.4 release is ready to be out today.
    • LTS 5.15.3 source code will be re-uploaded due to missing pyside2-tools
  • Bugs & Features
    • QmlExtension research for PySide projects
    • Research for new ideas to improve PySide and Shiboken
    • Stripping binaries a bit to reduce wheel size
    • QtPropertyMap is not exposed
    • Update the documentation (Signal/Slots, modules desc, and more)
    • Replacing count() functions by size() internally.
    • Improving the testing framework (special cases for apple silicon)
    • PYSIDE-1843: Continue fixing failing tests for PyPy
    • Research: Improvements to Qt Enums to rely on Python Enums
    • Wheel splitting might need a small size increase on PyPi

10. March 2022

  • General
    • Position still open and many candidates in the pipeline.
  • Infra & Releases
    • Python CI version updates: 3.8 (linux) 3.7 (win) mac (3.9)
    • PyPy issues on the CI being addressed, almost fully functional.
    • 6.2.4 still waiting for Qt to be released.
    • 5.15.3 source was released according to the KDE Free Qt Foundation
      • Sadly, it doesn't include the patches to be Python 3.10 compatible
  • Bugs & Features
    • Research on new PySide features on-going, extra things, internals, and performance
    • QtNfc module was added
    • qFuzzyCompare issue was fixed
    • Improvements on the shiboken containers parsing
    • Compatibility with older python version and pypy tests
    • QmlPropertyMap issue was fixed
    • Still fixing tests for PyPy and new Qt builds
      • New issues were found, but many were fixes. At the moment: 14 in Core, and 18 in all the modules
    • New wheel structure being discussed: splitting the big wheels into at least two

3. March 2022

  • General
  • Infra & Releases
    • 6.2.4 ready to be released, but qt was postponed for 15.03.2022
    • PyPy CI builds are still being tested
    • Next week there will be a CI maintenance break
    • Python versions: 3.6 (linux + win) 3.9 (mac) | 3.10 test win
      • 3.6 will be deprecated in 6.3, so we will change CI versions
      • 3.8 (win), 3.10 (x), 3.7 (x)
    • 6.3 branching still pending a few wheel modifications, and tags.
  • Bug & Features
    • PyPy build on windows presented a few challenges, and PyPy issues were found and reported.
    • pyi generation also had issues due to a virtualenv + windows configurations being wrong, regarding the import orders.
    • Enum refactoring is still in progress.
    • container conversion research
    • 1835 building 5.15 without limited api
    • qml research on property values, and group properties will be fix as well
    • research on new opportunities to improve PySide as a Python module
    • re-working the wheel generation

24. February 2022

  • General
  • Infra & Releases
  • Bug & Feature
    • PYSIDE-1824 BT issue was fixed
    • PYSIDE-1826 Image provider
    • PYSIDE-1827 metatype slot pending (metacall handle improvements)
    • Research on arguments conversion
    • PYSIDE-1815 set modified parameter function (reddit example)
    • PYSIDE-1809 signature modules issues.
    • PYSIDE-1821 Byte handling changes
    • Research on new ideas for the PySide module
    • PYSIDE-1705 Property support in constructors (relation with __feature__)
    • PYSIDE-1735 Python Enums to handle Qt Enums (prototypes)
      • PYSIDE-1731 mypy regression issue (related to enums)
    • PyPy work continues, focused on compatibility with the newest version (supporting python 3.9)


17. February 2022

  • General
    • New Documentation Engineer joined the Foundation Area.
  • Infrastructure & Releases
    • 3.10.0 configuration to be tested
    • Research on improvements for the packages in download.qt.io
    • Testing PyPy on the CI
    • Python 3.6 will be deprecated in PySide 6.3 and removed in 6.4
  • Bugs & Features
    • Addressing compatibility with other deployment tools.
    • QmlExtended QmlAttach will be available in 6.3
    • PYSIDE-1812 cross build task custom clang options
    • Research with C++20 to build pyside, and vector call new API in 3.9+
    • PYSIDE-1765 PYSIDE-1763 __feature__ issues were fixed and working on providing support for property in constructors PYSIDE-1705 (a bit more difficult)
    • PYSIDE-1815 QtNetworkAuth.QAbstractOAuth is missing modifyParametersFunction/setModifyParametersFunction
    • PYSIDE-1821 Add support for std::byte
    • PYSIDE-1809 wrong name type annotation for setProperty() and property()

10. February 2022

  • General
  • Bugs & Features
    • PYSIDE-1806 CMake version check fixed
    • PYSIDE-1804 Big endian test failure fixed
    • Work in progress to add further QML decorators
    • PYSIDE-1702 snake_case handling now does explicitly not touch user defined classes.
    • PYSIDE-1758 Leave the underscore variable alone in QApplication
    • PYSIDE-535 Remove a disambiguation patch no longer needed
    • PYSIDE-1765 Widget subclass' minimumSizeHint not called with true_property
    • Work in progress on: PYSIDE-1753 setStyleSheet available even if snake_case (complex)

03. February 2022

  • General
  • Infra & Releases
    • 6.2.3 was released.
    • Waiting for a scheduled CI break on Monday
    • OSS packages for 5.15.3 source to be available soon.
  • Bugs & Features
    • Updating new Qt dev API (targeting 6.4)
    • Adjusting a designer issue with a crash on views
    • Improving examples: Old OpenGL API
    • PYSIDE-1801 signal crash issue addressed
    • PYSIDE-1804 QByteArray issue
    • Improving QML: getting some issues with QML_ATTACHED
    • Writing PyPy Documentation to explain motivation, changes, and usage.
    • PyPy Compatibility:
      • Got nice performance results with the working mandelbrot example
      • Still working on some last tests that are not properly working.
    • PYSIDE-1798 fixing enum issue
    • Continue the work on the python-lsp issues on QtCreator

27. January 2022

  • General
    • Communicate issue with Apple Silicon and our wheels. There is a bug on Python so using limited API and creating wheels with Python 3.8, make them unusable for 3.6 and 3.7
  • Infra & Releases
    • 6.2.3 to be release soon.
  • Bugs & Features
    • Qt Creator LSP issue has an initial solution
    • Curating a list of new features for Shiboken
    • Working on an issue related to help() function on top of custom modules
    • PYSIDE-1057 memory leak in progress
    • Fixing examples to be compatible with PyPy and addressing corner cases
    • QPainter was transformed into a context manager
    • Building pyside with PyPy 3.8 is possible (3.9 is still in alpha)
    • Working on a new tree example
    • 1788 allow-thread issue with event functions
    • Add threaded OpenGL example
    • Add data()/constData() to OpaqueContainers
    • Continue work on QML integration

20. January 2022

  • General
  • Infra & Releases
    • 6.2.3 release next week
    • Waiting a bit before branching 6.3
  • Bugs & Features
    • QtCreator Python LSP issue to be worked on
    • Continue with the research related to new Shiboken features.
    • Fixing general bugs from support
    • Adapting new API for 6.3
    • Improving QML story with custom types
    • PyPy compatibility is focused on making some last examples to work, some issues with PyPy are being found as well.

13. January 2022

  • Infra & Releases
    • Maintenance in the CI, still a few things to be improved.
    • New version of Gerrit is available as well.
    • 5.15.8 Commercial LTS was released
    • 5.15.2.1 to be release soon, special version with Python 3.10 support
  • Bugs and Features
    • PYSIDE-1755 Fixing issues with __code__ (related to slots)
    • Improved documentation
    • Looking for new features for Shiboken
    • Working on improving the LSP story on QtCreator https://github.com/python-lsp/python-lsp-jsonrpc/issues/5
    • PYSIDE-1764 suggestion on avoid the generation/wrapping of methods within objects.
    • PYSIDE-1730 signal/method namespace crash, generated by old fixes on old bugs.
    • Add capacity/reserve functions to OpaqueContainers
    • QML references examples issues, to discover missing details on the qml interaction
    • Clarifying the conversion rules on the typesystem: native, target
    • PYSIDE-1768 and PYSIDE-1769 WebEngine issues were solved.
    • uic missing imports
    • PYSIDE-1751 equality test for signals is rewritten and working better
    • QXYSeries: adding missing addons to enable methods


06. January 2022

  • General
    • New bridge between Telegram <-> IRC
  • Infra & Release
    • Planning 5.15.2 new release (5.15.2.1) to include Python 3.10 support.
    • 5.15.8 Commercial LTS to be release in the next couple of days.
    • 6.2.3 planned for 2022.01.18
  • Bugs & Features
    • PYSIDE-1755 __code__ inspection on slot connection is buggy (breaks, e.g. MagicMock testing)
    • Ported new examples QRegularExpression editor and MimeTypes
    • Research to get new Shiboken features
    • Updating translations
    • In progress enabling qmllint in pyside project thanks to an external tool
    • Addressing signal issues for different use-cases, multiple inheritance
      • There is a relation with PyPy issues as well
    • PYSIDE-1760 Racing condition without virtual environments (preloading setuptools)
    • true_property issues were solved.
    • continue work to have a more modular pyside installation with more wheels
    • research on manylinux compatibility

2021

2020

2019

2018