Qt for Python Development Notes

From Qt Wiki
Jump to: navigation, search


29. October 2020

  • Infra Update
    • 5.15.2 in the horizon
  • Qt6 efforts
    • Catching up with the latest changes in qtbase and friends.
    • Dropping support for Python 2 and 3.5
    • Rename of shiboken2 -> shiboken6 (already merged)
    • Transforming Macros into Functions on the CMakeLists files
    • Test failures on QList (fancy templates)
    • Build documentation issues.
  • Class properties on dev
    • Integrated, took some extra time.
  • Error messages with __feature__
    • Improvements overall related to the types.
  • Bug fixing and Documentation
    • Updating internal references
  • Extra

22. October 2020

  • Qt 6 work
  • Refactoring shiboken2 for Qt 6
  • Investigated PYSIDE-1408, PYSIDE-1410, no conclusions so far
  • Implementation of class properties ready for review tomorrow, will be integrated in dev branch.
  • Solving issue with the deprecated wheel.pep425tags
  • Updating documentation to include reference to new branches, build documentation, etc.
  • QtWS20 Talk

15. October 2020

  • Infra update
  • Trying to enable QtConcurrent methods (some)
  • Bug fixes
    • uic 'things' to review for 5.15
    • QtCreator templates bugs to be reported.
  • Qt 6 Effort
    • Still more work here...
    • Examples, and dealing with the latest from dev
  • Some embedded cross compiling effort

8. October 2020

  • Infra
    • Timeouts maybe when the test_wheel hangs?
    • Cache the wheels we install for the installation process, somehow.
  • PYSIDE-827 Commands help
    • Complicated refactoring, but it's waiting for review atm.
  • Bugs fix
    • export macro issue
    • experiment with QtConcurrent PYSIDE-1202
    • PYSIDE-1098 getframe was not properly working with 1 as argument.
    • (on hold for Qt6) PYSIDE-1019 Properties modified for static ones
    • fix static string leak
    • PYSIDE-1128 QScintilla research
  • Qt 6 efforts
    • Fixing tests, and more.

1. October 2020

  • Infra
    • Still the 'usual' timeouts while installing Python requirements. Maybe we could fix this?
  • Documentation
  • Bug fixing
  • Features
    • PYSIDE-1019 property support ready for Python property.
    • PYSIDE-1019 Property almost completely rewritten to pass the Python tests. Almost done.
    • PYSIDE-1019 shiboken: It is also possible to have properties for projects not using the PySide2 extension
  • Qt6 Port
    • Still adapting API changes
  • Extras
    • PySide Property turned out to be quite incompatible with Python properties.
    • Ready to implement static Property.
    • We might get some QA related help for the whole project :)
    • We will continue with adding the command line options to the build/install steps

24. September 2020

  • Infra
    • One strange error related to PYSIDE-1388
    • Trying to merge the change to test 3.8.1 on Windows too
  • Bug fixing spree
    • PYSIDE-1017
    • PYSIDE-1224
    • PYSIDE-665
    • PYSIDE-1388
  • Qt6 progress
    • QML was working for some period
    • Qt3D compiling
  • overloadID feature for typesystems (order of overloads)
  • PYSIDE-68
  • Simplyfying the signature module
    • motivated by the feature support
  • PYSIDE-31
  • Research Options update, replacing the ad-hoc class with argparse
    • Include patch that display custom options into the distutils implementation

17. September 2020

10. September 2020

  • 5.15.1 release waiting for final
    • blog post about some features
  • Try a new python version on the CI
  • Qt 6 efforts
    • Adding back the tools (uic/rcc)
    • New feature shiboken overload order
    • Waiting for the properties features before moving 5.15 to cherry pick mode
    • Major changes will get into dev as soon as we move 5.15 to cherry pick.
  • Review repeated overloads from a Python point of view and remove the unnecesary ones.
  • PYSIDE-74 is fixed, and now every object will have a __ne__ and __eq__
  • testing: Ensure that build dir precedes site-packages.
  • Writable properties is still in development, and closer to be done
    • what do we do with the internal pyside properties? TBD
  • Akademy 2020 participation
    • GNU Health uses PySide2!
    • Kirigami for Python users

