Qt for Python/Reporting Bugs: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
(Created page with "https://bugreports.qt.io/browse/PYSIDE Category:Qt for Python {{LangSwitch}} = Reporting bugs in Qt for Python = Bugs in Qt for Python can be reported at the [https://b...")
 
 
(19 intermediate revisions by 3 users not shown)
Line 1: Line 1:
https://bugreports.qt.io/browse/PYSIDE
[[Category:Qt for Python]]
[[Category:Qt for Python]]
{{LangSwitch}}
= Reporting bugs in Qt for Python =


Bugs in Qt for Python can be reported at the [https://bugreports.qt.io/browse/PYSIDE bug tracker].
Bugs in Qt for Python can be reported at the [https://bugreports.qt.io/browse/PYSIDE bug tracker].
The quality of the bug report can dramatically impact how likely it is that the bug will be fixed.
The quality of the bug report can dramatically impact how likely it is that the bug will be fixed.


We follow the same criteria than any Qt related bug, check [[Reporting_Bugs]] for more information.
We follow the same criteria than any Qt related bug, check the [[Reporting_Bugs| Qt Reporting Bugs]] page for more information.


== Step by step ==
== Step by step ==
Line 15: Line 10:
Here is a nutshell description of how to report a bug :
Here is a nutshell description of how to report a bug :


# Visit [http://bugreports.qt.io/browse/PYSIDE bugreports.qt.io/browse/PYSIDE].
# Visit [http://bugreports.qt.io/browse/PYSIDE bugreports.qt.io/browse/PYSIDE].
# If you don't have a Qt account, you should create a one (https://account.qt.io/).
# If you don't have a Qt account, you should create one (https://account.qt.io/).
# Use the "Quick Search" field in the top right to try to find any similar bugs, some times there are related bugs that could be complementary to your issue.
# Use the "Quick Search" field in the top right to try to find any similar bugs, some times there are related bugs that could be complementary to your issue.
#* Leave a comment with any additional info you have.
#* Leave a comment with any additional info you have.
Line 25: Line 20:
#* Type: Bug or Suggestion
#* Type: Bug or Suggestion
#* Component: Shiboken, Documentation or PySide
#* Component: Shiboken, Documentation or PySide
#* Description: Provide a detailed description of the issue
#* Description: Provide a detailed description of the issue (ideally a bullet list of steps to reproduce, indicating expected vs actual outcome)
#* Environment: Write your current environment configuration, OS, Python version, PySide2 version, etc.
#* Environment: Write your current environment configuration, OS, Python version, PySide6 version, etc.
#* Attachment: Please include a minimal reproducible  script.
#* Attachment: Please include a complete, minimal reproducible  script as a downloadable file attachment
 
== Guide lines ==
 
#* Please try to avoid images unless demonstrating a graphics issue; particularly paste code, logs and stack traces as text instead of screen shots (see  [https://jira.atlassian.com/secure/WikiRendererHelpAction.jspa?section=all Jira formatting] ). For stack traces, choose "Create full back  trace" from Qt Creator's context menu and paste that.
#* Please try to avoid videos unless demonstrating some graphics issue/behaviour; provide step by step textual instructions instead.
#* When attaching text files other than code, give them the suffix .txt. This way, they can be viewed in the browser.
 
== Considerations ==
 
First, please check whether the bug manifests in the most recent release of Qt for Python. If not, the issue was already reported.
 
PySide2 standard LTS has expired. It will not receive any changes with risk of regressions any more. Please don't report bugs against it any more. The current community release 5.15.10 supports Python 3.10 and building with clang 15; the upcoming community release 5.15.11 adds support for Python 3.11.
 
2nd, it could be the case that your issue is not a Qt for Python bug, but a Qt one which should be reported under the [https://bugreports.qt.io/projects/QTBUG QTBUG] project. Please make sure the bug is related to the Python bindings before submitting.
* Normally, Qt for Python bugs could expose some issues with Python directly.
* Some clear cases of Qt Bugs:
** Graphics (rendering issues) including Qt Quick/3D
** Styling/Style Sheets, style elements and dark mode
** Multimedia not properly playing some files
* If you encounter a missing binding, you also will encounter a Python error.
* On the other hand, when there is no clear error message, but some method does not work, this still could be a Qt for Python issue, but also a Qt bug.
If it is still not clear if your issue is from Qt or Qt for Python, please write a small Qt/C++ piece of code that can use the class/method you are having issues with,
to see if the problem persist, if it does, it is a Qt bug.
 
== Template for reproducer scripts ==
 
The following template code can be used for providing examples (attached as a '''file''' to the bug report, ideally named to reflect the bug number, eg. pyside1020.py):
 
'''Please use file attachments for the complete reproducers, do not paste their code inline.'''
 
<syntaxhighlight lang="python" line="line">
#!/usr/bin/env python
import sys
 
from PySide6.QtCore import QLibraryInfo, qVersion
from PySide6.QtWidgets import QApplication,QWidget
 
class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
 
if __name__ == '__main__':
    print('Python {}.{}.{} {}'.format(sys.version_info[0], sys.version_info[1],
                                      sys.version_info[2], sys.platform))
    print(QLibraryInfo.build())
    app = QApplication(sys.argv)
    window = Window()
    window.setWindowTitle(qVersion())
    window.show()
    sys.exit(app.exec())
</syntaxhighlight>
In case you want to point out a difference between 5.15 and 6, an import as follows can be used:
<syntaxhighlight lang="python" line="line">
try:
    from PySide6.QtCore import QLibraryInfo, qVersion
    from PySide6.QtWidgets import QApplication,QWidget
except ImportError:
    from PySide2.QtCore import QLibraryInfo, qVersion
    from PySide2.QtWidgets import QApplication,QWidget
</syntaxhighlight>

Latest revision as of 08:54, 10 April 2024


Bugs in Qt for Python can be reported at the bug tracker. The quality of the bug report can dramatically impact how likely it is that the bug will be fixed.

We follow the same criteria than any Qt related bug, check the Qt Reporting Bugs page for more information.

Step by step

Here is a nutshell description of how to report a bug :

  1. Visit bugreports.qt.io/browse/PYSIDE.
  2. If you don't have a Qt account, you should create one (https://account.qt.io/).
  3. Use the "Quick Search" field in the top right to try to find any similar bugs, some times there are related bugs that could be complementary to your issue.
    • Leave a comment with any additional info you have.
    • Click "Vote" — You will usually have a higher chance of having your bug fixed by voting on an already existing bug than creating a new one.
    • Add yourself as a watcher, if you want to track the progress of the bug via email.
  4. If you don't find a bug report which matches your issue, then click "Create New Issues", and fill out the fields.
    • Project: Qt for Python
    • Type: Bug or Suggestion
    • Component: Shiboken, Documentation or PySide
    • Description: Provide a detailed description of the issue (ideally a bullet list of steps to reproduce, indicating expected vs actual outcome)
    • Environment: Write your current environment configuration, OS, Python version, PySide6 version, etc.
    • Attachment: Please include a complete, minimal reproducible script as a downloadable file attachment

Guide lines

    • Please try to avoid images unless demonstrating a graphics issue; particularly paste code, logs and stack traces as text instead of screen shots (see Jira formatting ). For stack traces, choose "Create full back trace" from Qt Creator's context menu and paste that.
    • Please try to avoid videos unless demonstrating some graphics issue/behaviour; provide step by step textual instructions instead.
    • When attaching text files other than code, give them the suffix .txt. This way, they can be viewed in the browser.

Considerations

First, please check whether the bug manifests in the most recent release of Qt for Python. If not, the issue was already reported.

PySide2 standard LTS has expired. It will not receive any changes with risk of regressions any more. Please don't report bugs against it any more. The current community release 5.15.10 supports Python 3.10 and building with clang 15; the upcoming community release 5.15.11 adds support for Python 3.11.

2nd, it could be the case that your issue is not a Qt for Python bug, but a Qt one which should be reported under the QTBUG project. Please make sure the bug is related to the Python bindings before submitting.

  • Normally, Qt for Python bugs could expose some issues with Python directly.
  • Some clear cases of Qt Bugs:
    • Graphics (rendering issues) including Qt Quick/3D
    • Styling/Style Sheets, style elements and dark mode
    • Multimedia not properly playing some files
  • If you encounter a missing binding, you also will encounter a Python error.
  • On the other hand, when there is no clear error message, but some method does not work, this still could be a Qt for Python issue, but also a Qt bug.

If it is still not clear if your issue is from Qt or Qt for Python, please write a small Qt/C++ piece of code that can use the class/method you are having issues with, to see if the problem persist, if it does, it is a Qt bug.

Template for reproducer scripts

The following template code can be used for providing examples (attached as a file to the bug report, ideally named to reflect the bug number, eg. pyside1020.py):

Please use file attachments for the complete reproducers, do not paste their code inline.

#!/usr/bin/env python
import sys

from PySide6.QtCore import QLibraryInfo, qVersion
from PySide6.QtWidgets import QApplication,QWidget

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()

if __name__ == '__main__':
    print('Python {}.{}.{} {}'.format(sys.version_info[0], sys.version_info[1], 
                                      sys.version_info[2], sys.platform))
    print(QLibraryInfo.build())
    app = QApplication(sys.argv)
    window = Window()
    window.setWindowTitle(qVersion())
    window.show()
    sys.exit(app.exec())

In case you want to point out a difference between 5.15 and 6, an import as follows can be used:

try:
    from PySide6.QtCore import QLibraryInfo, qVersion
    from PySide6.QtWidgets import QApplication,QWidget
except ImportError:
    from PySide2.QtCore import QLibraryInfo, qVersion
    from PySide2.QtWidgets import QApplication,QWidget