Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix pyside6-project relative paths handling and pyproject.toml migrationJaime Resano2025-05-091-25/+65
| | | | | | | | | | | | | | | | | | | | | This patch fixes two existing bugs in the pyside6-project tool: 1. Relative file paths outside the project folder in the .pyproject file e.g. files = ["../main.py"] are not handled correctly. A ValueError is raised due to the usage of Path.relative_to Fixed using a new function: robust_relative_to_posix() Updated the example_project test to contain this edge case (Suggestion: use this as a replacement for the rel_path() function located in tools/example_gallery/main.py) 2. The migration of a .pyproject to a pyproject.toml file with existing content is not done properly due to removing the tomlkit implementation. Fixed by appending the [tool.pyside6-project] section (and the [project] section too) at the end of the file (I don't know how the tests were passing before ??) Change-Id: Ie061c9fa172c429c8b45381bbec35ad30d01f4ee Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Fix pyside6-metaobjectdump crash when using @Slot(result=None)Jaime Resano2025-04-251-1/+3
| | | | | | | | | | | | | This patch fixes a crash of the pyside6-metaobjectdump tool run in a file that contains a @Slot(result=None) decorator. The fix contains in improving the existing _name function to handle ast.Constant nodes. Fixes: PYSIDE-3089 Pick-to: 6.9 Change-Id: Id006898021efbc2cc0f9a48f2ce5ac94fcef1836 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Remove dependency on tomlkitShyamnath Premnadh2025-04-241-46/+96
| | | | | | | | | | | | | - Since we only needed parsing and since the pyproject.toml only contained two sections relevant for deployment/project tool, we can remove the dependency of tomlkit and replace it with simple function doing the parsing and writing of the pyproject.toml Pick-to: 6.8 6.9 Fixes: PYSIDE-3087 Change-Id: Idff951578f7bab311d8bc469c1d437b022ca475a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment: Rephrase a warning messageShyamnath Premnadh2025-04-101-2/+2
| | | | | | | | | | | - The error in the specific warning message leads to confusion. This should now be fixed by rephrasing the message to be more clear. Pick-to: 6.9 Task-number: PYSIDE-1612 Change-Id: I2cb3b6b33bd05efe60a54e722a6b626fae7bd1e7 Reviewed-by: Ece Cinucen <ece.cinucen@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Desktop Deployment: Upgrade Nuitka to 2.6.8Shyamnath Premnadh2025-03-271-1/+1
| | | | | | | | | | - There were some updates with respect to PySide6 support - See changelog here: https://nuitka.net/changelog/Changelog.html#nuitka-release-2-6 Pick-to: 6.8 6.9 Task-number: PYSIDE-1612 Change-Id: If091184a2661f81d3d57342ba48edc35e748fc70 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* pyproject.toml: 2. Add pyproject.toml support for pyside6 toolsJaime Resano2025-03-127-42/+264
| | | | | | | | | | | | | | | | | This patch adds support for pyproject.toml files to the pyside6-project tool. A new command argument is added to migrate a .pyproject JSON file to the new pyproject.toml file: `pyside6-project migrate-pyproject` The new features are tested and it is guaranteed that the current behavior is preserved. A new flag is added to the project creation operations, "--legacy-pyproject", in order to generate a .pyproject file instead of a pyproject.toml file. Note that the tomlkit library is added to the requirements.txt file. https://github.com/python-poetry/tomlkit Task-number: PYSIDE-2714 Change-Id: If33956dea73b79df0a52d4dcda3934c85e57182d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* pyproject.toml: 1. Refactor pyside6-projectJaime Resano2025-03-128-153/+306
| | | | | | | | | | | | This patch refactors the code of the pyside6-project tool to simplify the upcoming change of the project file format, pyproject.toml. The CLI tool documentation is also improved. Task-number: PYSIDE-2714 Change-Id: I010bbb58f3ed8be5ad5f38687f36b4641a4a021d Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Refactor pyside6-deployJaime Resano2025-03-113-95/+92
| | | | | | | | This patch cleans up the pyside6-deploy tool code. Adds some type hints and fixes some casing consistency issues. Change-Id: I16988ebf8a15bd3d2bfd12366ebacb3ffe4001e2 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* pyside6-project: 4. Enable building Design Studio projectsJaime Resano2025-01-234-43/+121
| | | | | | | | | | | | | pyside6-project tool needs to be more flexible to build Design Studio projects. The path where a .qrc compilation output is stored has to be configurable. In addition, a check is performed to see whether the .qrc file needs to be rebuild by looking at the files that are referenced. This avoids unnecesary rebuilds. Task-number: PYSIDE-1612 Pick-to: 6.8 Change-Id: I8aafd5e66e477bbb360f3cf691d43e12c8866ec4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* pyside6-deploy: 3. Rename project folder to project_libJaime Resano2025-01-2210-12/+12
| | | | | | | | | | | | | This is a refactor in order to improve the code clarity. In the testing of the pyside6-project command, importlib.import_module is used to import the project_lib folder. Currently, importlib.import_module("project") is ambiguous because it may refer to both the file and the folder. It chooses the folder over the file. Task-number: PYSIDE-1612 Pick-to: 6.8 Change-Id: I8903ea9d2112cf2eb7a68d0e302d3c74edcf2c22 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* pyside6-deploy: 2. Improve deployment of Design Studio projectsJaime Resano2025-01-226-134/+109
| | | | | | | | | | | | Design Studio projects will specify the resources employed by the project in the .qrc file. This way, the deployment process is way simpler since all the file dependencies are stored compiled in a .py file. Task-number: PYSIDE-1612 Change-Id: Icc0047e9f9c183a4db51052a84743e5b095ec76a Pick-to: 6.8 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* pyside6-deploy: 1. Minor refactoringJaime Resano2025-01-215-51/+67
| | | | | | | | | | Just adding some type hints and a bit of code cleanup None of the existing logic should be affected by this change. Task-number: PYSIDE-1612 Pick-to: 6.8 Change-Id: I42175426a03dc463b8da82aa560c3f13ab842392 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Android Deployment: Auto download Android NDKShyamnath Premnadh2025-01-025-12/+31
| | | | | | | | | | | | | | | | | | | | | | | | - In order to prevent code duplication, a symlink to tools/cross_compile_android/android_utilities.py is created under sources/pyside-tools/deploy_lib/android. When running the script sources/pyside-tools/android_deploy.py, this works without any issues. When packaging the tools, the symlink is resolved into the actual file and the actual file is packaged into the wheels. - Remove global variable to __init__.py and remove the ones that are not used - Add tqdm to requirements.txt - Adapt tests - Additionally, include several new test cases to cover error scenarios more comprehensively Pick-to: 6.8 Task-number: PYSIDE-1612 Change-Id: I74728be30a2b8214b9a379b0b906fdacbb105833 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Deployment: Improve cleanupShyamnath Premnadh2024-12-181-7/+23
| | | | | | | | | | | - Handle removal of files/directories in the case of failure - Add more details to the docstring Pick-to: 6.8 Fixes: PYSIDE-2965 Change-Id: I6410963385c15899f49b60cae60b2200e8d13012 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Desktop Deployment: Add more testsShyamnath Premnadh2024-12-091-1/+1
| | | | | | | | | | | | | - Added tests for extra modules and directories to ignore. These are cli options. - Fixed an issue where updating a Python set was not functioning correctly. Task-number: PYSIDE-2945 Pick-to: 6.8 Change-Id: Ia6b0e9ef98e2e0999bc4782168b3889598cca682 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Desktop Deployment: Disregard more non existent pluginsShyamnath Premnadh2024-12-062-5/+6
| | | | | | | | | | | - Amends 05b3c28099c1eaff74bba8b06004cc8205b24f45 - Also, ignores 'scenegraph' and 'networkaccess' Pick-to: 6.8 Task-number: PYSIDE-1612 Change-Id: Ibc1a0ea1525f7d56ed884bc652612d8985479258 Reviewed-by: Jaime Resano <Jaime.RESANO-AISA@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* deploy: use tuple instead of list for lru_cache functionCristián Maureira-Fredes2024-12-041-1/+5
| | | | | | | | | One cannot use list in the arguments of a function using lru_cache Fixes: PYSIDE-2945 Pick-to: 6.8 Change-Id: I2305dab868a634bfb8a3f240d403c07281f7edb8 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Desktop Deployment: Upgrade Nuitka to 2.5.1Shyamnath Premnadh2024-11-272-1/+8
| | | | | | | | | | | | | | - Nuitka 2.5.1 imposes strict checking for the Qt plugins included through the --include-qt-plugins option by checking if the plugin actually exists in PySide6 installation. Consequently, the plugins "accessiblebridge", and "platforms/darwin" which are not required by Nuitka are removed from the list of plugins to be included. - Adapt tests. Pick-to: 6.8 Task-number: PYSIDE-1612 Change-Id: I89cef4acf102e01c229b1dd6063fc08903ea686d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Deployment: Support .webp filesShyamnath Premnadh2024-11-262-6/+3
| | | | | | | | | | | | - Ignoring .webp files are not needed in the newer Nuitka version. - Additionally, also adds a comment differentiating between the `plugins` fields used in the deployment configuration file. - Adapt tests. Pick-to: 6.8 Task-number: PYSIDE-1612 Change-Id: Ibbaab03021fa50e4777caa346a2c128fd5e1a06c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Delete QQmlApplicationEngine on application exitJaime Resano2024-11-251-1/+3
| | | | | | | | | | | | | | Due to the API limitations, we have to ensure that the engine is deleted before other parts of the application is deleted. Otherwise exposing objects using setInitialProperties() or setContextProperty() for example will cause warnings to be printed. It is a good practice to always delete the engine manually so all the code should be consistent. Task-number: PYSIDE-1612 Pick-to: 6.8 Change-Id: I01f16359e9d90cefd5957708fe12ce489bd7edc0 Reviewed-by: Jaime Resano <Jaime.RESANO-AISA@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Deployment: Fix crash when from . import x is usedJaime Resano2024-11-251-1/+1
| | | | | | | | | | | | When ast library parses a "from . import x" statement, it will return a module name of None. Therefore, using .startswith() on None will raise an exception. Task-number: PYSIDE-1612 Pick-to: 6.8 Change-Id: I6532f4ebc469695ee977840c3cb40f641fb3cdb6 Reviewed-by: Jaime Resano <Jaime.RESANO-AISA@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Avoid including dev folders in deployed executableJaime Resano2024-11-202-3/+3
| | | | | | | | | | | The .git, __pycache__ and .vscode folders should not be included in the deployed executable. Windows, it causes permission errors when the cleanup is performed Pick-to: 6.8 Task-number: PYSIDE-1612 Change-Id: Icfcbe6aa0d3cb2b869a0bb9a68dbe8d1e1d9a5ec Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* qtpy2cpp: Add QModelIndex as a value typeFriedemann Kleint2024-11-051-15/+21
| | | | | | | | Reorder the class map by module and add QModelIndex. Pick-to: 6.8 Change-Id: I23195f37cb8eaf21cdb46a71d98fba1cd776a3d1 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment: Use include-data-dirShyamnath Premnadh2024-10-152-4/+18
| | | | | | | | | | | | | | | | - Use --include-data-dir to include the QML modules. This would reduce the command length significantly. - Additionally, package all the subdirectories of the application directory. The user may have other relevant resources required by the application eg: images, fonts, etc. - Add two new directories for directories to be ignored - docs and examples. These directories are not required for the application to run. Pick-to: 6.8 Task-number: PYSIDE-1612 Change-Id: I6269f77c0fd94a54e3b7a44f317bc144bd68e5ec Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Android Deployment: Add error for Python 3.12+Shyamnath Premnadh2024-10-081-2/+9
| | | | | | | | | | | | - pyside6-android-deploy does not work with Python 3.12+ due to the a restriction from the 'buildozer' package. This should be fixed in their next release and we can remove this RuntimeError. - Additonally modify the help message for --ndk-path. Pick-to: 6.8 Task-number: PYSIDE-1612 Change-Id: I94e677a6845f31d71f5a008ce7beda53d25ed0e1 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Deployment: Support Design Studio projectsShyamnath Premnadh2024-10-074-34/+108
| | | | | | | | | | | | | | | | | | - new class 'DesignStudio' to handle Design Studio projects. - Currently uses a way of monkey patching to override the 'main.py' to use 'main_patch.py' which has the same content but with 'app_dir' set to the parent of `main.py``. The reason for doing this is that Nuitka requires the `main.py` to be in the same directory as other resources required for the project. Once the corresponding patch, to alternate between evaluating 'app_dir' based on whether the application is deployed or called through the Python interpreter, is merged then this temporary fix of creating 'main_patch.py' can be removed. - Add tests. Pick-to: 6.7 Change-Id: I79e6572bdbbf4576fbdd9039a4922997a22139f8 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Deployment: Create pyside6-deploy always in main project directoryShyamnath Premnadh2024-10-073-12/+12
| | | | | | | | | | | | | | | | | - There was an issue where if you run pyside6-deploy from a folder different from the project directory, it creates a new 'pysidedeploy.spec' every time unless you run 'pyside6-deploy -c <config_file>'. This patches fixes this issue by always creating the pysidedeploy.spec in the main project directory i.e. the parent directory of the main Python file. - Additionally, the function 'create_config_file()' can be simplified since it can never accept an empty 'main_file' argument and the parameter 'config_file' can be removed. Pick-to: 6.7 Task-number: PYSIDE-1612 Change-Id: I435f79e7222a55831cddcfbc50e07bc214e24cee Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* pyside6-project: Fix lupdate handling with subdirectoriesFriedemann Kleint2024-09-101-2/+3
| | | | | | | | | | Pass paths relative to the project directory instead of the file name to lupdate (to keep the command line short). Fixes: PYSIDE-2861 Pick-to: 6.7 6.5 Change-Id: Iebdc5e9e6e5c50952b6db4425a68179045cbf9fc Reviewed-by: Christian Tismer <tismer@stackless.com>
* Deployment: Change the order of set_or_fetch functionShyamnath Premnadh2024-09-051-6/+12
| | | | | | | | | | | | | - The value provided through cli is prioritized over the value in the config file. - Update the docstring for the set_or_fetch function. - Additionally, fix an error on run_qmlimportscanner() where the first argument was passed as a list instead of a tuple. Pick-to: 6.7 Task-number: PYSIDE-1612 Change-Id: I6afb25c8e88f7ee2fb4a88539d2b8b3170dcdd00 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Deployment: Fix formatting when writing back to config fileShyamnath Premnadh2024-09-051-2/+21
| | | | | | | | | | | | | | | | - Configparser does not preserve the formatting of the original file. As a result when writing into the config file, the formatting is lost. In the case of pysidedeploy.spec, the blank lines are lost making the entire config file rather hard to read. - This patch adds a blank line before the comment lines thus retaining the original formatting of the file. Pick-to: 6.7 Task-number: PYSIDE-1612 Change-Id: Icd1ebe52d364f4dc9197220161ed6daa6ed577a0 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Tooling: Add pyside6-svgtoqml toolShyamnath Premnadh2024-09-052-1/+6
| | | | | | Task-number: PYSIDE-2620 Change-Id: I0627c35162d37a9fa4fdb716235aacd15cdfb698 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment: Exclude directories from qmlimportscanner checkShyamnath Premnadh2024-09-052-24/+14
| | | | | | | | | | | | - ac55d94395849a5a4af2883d2dab82982252c92d helps to fix a TODO where we can exclude directories from the qmlimportscanner check directly without moving all the QML files into a temporary directory - Amend b32183d2cd5fbbd1ac6a53827edf5d40428855ff Task-number: PYSIDE-1612 Task-number: PYSIDE-2803 Change-Id: I2524af7154b32730d2d823fda6973b9a2c8a76a3 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Desktop Deployment: Unify API design of Config classShyamnath Premnadh2024-09-026-149/+161
| | | | | | | | | | | | | | - Implements a comment suggestion from 11064d4dcd688db1d54d7273ad700761fabe3f50 - _find_and_set_** methods renamed to _find_** methods. They now return the required property. - Property setters now update the value in the config class as well. This also aligns with the design of certain other properties. - Adjust tests. Task-number: PYSIDE-1612 Pick-to: 6.7 Change-Id: I135d0a64928381a863cbf7235240efc45421324a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Desktop Deployment: Upgrade Nuitka to version 2.4.8Shyamnath Premnadh2024-08-301-1/+1
| | | | | | | Pick-to: 6.7 Task-number: PYSIDE-1612 Change-Id: I001f0f446d41330e1ef0a798c82297a0e7c47021 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment: Error message with QtSqlShyamnath Premnadh2024-08-261-0/+10
| | | | | | | | | | | | | | | | | | | - The Qt Sql driver has a hard dependency on certain external libraries on macOS. macdeployqt solves by patching the Qt Sql driver by changing its RPATH and bundling the external library. This is not possible with pyside6-deploy and should be ideally done via Nuitka. - Until this is solved by Nuitka, we raise an error message that informs the user that deployment on macOS is not possible when QtSql is used. - Corresponding Nuitka issue: https://github.com/Nuitka/Nuitka/issues/3079 Pick-to: 6.7 Task-number: PYSIDE-2835 Change-Id: I35d580ec8bcb9d1d1a4472cc01caee88deb5468e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Christian Tismer <tismer@stackless.com>
* Deployment: make run_qmlimportscanner() parameters hashableShyamnath Premnadh2024-08-232-2/+3
| | | | | | | | | - Required for @lru_cache decorator Task-number: PYSIDE-1612 Pick-to: 6.7 Change-Id: I5e62ad93f20f7000e2e0ef37617aa756b3272314 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Desktop Deployment: Fix final application nameShyamnath Premnadh2024-08-091-2/+2
| | | | | | | | | - Additionally, adapt wheel_tester.py Pick-to: 6.7 Fixes: PYSIDE-2806 Change-Id: If2c0d8f186142797f3280136298ed299643824f5 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Desktop Deployment: Handle long command lines on WindowsShyamnath Premnadh2024-08-061-0/+43
| | | | | | | | | | | | | | | | | | | | - When the Nuitka command line becomes more than 8191 characters in Windows, the subprocess call fails with the error message "The command line is too long". This patch fixes the issue. - The patch involves moving the contents of the main Python file to an intermediate file called 'deploy_main.py' and modifying the deploy_main.py file to start with '# nuitka_project: <nuitka_option>'. This way, Nuitka picks up the option directly from deploy_main.py rather than the command line. - Add relevant tests to consider the scenario. Pick-to: 6.7 Task-number: PYSIDE-1612 Fixes: PYSIDE-2803 Change-Id: Iacdaa66283cb41dee6df99c9015b4679e299b02e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Desktop Deployment: Change qmlimportscanner usage parametersShyamnath Premnadh2024-08-052-17/+29
| | | | | | | | | | | | | | | | | | | | | | | | | - Previously, pyside6-qmlimportscanner was run on each of the QML files by listing the QML files. For projects with a large number of QML files, this leads to a long command line that exceeds the maximum command line length on Windows. - This change modifies the command to use `-rootPath` command line option to specify the root path of the project directory. This will recursively find all the QML files in the project directory and its subdirectories, and find the QML modules used. - This solution moves all the '.qml' files in the project directory into a temporary directory and running pyside6-qmlimportscanner on this temporary directory. - Additionally, memoize the function run_qmlimportscanner() to avoid running the qmlimportscanner multiple times for the same project. Pick-to: 6.7 Task-number: PYSIDE-1612 Task-number: PYSIDE-2803 Change-Id: Ie82fc4e5071debe505fae7b5815b76c89d99ff4c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Desktop Deployment: Consider 'dist-packages'Shyamnath Premnadh2024-08-011-2/+5
| | | | | | | | | | | - For certain debian systems, the system Python uses 'dist-packages' directory for installing Python packages instead of 'site-packages'. This patchs adds a check for 'dist-packages' directory. Pick-to: 6.7 Fixes: PYSIDE-2785 Change-Id: I697e2939ff4114cad0e696d8920322d080be9386 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* deploy: use shlex to split argsCristián Maureira-Fredes2024-07-301-1/+3
| | | | | | | | | Pick-to: 6.7 6.5 6.2 Fixes: PYSIDE-2814 Change-Id: I88aa5ecf6a22808fe5efd2c52fd6675b153da936 Reviewed-by: Christian Tismer <tismer@stackless.com> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Desktop Deployment: Ignore directoriesShyamnath Premnadh2024-07-083-22/+14
| | | | | | | | | | | | | | | | - Among the directories ".qtcreator", "site-packages", "deployment" etc were excluded when finding the QML files and the Python files in the project. - Simplify find_and_set_qml_files(self) function by removing the unnecessary code. - Memoize pyside_module_imports(). Pick-to: 6.7 Task-number: PYSIDE-1612 Change-Id: I55ccb67300c27de73843ad9996da655ba04403fb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Desktop Deployment: Update Nuitka to 2.3.7Shyamnath Premnadh2024-06-261-1/+1
| | | | | | | | | | | | - Fixes sporadic crashes with Python 3.12 - Supports Numpy 2.0. This is not relevant for us currently, but it's good to have the latest version. Pick-to: 6.7 Fixes: PYSIDE-2781 Task-number: PYSIDE-1612 Change-Id: I96a437795018792906ba6cf44e6466dacc154dbf Reviewed-by: Christian Tismer <tismer@stackless.com>
* Fix flake8 and typing issuesAdrian Herrmann2024-06-212-2/+2
| | | | | | | | | Fix a number of miscellaneous flake8 and typing issues exposed after updating to the modern typing syntax from 3.10 onwards. Task-number: PYSIDE-2786 Change-Id: I5476d1208dd1da3fa93bdec02bc6124a80b247fc Reviewed-by: Christian Tismer <tismer@stackless.com>
* Coin: Add support for Android wheelsSimo Fält2024-06-211-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Split coin instructions into separate files specifically for Desktop, Android and common instructions - Make changes to cross_compilation script to support coin. - new 'coin' cli argument introduced. This is required because Qt installation from CI servers differ from the Qt installation from the maintenance tool. - Add a shell script to override the Python used for cross-compilation for the macOS 13 x86_64 system. This system is responsible for building the arm64 Android wheels. The system by default uses Python 3.10. However, python-for-android requires Python 3.11. Hence, we manually install python 3.11 into a non default path and use it for cross-compilation. The default Python of the aforementioned system has been updated to 3.11, but system still uses qt5#6.7. Hence it is not reflected yet. When ac72bb1d489f7442fe8d9aa168298a94ff62d941 is merged, we will finally get 3.11 and the need for this script can be removed. - Add markupsafe==2.0.1 to the requirements.txt file. This is required to prevent an error while installing Jinja2. ToDo: Tag Jinja2 version so that this requirements can possibly be removed. - Currently only x86_64 and arm64 wheels are produced since they are the most important. Most Android devices these days are arm64. This can be expanded to also include x86, but armv7 requires a Windows host and that is currently not possible with the CI. For armv7 wheels, users will have to build the wheels themselves using the provided cross compilation Python script. Task-number: PYSIDE-1612 Task-number: PYSIDE-2766 Change-Id: I8f15a85887e207a5c6605fd8696d15b4646fb2fd Reviewed-by: Simo Fält <simo.falt@qt.io>
* Use modern typing syntaxAdrian Herrmann2024-06-2013-76/+70
| | | | | | | | | | | | We can already use the modern typing syntax introduced with Python 3.10 in 3.9 via future statement definitions, even before we raise the minimum Python version to 3.10. Note that direct expressions with "|" don't work yet. Task-number: PYSIDE-2786 Change-Id: Ie36c140fc960328322502ea29cf6868805a7c558 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Python-3.10: Allow the new syntax for Python 3.9Christian Tismer2024-06-2032-0/+32
| | | | | | | | Add a future statement to all Python source files. Task-number: PYSIDE-2786 Change-Id: Icd6688c7795a9e16fdcaa829686d57792df27690 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Deployment Docs: Add instructions to generate a bug reportShyamnath Premnadh2024-06-171-2/+0
| | | | | | | | | | - Additionally, remove some comments from default.spec that are not relevant anymore. Pick-to: 6.7 Task-number: PYSIDE-1612 Change-Id: Iea2fed95507b6e649285e409cf8678287bf15a56 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Desktop Deployment: Fix errorShyamnath Premnadh2024-06-171-7/+8
| | | | | | | | | | | | | | | In the scenario where 'pyside6-deploy --init' is used on the first run and for the consequent invocations, only running just 'pyside6-deploy' without any additional options, the deployment should have worked. This currently had a bug where it overrides the main Python entrypoint file with the default option of 'main.py'. This issue is caused due to the order of 'if' loop in the changed function. Pick-to: 6.7 Task-number: PYSIDE-1612 Change-Id: I605c4b9ff2035e85c0b5f73049a3ecc84d0fd80c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Android Deployment: Enable pyside6-android-deploy in macOSShyamnath Premnadh2024-06-143-4/+12
| | | | | | | | | | - enable the tool for macOS - add dependency .xml to the Android wheels Pick-to: 6.7 Task-number: PYSIDE-2766 Change-Id: I77495466b8a9cc3565c640beac202d533ee1d2a6 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>