3. September 2020

  • Infra update
    • libclang 10 issue, we need a shared library, but the latest had static only.
      • Using the QtCreator one solved the issue.
    • snapshots wheels broken atm
    • Plan for 5.15.1
  • True properties
    • make static properties needed around 10% of the cases, it collides with limited api.
    • new corner case for non-standard properties.
    • Use in runtime the information from the Meta Object.
  • Bug fixes
  • Qt6 related work
    • Adapting the latest state of qtbase
    • Simplify our CMakeLists files to use what is provided by libclang
  • QML breakage with the latest state of dev

27. August 2020

  • Infra update
    • Waiting on confirmation for 5.15.1 release
    • Discard mingw config
    • Include a Linux 64bit Python 3.8.x config
  • True property features
    • Basic implementation in-place with shiboken support.
    • Tackling errors from the parser
    • The data from ApiExtractor should be improved
    • Pending tasks: (1) Support for static properties (~20-30), (2) add missing properties via some heuristic, maybe adding support for the typesystem special entries, and (3) improve support for the signature model.
  • Bugs fixing
    • Many old bugs closed, due to being fixed or invalid in newer versions.
    • Prioritization plan for some of the remaining
    • Important bug for the project https://bugreports.qt.io/browse/PYSIDE-478 we need a better error propagation.
  • lupdate compatibility delayed
  • QML interaction
    • ListProperty was heavily improved, adding missing argument options and checks.

20. August 2020

13. August 2020

  • Infra update
    • dev is still open for direct submit.
    • libclang 10 update keeps waiting fixes to qttools.
    • The python3.8 test will get amended later today.
  • Bug fixing
    • Missing classes
    • 3D related
    • pyi incomplete
    • QmlComponent deadlock
  • (in progress) Qt Property access
    • Issues with the binding manager (functions inside properties)
    • The feature switching needs to be slower (no features, snake_case, etc)
  • Planned work on 3.9 compatibility
  • QML ListProperty in dev is broken

6. August 2020

  • Infra update
    • libclang versioning issues (we need 8+, we have 6)
    • Adding Python 3.8.1 for Python (needs review)
  • Research for commercial opportunities
  • (in progress) Qt Property access
    • prototype waiting for review
    • some complications with inherited attributes/properties
    • Class properties are a complication, since we need to make a difference with instance properties.
  • (in progress) Shiboken initialization more verbose
    • for Freezing tools.
  • Check for signature/stubs documentation.

30. July 2020

  • No meeting

23. July 2020

  • Infra update
    • 5.15 and dev -> Python 3.8.1 (Windows) => Working
    • Some issues with some images.
  • (needs review) Selectable features
    • New example to test
    • AL Completion issues
    • signal/slots will remain camelCase at the moment.
  • (in progress) Python 3.9 compatibility
    • Signature module requires some work.
  • (in progress) Qt 6 porting
    • Issues with templates in Qt6
    • QByteArrayView might be an issue
    • Documentation needs qttools, it might work with cmake/qt6
  • (in progress) QML interaction
    • qmlRegisterSingletonType ready
    • qmlRegisterUncreatableType is the next step

16. July 2020

9. July 2020

  • Infra update
    • 5.14 issues related to virtualenv (but 5.14.2 works)
    • dev is open for direct merges.
    • macOS needs review to be released.
    • sdist packages WIP patch.
  • Python 3.9b4 is out and we will try it out.
  • (in progress) Selectable features
    • new corner cases were found, so they are being tackled.
  • (in progress) access Qt properties directly
    • decide which are the properties at runtime.
    • Maybe sources/pyside2/PySide2/global.h.in:41 can help
      • #define QT_ANNOTATE_ACCESS_SPECIFIER(a) __attribute__((annotate(#a)))
  • (in progress) Qt6 compatibility
    • Dealing with test failures.
    • Issues OpenGLWidgets
    • We need to update the MetaType registration mechanisms to start working on QML register types

