Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.

PySide2: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
(Redirected page to Qt for Python)
 
(132 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.
 
==== 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

Latest revision as of 11:09, 18 April 2018

Redirect to: