Qt for Python Development Notes

From Qt Wiki
Revision as of 08:04, 23 February 2018 by CristianMaureiraFredes (talk | contribs) (logs on a different wiki page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

2018

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