2. July 2020

  • Infra Update
    • Timeouts issues, increasing it is not a solution.
    • How to proceed with dev to use Qt6
      • merge without CI
      • clarify the yaml configuration
    • new release planned
  • Selectable Features
    • snake_case for camelCase names.
    • (in progress) access Qt properties directly:
      • For 'label = QLabel("hello")', we could do 'label.text = "bye"' instead of using the 'label.setText("bye")'.
  • Qt6 compatibility
    • QML working on Linux (this will enable us to work on the registration)
  • Some improvements in the documentation generation must be done to speed up the process.
  • pyside2_config.py file to CMake
    • include XConfig.cmake files on the wheel
  • sdist package
    • nice to have: pip install -e ., but at the moment we have three egg-info directories (error)
  • Starting again with the cross compilation of PySide for embedded linux.

25. June 2020

  • Infra update
    • Release of the second set of Windows 64bit wheels.
    • Issues on the CI due to some internal issues, everything should be running soon.
  • (in progress) from __future__ import newapi
    • it's tricky to provide snake_case instead of camelCase
    • issues with tp_getattro
    • creating modified Python objects to replace the original types at runtime
  • (in progress) from __future__ import newproperties
    • Still many things to go
  • PYSIDE-1282 pthread crash solved, and will be merge in 5.14
  • Indentation fixes for generated code. Prefix adaptation for a standard format so it can be loaded in QtCreator (from warning and stuff)
  • Qt for Python 6 is partially working in some platforms
    • Still many missing modules,
    • CMakeLists.txt files needs some love,
    • Needs to adapt CI for the new dev branch
    • Windows has some issues still :)
  • libclang situation, are we sharing the same version for qdoc, qtcreator, qt, etc...?
    • Need to check in case we decide to update
  • Commercial wheels split progress

18. June 2020

  • Infra update
    • The new windows wheels still had some issues, it seems the latest are OK, and we would need to publish '_2' wheels.
    • Some issues with macOS builds for 5.15.0
  • Qt6 compatibility
  • Merged a bug fix to 5.12 (the CI was not broken)
  • (in progress) Qt6 Properties camelCase to lower_case
    • Not a trivial task
    • It's possible to rename dynamically functions, and other things.
    • Containers needs to be taken care too
    • Having more than one object with the same ID is challenging
    • Issues with str based objects
  • Fixed PYSIDE-1332, PYSIDE-1327
  • (in progress) Commercial wheel are almost ready on Linux, later some changes for Windows and macOS are required.
  • (in progress) WigglyWidget example almost there
  • (in progress) New StyleSheet tutorial.

11. June 2020

4. June 2020

  • CI Update
    • Limited API reports work
    • Improve integrations on macOS
  • Documentation updates for Qt Assistant
  • PYSIDE-1257 cx_Freeze issues seems to be related to cx_Freeze itself.
  • Q_ENUM and QFlag will be soon available.
  • New Shiboken example to expose a custom Qt Widget to Python
  • loadUiType is back into PySide (relies on pyside2-uic on PATH)
  • Other bug fixes.

28. May 2020

  • Releases
  • Documentation
  • CI Status
  • Backlog status check it here
  • QML Integration update
    • We are working on finishing the implementation of Q_ENUM, to be able to use the singletonType registration
    • Additionally, we are looking into the uncreatableType registration too.
  • Development branch for Qt6
    • We need the following before jumping into dev.
      • QList/QVector
      • QString -> integrated (clarity)

21. May 2020

  • Holiday

14. May 2020

  • CI Updates
    • CI blocked due to some provisioning issues in red hat
    • Release is on hold
    • 5.15 commercial release in preparation
    • License check
  • 5.15 Release
    • Pickling changes
    • Examples
    • loadUiType
  • Tutorials rcc, designer
    • Add project's tutorial.
  • Continue research of using Qt6
  • __qualname__ attributes are almost done
    • This changes was required for the pickling support.

