aboutsummaryrefslogtreecommitdiffstats
path: root/tools
Commit message (Collapse)AuthorAgeFilesLines
* create_changelog: add option to exclude pick-toCristian Maureira-Fredes2021-05-121-1/+26
| | | | | | | | | | | | | | | | | | | | This enables the option '-e/--exclude' to skip all the sha1 related to commits that have been already picked to another previous version. The motivation comes to be able to generate the changelog for 6.1, which comes from the dev branch that already have many patches that are already cherry picked to previous releases. The logic is the following: - A: Get sha1 from the latest previous non-minor release to the new minor-release: origin/6.0.3 and origin/6.1 (created) - B: Get all the commits from there that have a 'Pick-to' entry - Use the remaining sha1 from: A - B Change-Id: I1e1fb5c225c13180dc15ea3e92ce4a641f6455f2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add a testing tool for uicFriedemann Kleint2021-05-011-0/+123
| | | | | | | Pick-to: 5.15 Task-number: PYSIDE-1404 Change-Id: Ie7722933b48228bd5a32c16a0c22f76f6dd37c6c Reviewed-by: Christian Tismer <tismer@stackless.com>
* doc: snippets_translate make quiet mode by defaultCristian Maureira-Fredes2021-04-281-23/+24
| | | | | | | | | | | | | | | | | Without being 'quiet' the script was generating output to the stdout and stderr, which was triggering the cmake instruction to make the build fail This change makes the quiet mode by default, the old output that summarize each snippet file can be obtained by using the '--verbose' option. A new option called '--debug' was introduced to get even more output related to each translation happening per file. Pick-to: 6.0.4 Change-Id: I7fce09f0b60e626c957efc4fe24948e0eaf3db74 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* doc: fatal error when snippet conversion failsCristian Maureira-Fredes2021-04-263-7/+1553
| | | | | | | | | | | | | | | | | | | | | | When the snippets_translate tool fails, the build process continues normally, falling back to use the original C++ snippets. This problem can be dangerous, since we will not notice if something is wrong without checking the full log. This patch make the build process to fail when the tool doesn't exit normally. For builds where the documentation generation is skipped, this change will have no effect. Complementary to this, the patch includes a new Python file to determine if the C++ include have an import counterpart in Python. Fixes: PYSIDE-1527 Pick-to: 6.0.4 Change-Id: I725b623f60dbc540a6e7834502300c39cd22b5a3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* tools: display screenshot in example galleryCristian Maureira-Fredes2021-04-181-2/+28
| | | | | | | | | | | | | | Adding the option to display a screenshot on the example gallery. First, the script will look for an image with the same name as the example, otherwise it will just get the first in alphabetical order. Pick-to: 6.0 Fixes: PYSIDE-1490 Change-Id: Ia0328c84206a3d66854197abe5ecad8d1d28abc5 Reviewed-by: Christian Tismer <tismer@stackless.com>
* snippets_translate: Do not crash on multi-line emit statementsFriedemann Kleint2021-04-161-1/+8
| | | | | | | | | | | qtbase/0e69349f6f8e9445877ea5b2105973115ad79cf7 introduced a multi-line emit statement, causing snippets_translate to fail. Add a warning message which then shows: snippets_translate: Warning "emit renderedImage(result, resultSize," does not match function call Change-Id: Id27770eab1e60d7828e7d742e63d1de2d530ad02 Reviewed-by: Christian Tismer <tismer@stackless.com>
* tools: update missing_bindingCristián Maureira-Fredes2021-04-074-456/+511
| | | | | | | | | | | | | | Updating the tool to be focused on Qt 6.x. Moving the long structures to a config file, moving around functions and formating the code. Also, moving the script to a separate directory to be able to have a 'requirements.txt' file which can fetch all the required packages for the comparison Pick-to: 6.0 Change-Id: I7a52c33a609d0faff01c20977aa1509ebe6dc058 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* doc: snippet translate add missing quiet caseCristian Maureira-Fredes2021-03-261-1/+2
| | | | | | Pick-to: 6.0 Change-Id: I6d3520e9544d7d169a9c933a8aa904747bc7c6c4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* doc: enable snippets translate toolCristian Maureira-Fredes2021-03-251-26/+53
| | | | | | | | | | | | | | | | Create snippets directories in case they don't exist. Add "-q" option as the examples directory to keep the "--quiet" option from the build. Something to consider with this patch: Removing all the previous old snippets, which include not only 'cpp' files, but also '.h', '.qdoc', '.qrc', '.png', and '.qml', which might be used in the snippets, but will need to be updated in the generation tool, to not translate, and copy them over. Pick-to: 6.0 Change-Id: Icbef9e1c93a12b90dbcfa990ef055ca6f8868407 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* doc: create examples dir if it doesn't existCristian Maureira-Fredes2021-03-181-3/+8
| | | | | | | | For the examples gallery tool Pick-to: 6.0 Change-Id: Ia77d2d22033ccb35df30fa8ed4c7f78de070dec1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Long live snippets_translate!Cristian Maureira-Fredes2021-03-188-0/+2031
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is not a C++ -> Python translator, but a line-by-line conversion tool. This scripts requires two arguments to identify a Qt and PySide directory including the sources. There is a set of file extensions that are currently omitted from the process, and for the ones that will be copied, there will be messages related if the file already exists or if it's new. If you use the '-v' option, you will see the C++ code and the converted Python code, so it's easy to check for issues and missing features. Also, two command line options were added to have a different behavior '--filter' to include a word to filter the full paths of all the snippets found (for example the name of a directory), and '-s/--single' to translate only a specific C++ file to be translated. Including test cases for transformations related to the C++ snippets. Fixes: PYSIDE-691 Pick-to: 6.0 Change-Id: I208e3a9139c7e84fe369a7c2ea93af240d83fa83 Reviewed-by: Christian Tismer <tismer@stackless.com>
* doc: migrate qdoc approach to document examplesCristian Maureira-Fredes2021-03-171-8/+0
| | | | | | | | | | | | | | | | | There were two previous documented examples using the approach based on qdoc: stardelegate, and classwizard. This patch moves them into the 'doc/' directory for each example, and partially revert the changes from 308157f01260c640e21f6972619d3b380c007acb Additionally, an unrelated screenshot was moved to a new general 'images/' directory. Task-number: PYSIDE-1112 Pick-to: 6.0 Change-Id: I239a24fa4e4f970540857ba8b33b9b13c18142b1 Reviewed-by: Christian Tismer <tismer@stackless.com>
* doc: add sphinx-panels to the documentationCristian Maureira-Fredes2021-03-171-52/+27
| | | | | | | | | | | | | | | | | | | | | | This plugin replaces sphinx-tabs, so that's removed. The panels plugin will add bootstrap responsive cards to the docs allowing us to use them instead of the ad-hoc table we had. Additionally, this changes the example gallery tool too, since the main gallery was built using our own table implementation. Since Panels also provides options to add content in tabs, with CSS instead of JS (from sphinx-tabs), we update the generated examples files. Fixing warning messages related to files that didn't exist, duplicated references, and redundant indexes. Task-number: PYSIDE-1112 Pick-to: 6.0 Change-Id: Id19be92e72f0a18f63b76daf1898080f3e199626 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* doc: use 'doc' directory for examples galleryCristian Maureira-Fredes2021-03-171-32/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The initial patch that generates a gallery based on the examples in the respository, was limited to only showing the content of the files in each '.pyproject' file. That approach didn't allow to describe each example, nor add complementary images, like screenshots to each example page. This patch introduces the option to consider everything inside a 'doc/' directory on the example directory. The files that are copied over are not directory, but only files, for images to be the main focus. For example, currently the Tetrix case contained the following files: $ ls examples/widgets/tetrix/ tetrix.py tetrix.pyproject On this patch you can see that now there is a doc directory with the following content: $ ls examples/widgets/tetrix/doc tetrix-screenshot.png tetrix.rst The example page that will be generated for this case will contain the content of the 'doc/tetrix.rst' file, plus the content of all the project files at the end. The 'doc/tetrix.rst' file contains a reference to the 'tetrix-screenshot.png' image, so that file will be copied over too. Task-number: PYSIDE-1112 Pick-to: 6.0 Change-Id: I2d11833c461d8073d2d2888576d876d3f834103a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add a tool to run a license checkFriedemann Kleint2021-03-101-0/+70
| | | | | | Pick-to: 5.15 Change-Id: Ib81950a4fa9a8fcbc708c70d478782c567af379f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* create_changelog.py: Fix shiboken versionFriedemann Kleint2021-02-251-1/+1
| | | | | | Pick-to: 6.0 Change-Id: If8d3bfdde3a1afe5cced1be4d3c8bcc92256048e Reviewed-by: Christian Tismer <tismer@stackless.com>
* doc: example gallery show code in tabsCristian Maureira-Fredes2021-02-181-14/+44
| | | | | | | | | | | | | | | Before this patch, the auto-generated documentation page had all the files from the .pyproject listed one after the other. This uses a new sphinx extension called sphinx-tabs https://github.com/executablebooks/sphinx-tabs which allows us to easily add content in tabs. Task-number: PYSIDE-1112 Pick-to: 6.0 Change-Id: Ibd66a8c911f05be13ae2700be6d3e95a2b98b775 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Silence the example_gallery toolFriedemann Kleint2021-02-101-4/+17
| | | | | | | | | | Add a --quiet option and use that for quiet builds. Pick-to: 6.0 Task-number: PYSIDE-1490 Change-Id: I6b8a3fa159acb85dee5fbc064991a09a9fa6ceda Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* doc: add tool to generate examples galleryCristian Maureira-Fredes2021-02-091-0/+256
| | | | | | | | | | | | | | | | | | | | | This script generates a gallery for all the example currently in pyside-setup/examples. Using this tool will overwrite the index rst file for the examples located in 'sources/pyside6/doc/examples/index.rst Additionally, to display the code of each example, this will generate one extra .rst file for each example that contains a .pyproject file, for example: 'sources/pysides6/doc/examples/example_widgets__tetrix.rst' Currently, the usage of this tool is not incorporated in the documentation building process. Task-number: PYSIDE-1490 Pick-to: 6.0 Change-Id: I78546d4c7905fd8b521f4112457980b4d1d56860 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* PySide: write a renamer script for debugging, improvedChristian Tismer2021-02-011-20/+17
| | | | | | | | | | | | | | | | | | Debug output is hard to read if there are many objects with the same type but different address. This script builds simple names instead of addresses which are easy to track. See the info at the beginning of the script. The improved version is more universal since it only requires a "0x..." word followed by some name. There is no other fixed formatting. Task-number: PYSIDE-79 Task-number: PYSIDE-1478 Change-Id: Iae4abd447dc14a67fe7cc212c1de337c70499ac1 Pick-to: 6.0 Pick-to: 5.15 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* PySide: write a renamer script for debuggingChristian Tismer2021-01-112-0/+318
| | | | | | | | | | | | | | | Debug output is hard to read if there are many objects with the same type but different address. This script builds simple names instead of addresses which are easy to track. See the info at the beginning of the script. Change-Id: I51e08276d8ffc6d7365ce8620957e64769d7fd8c Task-number: PYSIDE-79 Task-number: PYSIDE-1470 Pick-to: 6.0 Pick-to: 5.15 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* python3: remove all obsolete "from __future__" import statementsChristian Tismer2020-11-092-4/+0
| | | | | | | | | | | Note that not all future statements can be removed: PEP 563 for instance deals with from __future__ import annotations Task-number: PYSIDE-904 Change-Id: Ia387ec87f3c68ca64d13e8e80191eda900f58638 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Rename PySide2 to PySide6Friedemann Kleint2020-11-028-30/+30
| | | | | | | | Adapt CMake files, build scripts, tests and examples. Task-number: PYSIDE-904 Change-Id: I845f7b006e9ad274fed5444ec4c1f9dbe176ff88 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Rename shiboken2 to shiboken6Friedemann Kleint2020-10-281-10/+10
| | | | | | | | Adapt CMake files, build scripts, tests and examples. Task-number: PYSIDE-904 Change-Id: I4cb5ee4c8df539546014b08202a7b1e98ed3ff07 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* improve create_changelog toolCristián Maureira-Fredes2020-09-151-2/+5
| | | | | | | | | | Avoiding the corner case when someone reference another patch on the commit message by the whole 40-digit hash. Remove the 'Fixes' or 'Task-number' from the task ID. Change-Id: I51e93a06a9343b74bc94f7f2c2af1c40024daf9d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* metaobject_dump.py: Use the staticMetaObject fieldFriedemann Kleint2020-06-111-4/+4
| | | | | Change-Id: I0fdc4072638ec846e4091fd647b4a471c1e15722 Reviewed-by: Christian Tismer <tismer@stackless.com>
* metaobject_dump.py: Output scope and flag for enumerationsFriedemann Kleint2020-06-081-1/+7
| | | | | Change-Id: I72ea6904c6402e6d9f45b63b887aae32f3d29c29 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Update missing_binding scriptCristian Maureira-Fredes2020-06-082-3/+11
| | | | | | | | Adding also a requirements.txt file to install all the dependencies to compare PySide2 with PyQt5. Change-Id: I655264b17f3dd25f3861eab95ea87950564d4377 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add support for QSerialPortAndreas Buhr2020-05-151-0/+1
| | | | | | | | | | | QSerialPort is part of Qt since Qt 5.1. PySide2 so far had no support for QSerialPort. At the same time, QSerialPort was not listed as unsupported. Task-number: PYSIDE-487 Change-Id: I88d4282a206dadf6f398c3f0e5740f02641724b6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* metaobject_dump.py: Make output of methods more verboseFriedemann Kleint2020-04-301-4/+26
| | | | | | | | Add parameter names and types. Change-Id: I7f9471b4ec1d52d26b728678a03caf64b93e4b77 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add a tool to dump meta objects of QObject-derived classesFriedemann Kleint2020-04-163-0/+197
| | | | | | | Task-number: PYSIDE-957 Change-Id: Ic5790098eef8e554cd437254277a78db4da8264a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Add Python to Qt/C++ conversion toolFriedemann Kleint2020-03-059-0/+1201
| | | | | Change-Id: I275e776248bd55c3c38f5fedd83088bf475a1cf9 Reviewed-by: Christian Tismer <tismer@stackless.com>
* changelog-tool: Add handling of actual changelog entriesFriedemann Kleint2020-03-031-21/+61
| | | | | | | | | | | Scan the commit messages for entries like [ChangeLog][shiboken2] description... and prepend them to the task list. Change-Id: I4cc8599eefb18c0b2c1892b8f23682b15815d1ec Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix tools\debug_windows.py to properly display possible error snippetsAlexandru Croitor2019-12-091-1/+1
| | | | | | | | The check in find_error_like_snippets was incorrect, and thus never showed any snippets. Change-Id: Ie8d487b071e73c6f4a1352e9b10e616694b2e237 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Add better error handling to debug windows python scriptAlexandru Croitor2019-12-091-9/+14
| | | | | | Change-Id: Ibc5171cf94ef819cf7926b899b83cc9de3037d07 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Remove QtScript from missing bindings scriptMariana Meireles2019-12-051-1/+0
| | | | | Change-Id: I456dbb729992146ca3d2320d0d2416d9d3b41339 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Update missing bindings scriptCristián Maureira-Fredes2019-11-281-5/+14
| | | | | Change-Id: Idb86b5ab679137f493cfa46e7d85b48c4e1b8d4b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Move scripts to tools directoryCristián Maureira-Fredes2019-11-183-0/+1194
| | | | | | | | | | The root of the repo should stay clean, at the moment we have too many things around. It makes more sense to move these scripts to the tools directories. Change-Id: Ieca26107dafddfffa2a8dc5b9bb41e9942e0ebfa Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* create_changelog.py: Fix checks for task numbersFriedemann Kleint2019-11-141-7/+11
| | | | | | | | | | The script was failing on commit messages like "Fixes https://github.com/spyder-ide/qtpy/issues/195". Use a regexp to get the number and insert into the dict for convenient sorting. Change-Id: I16499a083d31b85f11d2e7325c7c2c9c6e4332a5 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* create_changelog.py: Silence flake8 and Qt Creator's checkerFriedemann Kleint2019-11-131-11/+15
| | | | | Change-Id: If61585c69e9f73aecd8b001523165df0967721ed Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add script to generate changelogsCristian Maureira-Fredes2019-06-171-0/+219
This tool generate the changelog for the Qt for Python project. Since the structure is different from other Qt project, this script split the changes between the ones to shiboken, and pyside. A shiboken change must contain the word "shiboken" in the title, everything else will be consider a "pyside" change. The only reported commits are the one associated with a certain task: Fixes or Task-number. The option accepts tags, branches or SHAs. Usage: python create_changelog.py -v v5.12.0..v5.12.1 -r 5.12.1 python create_changelog.py -v v5.11.4..5.13.0 -r 5.13.0 -t minor python create_changelog.py -v 9e13465a..5.12 -r 5.12 python create_changelog.py -v 5.17..6.0 -r 6.0 -t major The availables arguments are the following: -d DIRECTORY, --directory DIRECTORY Repository directory, the current one is default. -v VERSIONS, --versions VERSIONS Tags, branches, or SHA to compare e.g.: v5.12.1..5.12 v5.12.0..v5.12.1 cebc32a5..5.12 -r RELEASE, --release RELEASE Release version: e.g.: 5.12.4 -t TYPE, --type TYPE Release type: bug-fix (default), minor, or major There was an issue related to commits that were found twice, having no task number on the second time. Added type annotations for the functions. Sorted the changelog by task-number. Change-Id: Ia283864fa8add03e136afd75fe7a139ce7e190d8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>