|
|
| (125 intermediate revisions by 9 users not shown) |
| Line 1: |
Line 1: |
| [[Category:Pythonic]]
| | #REDIRECT [[Qt_for_Python]] |
| == Pyside for Qt 5.x ==
| |
| | |
| The Pyside 2 project aims to provide a complete port of PySide to Qt 5.x. The development started on [https://github.com/PySide GitHub] in May 2015. The project managed to port Pyside to Qt 5.3, 5.4 & 5.5. During April 2016 The Qt Company decided to properly support the port (see [https://groups.google.com/forum/#!topic/pyside-dev/pqwzngAGLWE details ]).
| |
| | |
| This wiki page tracks the progress of PySide for Qt 5.x development and provides further information concerning the effort.
| |
| | |
| === Tools ===
| |
| The following tools are used to develop PySide:
| |
| * Bug tracker: https://bugreports.qt.io/browse/PYSIDE
| |
| * CodeReview: https://codereview.qt-project.org
| |
| * Git repo: ssh://codereview.qt-project.org/pyside/pyside-setup (dev branch is Pyside2)
| |
| | |
| === Getting started ===
| |
| | |
| [[PySide2_GettingStarted|Getting started with PySide2]] | |
| | |
| === Backlog ===
| |
| | |
| The list below represents some short term targets and long term ideas for Pyside2 development. There is no guarantee that this will happen as written down. It is meant as a short reminder and idea collection for future development. In the long term this list is likely to move to https://bugreports.qt.io/browse/PYSIDE.
| |
| | |
| # First time with Pyside (Document how to get started on this wiki)
| |
| # Testing Infrastructure
| |
| ## What has been done so far?
| |
| ## Qt CI support (PYSIDE-431)
| |
| ### make test
| |
| ### cmake based build system (all repos)
| |
| ### pip installable Pyside
| |
| #### CI has to setup virtual Python environment
| |
| #### Use pip to install/build Pyside
| |
| # Future changes to PySide
| |
| ## Gaps (modules & API)
| |
| ### Identify the extent of the gaps by porting existing examples from Qt4 to Qt5 (done)
| |
| ### Plugin system (in what form or shape do we need it is uncertain - some failing tests exist already)
| |
| ### Prepare a summary of gaps for other modules
| |
| ## Fundamental Architecture changes
| |
| ### Shiboken
| |
| #### Clang support (PYSIDE-323)
| |
| ### QtQML support (PYSIDE-355)
| |
| ## MyPy (type annotation - fully typed Python API)
| |
| ## General Python features and their adoption in PySide (e.g. Async I/O)
| |
| ## Creator and tooling
| |
| ### Fix QtC debugger to understand Python/C++ mixed internals
| |
| | |
| === Pyside Development Progress Notes ===
| |
| | |
| The most current view of the progress can be found in Jira:
| |
| | |
| # [https://bugreports.qt.io/secure/IssueNavigator.jspa?mode=hide&requestId=17825 Unresolved issues]
| |
| # [https://bugreports.qt.io/secure/IssueNavigator.jspa?mode=hide&requestId=18025 All issues (including resolved)]
| |
| | |
| The second link is useful to monitor the progress of the backlog. The best way to achieve this is to sort the list by the "Updated" column.
| |
| Larger backlog/feature items are filed as "User Stories" in Jira.
| |
| | |
| ==== 12 January 2017 ====
| |
| - PYSIDE-315
| |
| - sorting of slots/signal connection changed on Qt side and Pyside side has not caught up
| |
| - had similar connection issues on the QML side, need to investigate whether there is a connection
| |
| - PYSIDE-79
| |
| - caused a regressions (not yet investigated)
| |
| - fixed OpenGL types not being recognized on MacOS (partly fixed)
| |
| - API's with shared/smart pointers in Qt don't work
| |
| - has potential long term effects and investigation has started into the reasons
| |
| - Refactoring shiboken in preparation for clang
| |
| - COIN currently runs tests with namespaced Qt
| |
| - short term fix to exclude namespaced Qt builds with Pyside (broken on MacOS 10.9)
| |
| - other failures: missing libraries on MacOS (10.11), missing provisioning on Windows, cmake issues on 10.10
| |
| - unknown state on Linux (current Redhat too old)
| |
| - Prioritization after status round:
| |
| - PYSIDE-315 to be investigated based on recend signal/slot patches for QML
| |
| - Smart pointer issues reduced in priority to provide space for PYSIDE-315 & PYSIDE-79 regression
| |
| - verify that COIN runs testrunner (not just building Pyside)
| |
| -> not yet verified since we are still failing builds in COIN
| |
| | |
| ==== 5 January 2017 ====
| |
| - COIN update
| |
| - COIN changes merged (no further patches pending)
| |
| - need to run an integration test
| |
| - issues related to different build platforms still to be expected
| |
| - Continue with clang
| |
| - backtracking a bit (reusing some node API's during parsing but otherwise use clang to populate the tree)
| |
| - test blacklisting reviewed (some removed - mostly signal related ones, one new regression)
| |
| - regressions in QtQuick were worked around (caused by recent Qt Quick changes)
| |
| - issues with macos framework style includes in Qt
| |
| - PYSIDE-315 debugging ongoing, very hard to track down
| |
| - was it a regression from a previous Pyside release (e.g. Qt 5.4?!?
| |
| - hard-copied Qt 5.4 based headers still in existence
| |
| - updated needed but would shut Qt 5.4 users out
| |
| | |
| ==== 22 December 2016 ====
| |
| - lots of discussions around the COIN patches
| |
| - source archive setup being under review
| |
| - Qt 5.6 provisioning patches merged
| |
| - CI uses Python 2.7 at this stage
| |
| - clang C++ parsing continues
| |
| - fix of some Pyside unit tests (now have a clean slate again)
| |
| - finished QtQuick port
| |
| - some overflow problems have been fixed in shiboken
| |
| | |
| ==== 15 December 2016 ====
| |
| - COIN changes pending for testing infrastructure
| |
| -> https://codereview.qt-project.org/177136 (Pyside change)
| |
| -> https://codereview.qt-project.org/176968 (Coin change)
| |
| -> https://codereview.qt-project.org/179662 (Provisioning changes)
| |
| -> https://codereview.qt-project.org/179663 (Provisioning changes)
| |
| - waiting for COIN development team to review/accept the pending changes
| |
| - no update in PYSIDE-315 (under investigation)
| |
| - Flushed out a couple of shiboken, QML, qml example bugs
| |
| - Some bugs related to parser delayed until clang parser task done (https://bugreports.qt.io/browse/PYSIDE-322)
| |
| - most basic shiboken API extractor test to pass (global enumeration test)
| |
| - some trouble with int size data types
| |
| -> Python 2 & 3 are different and the relevant C++ data types are yet again different from platform to platform
| |
| | |
| ==== 8 December 2016 ====
| |
| - COIN patches pending approval
| |
| - Windows provisioning reviewed
| |
| - Linux, Pyside, COIN itself
| |
| - Clang changes progressing, comparing AST tree from old parser and clang
| |
| - PYSIDE-79 done
| |
| - PYSIDE-315 under investigation
| |
| - QtQuick patches taking shape (some template magic and function pointer
| |
| features in Qt cannot be parsed by shiboken)
| |
| | |
| ==== 1 December 2016 ====
| |
| - COIN
| |
| - PYSIDE-79 there seems to be a final work around (https://codereview.qt-project.org/#/c/176374/)
| |
| - fixing a few tests in the process
| |
| - clang update
| |
| - dumping AST, identifying the required info
| |
| - work in progress...
| |
| - problems with global static QObjects on the Qt side calling back into Python during app exit
| |
| - may require some changes on the Qt side
| |
| | |
| ==== 24 November 2016 ====
| |
| - automatic COIN triggering for submodules work in progress
| |
| - several discussions on this topic this week
| |
| - Clang investigation (what library to use)
| |
| - fixing bugs on Qt side for Pyside
| |
| - Qt QML support almost done, work will continue with Qt Quick
| |
| - PYSIDE-79 work story continues
| |
| - reference counting not quite accurate but point of deallocation of ref count not identifiable
| |
| | |
| ==== 17 November 2016 ====
| |
| - Pyside team suffering from sickness -> not much progress this week
| |
| - Pyside-79 fix had a lot of negative side effects (breaking existing tests)
| |
| - internal object reference counting is the predominant issue at hand
| |
| - continue to work on the bug (no resolution yet as delayed due to sickness)
| |
| - COIN some progress but still open discussions on branching policy required
| |
| | |
| ==== 11 November 2016 ====
| |
| - PYSIDE-79 being fixed
| |
| - PYSIDE-315 to be addressed
| |
| - Shiboken and Clang
| |
| - familiarizing with clang and its parser's inner working
| |
| - added experimental qmake project definition for shiboken (makes work in Qt Creator easier)
| |
| - Qt QML on Pyside work progressing
| |
| - work on COIN did not progress due to conflicting priorities inside COIN development
| |
| | |
| ==== 3 November 2016 ====
| |
| - working through the QML stack esnuring all required API's are exported (https://codereview.qt-project.org/#/c/175682/)
| |
| - small build system patches
| |
| - PYSIDE-79 work progressing
| |
| - OpenGL support fixed (PYSIDE-314)
| |
| - COIN issues
| |
| - repo interdepencies not working yet, suggestion under discussion and to be implemented
| |
| - most license checks have been fixed
| |
| - Qt 5.6 based Pyside to skip check
| |
| - after branching for C++11 work the dev branch should work from license check perspective
| |
| - eventually the entire CI needs to run through (more hidden problems could be hidden)
| |
| - Started working on C++11 compliant parser for shiboken
| |
| - libclang will be used
| |
| - first target is to replace the AST tree implementation
| |
| - requires clang setup in the CI
| |
| | |
| ==== 27 October 2016 ====
| |
| - Work on WebKit/WebEngine support
| |
| - Further work on [https://bugreports.qt.io/browse/PYSIDE-431 COIN] support
| |
| - Planning meeting
| |
| - Workshop for C++11 support in Pyside ([https://bugreports.qt.io/browse/PYSIDE-323 PYSIDE-323])
| |
| | |
| ==== 20 October 2016 ====
| |
| - [https://bugreports.qt.io/browse/PYSIDE-355 Qt Quick support] submitted
| |
| - [https://bugreports.qt.io/browse/PYSIDE-314 QtOpenGL support] submitted
| |
| - Further work on [https://bugreports.qt.io/browse/PYSIDE-431 COIN] support, license headers
| |
| ==== 13 October 2016 ====
| |
| - Qt CI update
| |
| - Coin changes have merged but integration not yet working
| |
| - Qt CI enables on Pyside side merged
| |
| => COIN integration fails with license issues
| |
| => requires review of license conditions for all files, some files are not even relicensable
| |
| => skipping license check for now, most likely to be done later again but requires changes to license check script
| |
| - more issues of interworking between QtCI and Pyside expected (won't be visible until license problems resolved)
| |
| Open issue: does a change in Pyside repo trigger a rebuild of everything?
| |
| - Qt QML support progressing and first patches merged
| |
| - serious bugs have been fixed, more complex QML examples are now working
| |
| | |
| ==== 29 September 2016 ====
| |
| - Coin integration close but not merged
| |
| - Bugfixing in particular on the shiboken parser side
| |
| - QML/Python binding and tests fixed -> general check all day-to-day aspects of QML are working
| |
| - QML examples porting
| |
| -> still some failing tests
| |
| -> Check all QML/Quick class are exported
| |
| | |
| ==== 22 September 2016 ====
| |
| - Refactored Shiboken, udnerstanding build sequences
| |
| - black list for unit tests defined and tested
| |
| - fixing of tests
| |
| - QML example fixing continued (QML bindings not working)
| |
| - Pyside side for COIN done (pending integration checks)
| |
| - COIN integration still wip due to long test and retest cycles
| |
| - pyside and shiboken repo to be relicensed similar to other Qt products
| |
| => this should address any issues regarding the status of generated code too
| |
|
| |
| ==== 16 September 2016 ====
| |
| - Pyside side for CI testing ready for testing
| |
| - status of COIN side to be determined. Code exists need help from CI team to confirm status.
| |
| - build system infrastructure improvements in pyside setup
| |
| - Qt logging now working
| |
| - and more
| |
| - Update on bug handling
| |
| - PYSIDE-88 continuing
| |
| - PYSIDE-349 (Multimedia ported)
| |
| - PYSIDE-344 fix pending on codereview
| |
| - make debug builds of Pyside work (OSX works, Linux has work in progress patch, Windows side awaiting contribution)
| |
| - QML support work in progress
| |
| - examples are slowly ported with aim to identify bugs
| |
| | |
| ==== 25 August 2016 ====
| |
| - Properly implementing QML experience in Pyside
| |
| - Unit test fixing
| |
| - automated CI testing for Pyside
| |
| - working locally but still failures occurring on various other test machines
| |
| | |
| ==== 4 August 2016 ====
| |
| - Additional Pyside examples under review
| |
| - Fixed warnings coming from Shiboken
| |
| | |
| ==== 21 July 2016 ====
| |
| | |
| - main Pyside 2 example port done
| |
| - additional examples to fill gaps are being ported (as per prio list)
| |
| - CI patches running, but still gaps (should be done by next week)
| |
| - about 86% of auto test working (failing count of test 80+ auto test)
| |
| - [[pyside-Teststatus|Project Test Status]]
| |
| | |
| ==== 14 July 2016 ====
| |
| | |
| - Pyside 2 examples ported
| |
| - OpenGL & SVG not working
| |
| - QtQuick 2 is in strange situation (QtQml depends on QtQuick)
| |
| - Python 3 realed Unicode handling not working with Qt
| |
| - QMessageBox hangs
| |
| - no documentation for any example
| |
| - lots of warnings when building wrapper
| |
| - results: https://paste.kde.org/pgje2toyh/mlbqic
| |
| - COIN setup for pyside https://codereview.qt-project.org/#/c/158336/
| |
| - Qt 5.7 still blocked due to missing C++11 support in shiboken
| |
| - food for ideas: https://steveire.wordpress.com/
| |
| | |
| | |
| ==== 7 July 2016 ====
| |
| | |
| - automated CI testing
| |
| - patches for Pyside and Qt CI side required
| |
| - Testing somewhat more complicated due to closed nature of Qt CI
| |
| - script to port examples to Qt 5 -> https://bugreports.qt.io/issues/?jql=labels%20%3D%20exampleport5
| |
| - all examples to remain BSD licensed
| |