7. May 2020

  • CI Updates
    • Issues with the provisioning, for example the connection with PyPi, still in progress.
    • We will add a requirements.txt for provisioning.
  • Issues
    • PYSIDE-1255 Signal not reached in QML
    • Pickling Qt Enums PYSIDE-15
      • Almost finished, but we are waiting for PYSIDE-1285 to be fix (modulename, qualname).
    • Many other minor bugs have been fixed, but still there are a couple of strange ones.
    • First attempts to build shiboken with Qt6
    • Ideas repo re-organization
  • Features
    • Commercial addons
    • Tutorials
      • rcc
      • uic
      • QTranslator (*)
      • ...
    • QtAssistant integration
    • loadUiType
    • The new way of registering QML properties needs to be applied to the code base.

30. April 2020

  • CI Updates
    • Issues with pip upgrades
    • Planning new Python versions for new configurations.
  • Update on bugs still around after
    • 1271: Deadlock (fixed)
    • 1255: Signal not reached in QML (still in progress)
    • 1280: Research
  • Features
    • QML interaction
    • Q_ENUM and pickling SbkEnum
    • Commercial Addons

23. April 2020

16. April 2020

  • Plan for 5.14.2-1 release
  • Research on Pickling support, PYSIDE-15
  • Provided fix for PYSIDE-1267 related to efforts of exposing QScintilla
  • Object dumper to help debugging python implementations
  • Debugging options for the code model.
  • pysideuic old functionality into the QUiTools module
    • compileUI
    • loadUiType
  • Q_ENUM discussion

9. April 2020

  • Most bugs reported in 5.14.2 are fix on 5.14
    • Preparing the process for the release of 5.14.2-1
    • Check about versioning on pypi to not override 5.14.2 wheels.
  • PYSIDE-813 is now fixed
  • PYSIDE-1255, Signals not being emitted.
  • Working on Q_ENUM

2. April 2020

26. March 2020

  • 5.14.2 Release
  • OKRs Update
    • Looking for commercial opportunities
  • PYSIDE-813 new discoveries found:
    • There are a couple of issues with one of the PYSIDE-803 patches that will be solved soon.
    • PYSIDE-164 is out of the picture
  • Lambda functions for QWebEngineCallback PYSIDE-946 so we can expose the missing bindings.
  • QVariant conversions tweaks PYSIDE-1250
  • Working on adding 'loadUiType' into PySide PYSIDE-1223
  • Research on adding Python support for Qt's lupdate: PYSIDE-1252

19. March 2020

  • 5.14.2 Release preparations
  • Work on Widget gallery example
  • Done: Refinements to wheel-tester.py
  • Done: Reworked test_wheel.py for macOS
  • Done: Fixed PYSIDE-1247 signature warning in Python 3.6
  • In progress: Instrumentation of PYSIDE-164/813

12. March 2020

  • CI Status
    • Everything up and running
    • 5.14.2 to be released next week hopefully.
  • PYSIDE-803
    • Almost there!
    • retrieveMetaObject improvements.
    • We will try to test it without the allow-thread patch to evaluate performance.
  • PYSIDE-813
    • we will keep PYSIDE-164 open until we find a solution that fixes both.
  • Starting to evaluate std::function compatibility with Shiboken.

5. March 2020

  • CI Update
    • Including Python 3.8
    • Maybe using alternatives to have many Python versions.
  • Priority bugs
    • PYSIDE-803
      • major changes in (caching)
      • still other minor patches to be merged.
      • allow-thread patch has a bug, maybe this can be detach from the snippets one.
    • PYSIDE-813
      • PYSIDE-164 appears again if we fix it,
      • Maybe a solution is to fix 164 in another way.
  • 5.15 feature status
  • Changes for Qt 6

27. February 2020

  • CI Updates
    • 5.12 cherry-picks
  • qApp
    • Deprecation message or alias (when using QtWidgets.qApp)
  • PYSIDE-803
    • Missing patches to be merged
      • Python 2.7 issues
      • allow-thread commit message (add a changelog)
      • second caching mechanism to be studied after we merge the first set of patches.
      • Third attempt after the stackless gilstate approach
    • Documentation
  • Python 3.8 testing is still being worked out

20. February 2020

  • CI Updates
    • Cherry-picking some changes to 5.12 to fix the virtualenv 20 issues.
    • macOS timeouts
    • possibility of merging simple changes directly.
  • qApp issues
    • Patches ready for review
  • PYSIDE-803
    • Patches needs some polishing
  • Testrunner improvements
    • stdout/stderr issues with ctest on windows
    • smart pointers tests crashing, due to qApp issues.
    • Python 3.8 is also giving problems (DLLs missing)
    • debug builds on windows does not work.
  • Shiboken documentation being reorganized
  • Starting testing Python 3.9

13. February 2020

  • CI updates
    • Windows package signing will be possible, hopefully soon.
  • Documentation updates
    • Example gallery
    • WebChannel example merged,
  • Python 3.8 changes on Windows are still being tackled.
  • Bugs
    • PYSIDE-803 status: A patch waiting for review is there, but we need to combine it with the other solutions we currently have. Still, there are some corner cases where the problem is not properly solved.
    • qApp issues to be solved, but we will remove the import features. qApp will remain as a built-in.
  • OKRS 1Q/2020

6. February 2020

  • CI status and issues with the Qt provisioning 5.12
    • 5.12.7 release will take more time to add new features.
    • 5.14 has some issues with OpenGLFunctions.
  • Documentation: Interest for the new shiboken2 documentation structure and usage of the ApiExtractor.
  • Python 3.8 compatibility with older branches.
  • Updates on PYSIDE-803 link
  • Suggestion about iterations a-la-python https://bugreports.qt.io/browse/PYSIDE-1216
  • Events
    • Qt World Summit 2020 Palm Springs
    • PyCon US

30. January 2020

  • 5.14.1 release rolling
  • Work on PYSIDE-1204
  • Work on PYSIDE-1191 PySide2 5.14 source now builds against Qt 5.12 as well
  • Further research on PYSIDE-803
    • full instrumentation of generated source for tracing,
    • discovery of new hooks to support. Still in flux.
  • Fixed some issues of Python 3.8 (most prominently warnings about implicit conversion to integers for QFlags), will be fixed in 5.14.2
  • qApp macro PYSIDE-1178 PYSIDE-1158 PYSIDE-1135 finally closed. One cleanup check in may follow.

23. January 2020

  • Fix for CI/macOS problem is in, but it requires some merges in Qt5. Until all required merges are done, we will use Qt5 5.14.1 with Qt For Python 5.14
  • Research on PYSIDE-803
  • Proposed an "until" attribute for typesystem files to make it possible to build Pyside 5.14 against Qt 5.12 PYSIDE-1195
  • Improved the view of compare app for PYSIDE-803
  • Analysis of PyQt5 and SIP implementation

16. January 2020

  • CI/macOS problems are being worked.
  • qApp fix waiting to be merged.
  • first attempts to tackle PYSIDE-803
  • Python 3.8 fix to old branches is required for distributions using 5.12 LTS like Conda.
  • Working on Q_ENUM support.
  • Viewer for PYSIDE-803 is ready to try. Please check out https://git.qt.io/playground/pyside-compare.git and give feedback.

9. January 2020

  • PYSIDE-803 needs to be tackled soon, it's critical, and we cannot carry that into Qt6.
  • Python 3.8.1 on Windows has some issues while building.
  • qApp macro changes discussion.
  • documentation updates are still pending.
  • with the release of 5.14 we have been fixing many details from uic's Python support.
  • designer's RUNPATH needed to be patched, waiting for approval,
  • A modular way of packing wheels is being studied.
  • Re-take the Python extensions for QtCreator project evaluation.