Qt for Python Development Notes: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Correct indentation)
Line 46: Line 46:
   - Testing information to be collected in wiki
   - Testing information to be collected in wiki
  - Documentation
  - Documentation
  - QML advanced tutorial documentation updated
  - QML advanced tutorial documentation updated
  - Landing page in the works
  - Landing page in the works
  - snapshot still delayed by other qdoc bugs
  - snapshot still delayed by other qdoc bugs
  - style sheet update considered
  - style sheet update considered
  - so far only dealt with class docs, started to include unrelated doc pages
  - so far only dealt with class docs, started to include unrelated doc pages
  - snapshot testing (angle & webengine not properly packaged on Windows)
  - snapshot testing (angle & webengine not properly packaged on Windows)
  - enum support improved (dealing with scoped enums and enum values)
  - enum support improved (dealing with scoped enums and enum values)
Line 85: Line 85:
  - Participation in Python User Group meeting in Berlin (https://www.meetup.com/Python-Users-Berlin-PUB/events/xhqwhpyxfblb/)
  - Participation in Python User Group meeting in Berlin (https://www.meetup.com/Python-Users-Berlin-PUB/events/xhqwhpyxfblb/)
  - [https://bugreports.qt.io/browse/PYSIDE-595 PYSIDE-595] - Heap Type conversions ongoing
  - [https://bugreports.qt.io/browse/PYSIDE-595 PYSIDE-595] - Heap Type conversions ongoing
   - test bed created for easier development
   - test bed created for easier development
  - [https://bugreports.qt.io/browse/PYSIDE-363 Documentation]
  - [https://bugreports.qt.io/browse/PYSIDE-363 Documentation]
   -> Managed to make libxml, libxsl an optional dependency falling back to QtXmlPatterns (despite [https://bugreports.qt.io/browse/QTBUG-66925 QTBUG-66925])
   -> Managed to make libxml, libxsl an optional dependency falling back to QtXmlPatterns (despite [https://bugreports.qt.io/browse/QTBUG-66925 QTBUG-66925])
Line 105: Line 105:
   - PySide2 versioning (current proposal WIP patch at https://codereview.qt-project.org/#/c/221767/)
   - PySide2 versioning (current proposal WIP patch at https://codereview.qt-project.org/#/c/221767/)
     - Do official releases follow Qt branch names? -  
     - Do official releases follow Qt branch names? -  
        -> yes (minor release of Pyside is bound to same minor release of Qt
      -> yes (minor release of Pyside is bound to same minor release of Qt
        -> patch level version may differ
      -> patch level version may differ
     - Will we have snapshots, and if so, will they be uploaded to pip? How will we handle snapshot versions?
     - Will we have snapshots, and if so, will they be uploaded to pip? How will we handle snapshot versions?
        -> tentative yes, if public pip server supports snapshots Pyside should be good citizen
      -> tentative yes, if public pip server supports snapshots Pyside should be good citizen
     - alpha / beta / RC versioning?
     - alpha / beta / RC versioning?
        -> Pyside should follow the Qt schema
      -> Pyside should follow the Qt schema
     - Probably need to take into account PEPs for versions pushed to Pypi.
     - Probably need to take into account PEPs for versions pushed to Pypi.
     - Shiboken / PySide2 versions in sync?
     - Shiboken / PySide2 versions in sync?
        -> yes, they should be in sync
      -> yes, they should be in sync
     - Will we specify a version for 5.6 branch?
     - Will we specify a version for 5.6 branch?
        -> yes, but no packages being made
      -> yes, but no packages being made
     - Are we sticking to the package name PySide2, but follow Qt 5.x versions as PySide2 versions?
     - Are we sticking to the package name PySide2, but follow Qt 5.x versions as PySide2 versions?
        -> Pyside2_5.11.0 as in https://codereview.qt-project.org/#/c/221767/
      -> Pyside2_5.11.0 as in https://codereview.qt-project.org/#/c/221767/
   - Do we want to deploy msvcrt dlls into Windows packages?
   - Do we want to deploy msvcrt dlls into Windows packages?
     -> needs more research - is it really needed ?
     -> needs more research - is it really needed ?
Line 139: Line 139:
  - Numerous small fixes to the [https://bugreports.qt.io/browse/PYSIDE-363 doc] generation, significantly bringing down the number of documentation warnings
  - Numerous small fixes to the [https://bugreports.qt.io/browse/PYSIDE-363 doc] generation, significantly bringing down the number of documentation warnings
  - Massaged build rules to improve built packages
  - Massaged build rules to improve built packages
    - Removed unnecessary _utils.py file [https://bugreports.qt.io/browse/PYSIDE-600 PYSIDE-600]
  - Removed unnecessary _utils.py file [https://bugreports.qt.io/browse/PYSIDE-600 PYSIDE-600]
    - Changed wheel package names to contain both PySide2 version and Qt version against which it was built [https://bugreports.qt.io/browse/PYSIDE-613 PYSIDE-613]
  - Changed wheel package names to contain both PySide2 version and Qt version against which it was built [https://bugreports.qt.io/browse/PYSIDE-613 PYSIDE-613]
    - Finally got libclang to be deployed into packages
  - Finally got libclang to be deployed into packages
    - Improved build process not to copy unnecessary symlinks and duplicating libraries when creating wheel (so that you don't get 3x size increase because of 3x number of WebEngine libraries) [https://bugreports.qt.io/browse/PYSIDE-495 PYSIDE-495]
  - Improved build process not to copy unnecessary symlinks and duplicating libraries when creating wheel (so that you don't get 3x size increase because of 3x number of WebEngine libraries) [https://bugreports.qt.io/browse/PYSIDE-495 PYSIDE-495]
    - Fixed wheel package names to contain correct minimum deployment target with which macOS was built with (on further analysis, this will need further improvement) [https://bugreports.qt.io/browse/PYSIDE-612 PYSIDE-612]
  - Fixed wheel package names to contain correct minimum deployment target with which macOS was built with (on further analysis, this will need further improvement) [https://bugreports.qt.io/browse/PYSIDE-612 PYSIDE-612]
    - Fixed rpath handling for QtWebEngineProcess when creating standalone packages on macOS [https://bugreports.qt.io/browse/PYSIDE-605 PYSIDE-605]
  - Fixed rpath handling for QtWebEngineProcess when creating standalone packages on macOS [https://bugreports.qt.io/browse/PYSIDE-605 PYSIDE-605]
  - Added CMake build rules for scriptable application example [https://bugreports.qt.io/browse/PYSIDE-597 PYSIDE-597]
  - Added CMake build rules for scriptable application example [https://bugreports.qt.io/browse/PYSIDE-597 PYSIDE-597]
  - Investigated and fixed a heap corruption bug in a test that caused constant crashes on macOS CI runs
  - Investigated and fixed a heap corruption bug in a test that caused constant crashes on macOS CI runs
Line 165: Line 165:
  - Looking through previous EuroPython talks to write a proposal for this year.           
  - Looking through previous EuroPython talks to write a proposal for this year.           
  - Working on a few bugs (fixed a couple related to objects references),                 
  - Working on a few bugs (fixed a couple related to objects references),                 
    - that sadly will open new issues with memory management. A further analysis on this matter could improve the current memory leaks on PySide.                           
  - that sadly will open new issues with memory management. A further analysis on this matter could improve the current memory leaks on PySide.                           
  - Trying to "organise" a little the typesystem XML files.                               
  - Trying to "organise" a little the typesystem XML files.                               
  - Working on [https://bugreports.qt.io/browse/PYSIDE-104 PYSIDE-104] that ended up being a general issue on PySide about a proper verification between slots and signals arguments, to find the best match.
  - Working on [https://bugreports.qt.io/browse/PYSIDE-104 PYSIDE-104] that ended up being a general issue on PySide about a proper verification between slots and signals arguments, to find the best match.
Line 220: Line 220:
  - Handling libICU issues (causing linker issues when importing QtCore)
  - Handling libICU issues (causing linker issues when importing QtCore)
  - Continued work on [https://bugreports.qt.io/browse/PYSIDE-560 PYSIDE-560]
  - Continued work on [https://bugreports.qt.io/browse/PYSIDE-560 PYSIDE-560]
-


==== 18. January 2018 ====
==== 18. January 2018 ====
Line 249: Line 248:
   -> do we need commercial for release
   -> do we need commercial for release
  - pysinstaller is an installer  
  - pysinstaller is an installer  
    -> deployqt tool not necessary
  -> deployqt tool not necessary
    -> documentation required stating the option
  -> documentation required stating the option
  - rename import options
  - rename import options
   - rename via alias possible  
   - rename via alias possible  
Line 266: Line 265:


==== 4. January 2018 ====
==== 4. January 2018 ====
  - multi pyside packages (not easy to do)
- multi pyside packages (not easy to do)
  - renaming Pyside to "Qt for Python"
- renaming Pyside to "Qt for Python"
    - quite challenging due to implied import and lib changes
  - quite challenging due to implied import and lib changes
    - alias for existing imports would be beneficial
  - alias for existing imports would be beneficial
  - discussion around existing function test
- discussion around existing function test
    -> working assumption is that we ignore added function and check for existing base line only
  -> working assumption is that we ignore added function and check for existing base line only
    -> effort too large to maintain every single new addition
  -> effort too large to maintain every single new addition
  - discussed issues around concurrent existing Qt builds while building pyside (potential cross leakage)
- discussed issues around concurrent existing Qt builds while building pyside (potential cross leakage)
  - various fixes to doc generation steps (see [https://bugreports.qt.io/browse/PYSIDE-363 PYSIDE-363])
- various fixes to doc generation steps (see [https://bugreports.qt.io/browse/PYSIDE-363 PYSIDE-363])
  - discussed need for good examples as part of documentation
- discussed need for good examples as part of documentation
    -> considered options to cleanup and remove need for submodule
  -> considered options to cleanup and remove need for submodule


== 2017 ==  
== 2017 ==  
Line 290: Line 289:
   - seems to work almost out-of-the-box for deploying PySide apps
   - seems to work almost out-of-the-box for deploying PySide apps
  - Investigated building one package compatible with multiple Python 3.x minor versions
  - Investigated building one package compatible with multiple Python 3.x minor versions
  - not possible currently, will require a lot of work, possibly not feasible
  - not possible currently, will require a lot of work, possibly not feasible
  => we need to build 3.4,3.5,3.6 * win, linux, mac packages = 9 packages
  => we need to build 3.4,3.5,3.6 * win, linux, mac packages = 9 packages
  => 3 more for each platform and Python 2.x
  => 3 more for each platform and Python 2.x
  => commercial packages?
  => commercial packages?
  - lots of discussions and fixing of doc tool chain (qdoc in dev currently broken)
  - lots of discussions and fixing of doc tool chain (qdoc in dev currently broken)
  - adding documentation has begun in earnest
  - adding documentation has begun in earnest
  - continued work on PYSIDE-578
  - continued work on PYSIDE-578


Line 367: Line 366:
   - adopting the scripts from Qt for Pyside
   - adopting the scripts from Qt for Pyside
   - made pip install work on Mac -> would be alternative to online installer approach
   - made pip install work on Mac -> would be alternative to online installer approach
      - two deployment choices available
    - two deployment choices available
  - discussions on how void* pointer should be handled, two options on the table
  - discussions on how void* pointer should be handled, two options on the table
   - add additional Pyside module handling such pointers
   - add additional Pyside module handling such pointers
Line 432: Line 431:
   - 5.6 testing is back online (5.9 target unblocking pending a merge)
   - 5.6 testing is back online (5.9 target unblocking pending a merge)
   - Packaging of Pyside started to become a discussion topic
   - Packaging of Pyside started to become a discussion topic
      - Standard PIP deployment
    - Standard PIP deployment
      - Separate delivery via the usual Qt account channel
    - Separate delivery via the usual Qt account channel
  - void* support has a pending patch (https://codereview.qt-project.org/#/c/205124/ and related example https://codereview.qt-project.org/#/c/205272/)
  - void* support has a pending patch (https://codereview.qt-project.org/#/c/205124/ and related example https://codereview.qt-project.org/#/c/205272/)
  - Documentation work ongoing
  - Documentation work ongoing
  - WebXML support was added to qdoc - see [https://bugreports.qt.io/browse/PYSIDE-363 PYSIDE-363]
  - WebXML support was added to qdoc - see [https://bugreports.qt.io/browse/PYSIDE-363 PYSIDE-363]
  - inputting the resulting WebXML to shiboken gave promising results
  - inputting the resulting WebXML to shiboken gave promising results
  - Qt Creator gain ability to fold away Python license headers  
  - Qt Creator gain ability to fold away Python license headers  
  - Signature patch (https://codereview.qt-project.org/#/c/198654/)
  - Signature patch (https://codereview.qt-project.org/#/c/198654/)


Line 495: Line 494:
==== 03. August 2017 ====
==== 03. August 2017 ====
  - PYSIDE-510 under code review https://codereview.qt-project.org/198654
  - PYSIDE-510 under code review https://codereview.qt-project.org/198654
  - > license issues have to be addressed
  -> license issues have to be addressed
  - > some testing aspects still open (delayed till later on)
  -> some testing aspects still open (delayed till later on)
  - > investigation of impact on deployment across multiple python run-time versions required
  -> investigation of impact on deployment across multiple python run-time versions required
  - missing bindings script/wiki page updated: [[PySide2_Missing_Bindings|Missing PySide2 bindings]]
  - missing bindings script/wiki page updated: [[PySide2_Missing_Bindings|Missing PySide2 bindings]]
  - first working array support has been delivered (some adjustments still required), now proceeding to extend for OpenGL [https://bugreports.qt.io/browse/PYSIDE-516 PYSIDE-516]
  - first working array support has been delivered (some adjustments still required), now proceeding to extend for OpenGL [https://bugreports.qt.io/browse/PYSIDE-516 PYSIDE-516]
  - Missing classes in works (e.g. QAbstractnativeEventFilter, QFileLock,....)
  - Missing classes in works (e.g. QAbstractnativeEventFilter, QFileLock,....)
  - > revealed some issues of handling void* pointers
  -> revealed some issues of handling void* pointers


==== 27. July 2017 ====
==== 27. July 2017 ====
Line 586: Line 585:
  - PYSIDE-500
  - PYSIDE-500
  - https://wiki.qt.io/PySide2_GettingStarted needs a serious cleanup
  - https://wiki.qt.io/PySide2_GettingStarted needs a serious cleanup
  - 5.6 vs 5.9 differences not explained
  - 5.6 vs 5.9 differences not explained
  - specify exact version matching conditions
  - specify exact version matching conditions
  - pyside repo merge completed
  - pyside repo merge completed
   - Coin changes required to catchup - > recent CI issues have caused delay
   - Coin changes required to catchup - > recent CI issues have caused delay
Line 616: Line 615:
   -> new approach required using exiting Qt5 doc tools
   -> new approach required using exiting Qt5 doc tools
  - QOpenGL* port to Pyside has started -> missing support for arrays in shiboken
  - QOpenGL* port to Pyside has started -> missing support for arrays in shiboken
  - more thorough design discussion needed
  - more thorough design discussion needed
  - Coin
  - Coin
  - provisioning for clang in Qt CI ongoing: https://codereview.qt-project.org/#/c/192517/10
  - provisioning for clang in Qt CI ongoing: https://codereview.qt-project.org/#/c/192517/10


==== 04. May 2017 ====
==== 04. May 2017 ====
Line 638: Line 637:
  - PYSIDE-507 -> avoid hardcoded includes when certain Qt modules are not available
  - PYSIDE-507 -> avoid hardcoded includes when certain Qt modules are not available
  - brief discussion whether to merge the shiboken and pyside repo
  - brief discussion whether to merge the shiboken and pyside repo
  -> advantages from a CI perspective and reduces pyside setup complexity
  -> advantages from a CI perspective and reduces pyside setup complexity


==== 26. April 2017 ====
==== 26. April 2017 ====
Line 668: Line 667:
  - 5.9 branch to be created as well (easier setup for Qt 5.9 testing in Coin)
  - 5.9 branch to be created as well (easier setup for Qt 5.9 testing in Coin)
  - Coin
  - Coin
    - not passing build platforms have been disabled
  - not passing build platforms have been disabled
    - otherwise COIN passing on 5.6 (except for 2 failing test) -> soon to be enforced
  - otherwise COIN passing on 5.6 (except for 2 failing test) -> soon to be enforced
    - license checker passing in dev
  - license checker passing in dev
  - clang changes merged to dev branch (after reviews)
  - clang changes merged to dev branch (after reviews)
   - clang provisioning on Coin still missing
   - clang provisioning on Coin still missing
Line 680: Line 679:
==== 30. March 2017 ====
==== 30. March 2017 ====
  - Coin
  - Coin
    - some platforms passing and will be enabled by default
  - some platforms passing and will be enabled by default
    - MinGW, some OSX and cross compile targets remain out
  - MinGW, some OSX and cross compile targets remain out
  - will branch pyside dev branches to 5.6, new dev becomes clang branch
  - will branch pyside dev branches to 5.6, new dev becomes clang branch
    - regular merges from 5.6 -> dev will start happening
  - regular merges from 5.6 -> dev will start happening
    - Pyside 5.6 branch will continue to work against Qt 5.6
  - Pyside 5.6 branch will continue to work against Qt 5.6
  - need reviews for [https://bugreports.qt.io/browse/PYSIDE-323 PYSIDE-323] to merge clang changes
  - need reviews for [https://bugreports.qt.io/browse/PYSIDE-323 PYSIDE-323] to merge clang changes
    - Qt 5.10, 5.9 (on main desktop plawtforms working)
  - Qt 5.10, 5.9 (on main desktop plawtforms working)
    - for now the Pyside dev development will be based on Qt 5.9 (to be bumped up later on)
  - for now the Pyside dev development will be based on Qt 5.9 (to be bumped up later on)
  - [PYSIDE-331] - in progress
  - [PYSIDE-331] - in progress
  - [PYSIDE-156] -  
  - [PYSIDE-156] -  
Line 738: Line 737:
  - clang
  - clang
   - preprocessor has remaining issue
   - preprocessor has remaining issue
      -> with clang compiler but gcc seems OK
    -> with clang compiler but gcc seems OK
      -> Qt Core wrapper close to compiling (QHash issues remaining)
    -> Qt Core wrapper close to compiling (QHash issues remaining)
  - Smart pointer work continues
  - Smart pointer work continues
   - some uses cases work, other use cases might remain
   - some uses cases work, other use cases might remain
Line 754: Line 753:
  - Clang: Fixed Preprocessor handling (set defines, include paths), got minimal binding tests to pass, now adapting MetaBuilder and PySide to what Clang finds when parsing Qt. Good news: Very little need to set Q_DOC or other magic defines
  - Clang: Fixed Preprocessor handling (set defines, include paths), got minimal binding tests to pass, now adapting MetaBuilder and PySide to what Clang finds when parsing Qt. Good news: Very little need to set Q_DOC or other magic defines
  - Coin: Slow progress, currently struggling with provisioning
  - Coin: Slow progress, currently struggling with provisioning
- extensive bug triaging ongoing in Pyside Jira project
- extensive bug triaging ongoing in Pyside Jira project


==== 16. February 2017 ====
==== 16. February 2017 ====
Line 771: Line 770:
   - deployment of pyside applications partly broken due to hard-coded install paths in Qt libs
   - deployment of pyside applications partly broken due to hard-coded install paths in Qt libs
   - Qt events are swallowed when Pyside error/exception occurs
   - Qt events are swallowed when Pyside error/exception occurs
-


==== 9. February 2017 ====
==== 9. February 2017 ====
Line 854: Line 852:
  - issues with macos framework style includes in Qt
  - issues with macos framework style includes in Qt
  - PYSIDE-315 debugging ongoing, very hard to track down
  - PYSIDE-315 debugging ongoing, very hard to track down
    - was it a regression from a previous Pyside release (e.g. Qt 5.4?!?
  - was it a regression from a previous Pyside release (e.g. Qt 5.4?!?
  - hard-copied Qt 5.4 based headers still in existence
  - hard-copied Qt 5.4 based headers still in existence
   - updated needed but would shut Qt 5.4 users out
   - updated needed but would shut Qt 5.4 users out
Line 874: Line 872:
==== 15 December 2016 ====
==== 15 December 2016 ====
  - COIN changes pending for testing infrastructure
  - COIN changes pending for testing infrastructure
    -> https://codereview.qt-project.org/177136 (Pyside change)
  -> https://codereview.qt-project.org/177136 (Pyside change)
    -> https://codereview.qt-project.org/176968 (Coin change)
  -> https://codereview.qt-project.org/176968 (Coin change)
    -> https://codereview.qt-project.org/179662 (Provisioning changes)
  -> https://codereview.qt-project.org/179662 (Provisioning changes)
    -> https://codereview.qt-project.org/179663 (Provisioning changes)
  -> https://codereview.qt-project.org/179663 (Provisioning changes)
  - waiting for COIN development team to review/accept the pending changes
  - waiting for COIN development team to review/accept the pending changes
  - no update in PYSIDE-315 (under investigation)
  - no update in PYSIDE-315 (under investigation)
Line 884: Line 882:
  - most basic shiboken API extractor test to pass (global enumeration test)
  - most basic shiboken API extractor test to pass (global enumeration test)
  - some trouble with int size data types
  - 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
  -> Python 2 & 3 are different and the relevant C++ data types are yet again different from platform to platform


==== 8 December 2016 ====
==== 8 December 2016 ====
Line 899: Line 897:
  - COIN  
  - COIN  
  - PYSIDE-79 there seems to be a final work around (https://codereview.qt-project.org/#/c/176374/)
  - PYSIDE-79 there seems to be a final work around (https://codereview.qt-project.org/#/c/176374/)
    - fixing a few tests in the process
  - fixing a few tests in the process
  - clang update
  - clang update
   - dumping AST, identifying the required info
   - dumping AST, identifying the required info
Line 937: Line 935:
  - OpenGL support fixed (PYSIDE-314)
  - OpenGL support fixed (PYSIDE-314)
  - COIN issues
  - COIN issues
    - repo interdepencies not working yet, suggestion under discussion and to be implemented
  - repo interdepencies not working yet, suggestion under discussion and to be implemented
    - most license checks have been fixed
  - most license checks have been fixed
    - Qt 5.6 based Pyside to skip check
  - Qt 5.6 based Pyside to skip check
    - after branching for C++11 work the dev branch should work from license check perspective
  - 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)
  - eventually the entire CI needs to run through (more hidden problems could be hidden)
  - Started working on C++11 compliant parser for shiboken
  - Started working on C++11 compliant parser for shiboken
    - libclang will be used
  - libclang will be used
    - first target is to replace the AST tree implementation
  - first target is to replace the AST tree implementation
    - requires clang setup in the CI
  - requires clang setup in the CI


==== 27 October 2016 ====
==== 27 October 2016 ====
Line 974: Line 972:
  - QML/Python binding and tests fixed -> general check all day-to-day aspects of QML are working
  - QML/Python binding and tests fixed -> general check all day-to-day aspects of QML are working
  - QML examples porting  
  - QML examples porting  
    -> still some failing tests
  -> still some failing tests
    -> Check all QML/Quick class are exported
  -> Check all QML/Quick class are exported


==== 22 September 2016 ====
==== 22 September 2016 ====
Line 1,031: Line 1,029:
  - COIN setup for pyside https://codereview.qt-project.org/#/c/158336/
  - COIN setup for pyside https://codereview.qt-project.org/#/c/158336/
  - Qt 5.7 still blocked due to missing C++11 support in shiboken
  - Qt 5.7 still blocked due to missing C++11 support in shiboken
    - food for ideas: https://steveire.wordpress.com/
  - food for ideas: https://steveire.wordpress.com/





Revision as of 11:28, 19 April 2018

2018

12. April 2018

- Getting Started guide under works by doc engineer
- focus on fixing coin on Mac & RedHat 7.4 (looks promising so far)
- shiboken documentation and diagrams being updated
  - old and unused docs dir shall be cleaned out
- Tab Browser example improved
- License page generated based on attribution files
- lots of discussion when to release Qt for Python TP
  - after Qt 5.11 release (scheduled for 31.5.) 
  - likely to be mid June (stay tuned)
- WebEngine issues
  - needs updated qt.conf files to be deployed for apps
- Heap types (work in progress)
- still more work in pipeline to get code PEP 384 ready (Heap types are prerequisite)
- Qt for Python blog posts being worked on

5. April 2018

- first doc snapshot is up and running: https://doc-snapshots.qt.io/qtforpython/
- more work to be done to automate generation of snapshots
- briefly talked about technical blog post opportunities
- pdb files from Windows wheels removed (reducing the wheel size)
- improving the tab browser example
- coin currently not accepting changes
  - currently lots of pending patches start to create backlog
- Heap type taking longer than expected
- qApp macro reference leaks finally resolved
- quite a few formatting changes to enforce a common coding style
- lots of smaller fixes

29. March 2018

- skipped due to Easter holidays

22. March 2018

- Release process (do we follow Qt?) 
  - Release manager provides packages
  - RTA testing to be setup -> for each package we run RTA
  - Request to be put on mailing list
  - Current Test setup proposal
    - Win10 (Python 3.6)
    - Linux (Python 3.6/2.7)
    - Mac (Python 3.6/2.7)
  - To be defined a test set (//TODO)
  - Testing information to be collected in wiki
- Documentation
  - QML advanced tutorial documentation updated
  - Landing page in the works
  - snapshot still delayed by other qdoc bugs
  - style sheet update considered
  - so far only dealt with class docs, started to include unrelated doc pages
- snapshot testing (angle & webengine not properly packaged on Windows)
- enum support improved (dealing with scoped enums and enum values)
- general bugfixing to increase stability and address mem leaks
- Talks to PyData submitted
- Qt Charts examples ported
- Proper support for QFlags being worked on
- PYSIDE-595 fixed
- PYSIDE-595 first heap type protoype under review proving that concept works
- PYSIDE-560 depends on PYSIDE-595
- CI side
  - coin did Python updates which temporarily broke Linux wheels
  - briefly discussed manylinux request on mailing list (Qt forms bottom line, no point to extend beyond scope of Qt)
  - final list of wheels for release (win, linux, mac) x 2 (2.7 & 3.x Python)

15. March 2018

- Fix to create 3.6 Linux wheels under review.
- Fix scriptableapplication build on Windows, and other small bugs.
- Two QtCharts examples were ported and abstracts were written to submit PyData talks
- Updating the QML advanced tutorial and adding index.rst and gettingstarted.rst
- Tried the wheel pkgs for python 27 on Linux. Works OK except the webengine example, which gives random crashes.
- Docs: PYSIDE-620 Shadow build issue fixed, fixed usage of deprecated Sphinx API, 
- Continued on PYSIDE-560, currently  Windows problem with Linkage
- Debugging on PYSIDE-595, final stages
- Fixed PYSIDE-258

08. March 2018

- msvcrt.dll to be shipped on Windows
- wheel snapshots are automatically generated
  - start with public availability under http://download.qt.io/snapshots/ci/
  - snapshots to public pypi server under discussions
- discussion on how to increase value of official pyside mailing list http://lists.qt-project.org/mailman/listinfo/pyside
- looking at build issues on Windows (improving error handling)
- Participation in Python User Group meeting in Berlin (https://www.meetup.com/Python-Users-Berlin-PUB/events/xhqwhpyxfblb/)
- PYSIDE-595 - Heap Type conversions ongoing
  - test bed created for easier development
- Documentation
  -> Managed to make libxml, libxsl an optional dependency falling back to QtXmlPatterns (despite QTBUG-66925)
  -> Small fixes to doc modifications
  -> Fix class inheritance diagrams for nested classes

01. March 2018

- automatic snapshot process almost in place (pending reviews) (RTA to follow)
- general bug fixing (including build and version problems)
- most community Pyside1 pages point to official Pyside 2 (Qt for Python) wiki pages
- PYSIDE-595 - Heap Type conversions ongoing
- documentation improving
  -> class diagrams being generated
  -> missing links and references
  -> dependencies to qdoc bugs
  -> snapshot process in works
- added support for scoped enums in pyside
- Important things discussed:
  - PySide2 versioning (current proposal WIP patch at https://codereview.qt-project.org/#/c/221767/)
    - Do official releases follow Qt branch names? - 
      -> yes (minor release of Pyside is bound to same minor release of Qt
      -> patch level version may differ
    - Will we have snapshots, and if so, will they be uploaded to pip? How will we handle snapshot versions?
      -> tentative yes, if public pip server supports snapshots Pyside should be good citizen
    - alpha / beta / RC versioning?
      -> Pyside should follow the Qt schema
    - Probably need to take into account PEPs for versions pushed to Pypi.
    - Shiboken / PySide2 versions in sync?
      -> yes, they should be in sync
    - Will we specify a version for 5.6 branch?
      -> yes, but no packages being made
    - Are we sticking to the package name PySide2, but follow Qt 5.x versions as PySide2 versions?
      -> Pyside2_5.11.0 as in https://codereview.qt-project.org/#/c/221767/
  - Do we want to deploy msvcrt dlls into Windows packages?
    -> needs more research - is it really needed ?
  - Do we want to ship debug symbols for Qt inside the PySide2 packages? 
    -> not for now
  - Do we want to ship debug Qt shared libraries for macOS packages? (not possible on Windows, not applicable on Linux afaik).
    -> not for now
  - How will the pip upload process look like? Manual uploads? Who takes care of it?
    -> Qt release team will take care of it
  - Current branching policies:
    -> 5.6 branch stops being merged into 5.9 (after pending patches have merged) -> cherry-pick mode
    -> 5.9 is base line for patches and being forward merged to 5.11
    -> no packages from 5.9 & 5.6 (interested parties need to get it from git)
    -> 5.11 becomes branch for first TP
    -> dev is feature development
    -> all first TP release related patches go to 5.9 (and 5.11 subsequently)

22. February 2018

- dev branch is still/again broken in CI, seems like pyside issues
- changes to create automatic snapshots out of CI is still under review
- Numerous small fixes to the doc generation, significantly bringing down the number of documentation warnings
- Massaged build rules to improve built packages
  - Removed unnecessary _utils.py file PYSIDE-600
  - Changed wheel package names to contain both PySide2 version and Qt version against which it was built PYSIDE-613
  - Finally got libclang to be deployed into packages
  - Improved build process not to copy unnecessary symlinks and duplicating libraries when creating wheel (so that you don't get 3x size increase because of 3x number of WebEngine libraries) PYSIDE-495
  - Fixed wheel package names to contain correct minimum deployment target with which macOS was built with (on further analysis, this will need further improvement) PYSIDE-612
  - Fixed rpath handling for QtWebEngineProcess when creating standalone packages on macOS PYSIDE-605
- Added CMake build rules for scriptable application example PYSIDE-597
- Investigated and fixed a heap corruption bug in a test that caused constant crashes on macOS CI runs
- Reduced number of warnings when running shiboken to create user bindings (like scriptable application example) PYSIDE-587
- PYSIDE-595: Making slow progress, still debugging. It's a difficult process, but assumption is that it will work.
- Havent's merge this new patch because we should be 200% sure it's properly working.
- Working on a few bugs PYSIDE-106 PYSIDE-570
- One of the bugs PYSIDE-611 was valid only for 5.6, but I noticed a strange behaviour on 5.9, so I will keep working on it, even after we move 5.6 to cherry pick mode.

15. February 2018

- CI broken, 5.6 & dev branch broken, 5.9 just got working again
- first TP will be 5.11 based (needs 5.11 git branches, 5.6 branch goes into cherry-pick mode, 5.9 branch remains main target)
- more modules added to doc, qt3d & qtquick has some special handling
- snippet work ongoing
- snapshot generation on the agenda
- lots of bug fixing e.g.: PYSIDE-104
- PYSIDE-560

8. February 2018

- Looking through previous EuroPython talks to write a proposal for this year.          
- Working on a few bugs (fixed a couple related to objects references),                 
  - that sadly will open new issues with memory management. A further analysis on this matter could improve the current memory leaks on PySide.                           
- Trying to "organise" a little the typesystem XML files.                               
- Working on PYSIDE-104 that ended up being a general issue on PySide about a proper verification between slots and signals arguments, to find the best match.
- Merged a few build related changes in 5.6
  - Pending change for PYSIDE-593
  - Pending change for PYSIDE-605
  - Merged changes for PYSIDE-603 and PYSIDE-604
- Investigated and attached minimal reproducible example for PYSIDE-585
- Investigated some macOS build related aspects for package release
- 5.6 CI is unblocked, but 5.9 CI is blocked due to qtbase issues (version bumping)
- PYSIDE-560 waiting for view
- PYSIDE-595 work ongoing, not ready yet
- PYSIDE-363  Documentation: Fixed images, fix handling of qdocconf files  that contain several modules. Looking at snippet resolution.
- Problems with Qt3D due to refactoring of Qt3Dextras in 5.10. Pushed  patch suggestion.

1. February 2018

- Continued work on documentation PYSIDE-363, fixed static pages, add more modules, fixed parameters to qdoc, images
- The GettingStarted wiki is getting better, besides a cleaning it a bit
  - moved the topics around to have guidelines by supported platform (a la Qt)
  - have received feedback and trying to add more information
- Addressed bugs:
  - PYSIDE-34
  - PYSIDE-264
  - cleaning a bit Shiboken's XML files.
  - PYSIDE-560
    - ported to 5.9, extended to 18 header files
    - solved unicode problem
    - reduced the patches to be minimal (avoid many #ifdef's, use a verbose macro name if possible)
    - made everything compile but one announced file: "object.h" depends on the heaptypes solution (PYSIDE-595). Removed WIP status,review pending.
  - PYSIDE-595
    - Started experimenting
    - turned out that the signature extension barfed because it could no longer find the type "__name__". The function PyType_Type.tp_new needs to be called to provide the "ht_name" attribute that is used in heaptypes.
- solving the attribution file issues.
- Pending patches to fix libICU issues
- Pending patches to fix OpenSSL issues PYSIDE-599
- Pending patches to deploy libclang library for shiboken
- Improved documentation about OpenSSL dependency
- Pending patches for cleaning up build scripts a bit (logging and refactoring)
- Pending patches to reduce barrage of warnings PYSIDE-587
- Pending patch for adding CMake build rules for the scriptable_application example (useful as a reference on how to use shiboken for custom bindings) PYSIDE-597
- Old 5.6 CI integration issue fix, but a new issue appeared that was fixed for 5.9 and dev, but still blocks 5.6
- Updated the qml basics tutorial

25. January 2018

- Pyside not renamed
- Releasing preparation
  - pip packages created by coin
  - Automated release testing (RTA) (installing pip, launching an example)
  - final selection of release package targets to be define closer to release (depending on current stable ABI work)
- Investigation doc issues when using prefix & shadow builds
- Need to identify prime demos/examples
- Started to rework Getting Started Guide wiki 
- Addressed cmake build issues
- Handling libICU issues (causing linker issues when importing QtCore)
- Continued work on PYSIDE-560

18. January 2018

 - macOS framework fix (should ignore qt4 system headers)
 - another patch on top to fix OpenGL integer types on mac / Linux (GLuint64, GLint64)
 - Fixed so that PySide 5.6/5.9 is not linked against the Python shared / static library (this was wrong because the symbols need to be picked up by the dynamic loader from the python interpreter itself). http://bugreports.qt.io/browse/PYSIDE-522 
 - Completed move of examples from pyside-examples.git to pyside-setup
 - added additional OpenGL2 core example
 - fixed testrunner (these silently failed since forever) https://codereview.qt-project.org/#/c/216732/
 - fixed issues whereby wrong QObject ctors were selected
 - removed webkit from Pyside2 build  
 - talk about Windows specific instructions for Getting Started Guide 
 - Qt3D issues in Qt 5.10 fixes
 - clazy warning fixes
 - Stable ABI work (started to convert implementations) (see PYSIDE-560)
   - requires adoption of HeapTypes
 - QML tutorial updates
 - Doc snapshots being prepared

11. January 2018

- multi pyside packages (not easy to do)
  - unlikely to achieve until TP
  - a package per python release (3.4, 3.5, 3.6, 2.7) 
  - package per platform (win 32bit|64bit, mac, linux)
  - long term task to convert to reduced Python API (to support multi 3x packages)
  => have to cut some targets: one 3x and 2.7 release
  -> create doc howto to encourage custom builds for not covered platform combo 
  -> do we need commercial for release
- pysinstaller is an installer 
  -> deployqt tool not necessary
  -> documentation required stating the option
- rename import options
  - rename via alias possible 
  -> still an issue when looking up particular types but probably manageable   
  - renaming option: Qt4Pyton, QtPy, QtPython, Python4Qt, Qt
- example shift
  - https://codereview.qt-project.org/#/c/215900/
- Basics for doc generation toolchain
- Issues where cmake picks up platform Qt references where it should use a Qt custom install
- Qt3D bindings still under progress
- PYSIDE-34 & PYSIDE-560 
- Documentation
  - minor doc fixes
  - documenting examples

4. January 2018

- multi pyside packages (not easy to do)
- renaming Pyside to "Qt for Python"
  - quite challenging due to implied import and lib changes
  - alias for existing imports would be beneficial
- discussion around existing function test
  -> working assumption is that we ignore added function and check for existing base line only
  -> effort too large to maintain every single new addition
- discussed issues around concurrent existing Qt builds while building pyside (potential cross leakage)
- various fixes to doc generation steps (see PYSIDE-363)
- discussed need for good examples as part of documentation
  -> considered options to cleanup and remove need for submodule

2017

2016

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.

  1. First time with Pyside (Document how to get started on this wiki)
  2. Testing Infrastructure
    1. What has been done so far?
    2. Qt CI support (PYSIDE-431)
      1. make test
      2. cmake based build system (all repos)
      3. pip installable Pyside
        1. CI has to setup virtual Python environment
        2. Use pip to install/build Pyside (release bundling)
  1. Future changes to PySide
    1. Gaps (modules & API)
      1. Identify the extent of the gaps by porting existing examples from Qt4 to Qt5 (done)
      2. Plugin system (in what form or shape do we need it is uncertain - some failing tests exist already)
      3. Prepare a summary of gaps for other modules
    2. Fundamental Architecture changes
      1. Shiboken
        1. Clang support (PYSIDE-323)
      2. QtQML support (PYSIDE-355)
    3. MyPy (type annotation - fully typed Python API)
    4. General Python features and their adoption in PySide (e.g. Async I/O)
    5. Creator and tooling
      1. Fix QtC debugger to understand Python/C++ mixed internals
    6. Documentation generation
    7. Deployment of apps
    8. Debugging support
  1. Must have tasks for first release
    1. Packaging (e.g. pip deployment? )
    2. Clarify Installer story
    3. Documentation
    4. Product placement decisions
      1. Licensing
      2. Naming
      3. etc
    5. Complete CI coverage