aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/tests/tools
Commit message (Collapse)AuthorAgeFilesLines
* tests: handle unused imports and fix type issuesCristián Maureira-Fredes2024-12-121-17/+15
| | | | | | | | | | Many modules were imported but unused in our tests. Additionally, some type hint issues were solved. Pick-to: 6.8 Change-Id: Ic2368690e9a6ce0fffea812206185aa4f3dc3c58 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Desktop Deployment: Add more testsShyamnath Premnadh2024-12-091-0/+49
| | | | | | | | | | | | | - 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-061-8/+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>
* Desktop Deployment: Upgrade Nuitka to 2.5.1Shyamnath Premnadh2024-11-271-13/+13
| | | | | | | | | | | | | | - 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-261-3/+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>
* Deployment: Support Design Studio projectsShyamnath Premnadh2024-10-071-0/+92
| | | | | | | | | | | | | | | | | | - 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: Adapt tests to 6.8Shyamnath Premnadh2024-09-051-3/+4
| | | | | | | | | | - Some module dependencies of modules like QtQuick. The tests are adapted acccordingly. Task-number: PYSIDE-2620 Task-number: PYSIDE-1612 Change-Id: I89a2906fb756ea8c04e0545adc64be561101632c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Desktop Deployment: Unify API design of Config classShyamnath Premnadh2024-09-022-6/+6
| | | | | | | | | | | | | | - 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-2/+2
| | | | | | | Pick-to: 6.7 Task-number: PYSIDE-1612 Change-Id: I001f0f446d41330e1ef0a798c82297a0e7c47021 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Desktop Deployment: Handle long command lines on WindowsShyamnath Premnadh2024-08-061-0/+36
| | | | | | | | | | | | | | | | | | | | - 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: Update Nuitka to 2.3.7Shyamnath Premnadh2024-06-261-2/+2
| | | | | | | | | | | | - 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>
* Python-3.10: Allow the new syntax for Python 3.9Christian Tismer2024-06-207-0/+7
| | | | | | | | Add a future statement to all Python source files. Task-number: PYSIDE-2786 Change-Id: Icd6688c7795a9e16fdcaa829686d57792df27690 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Desktop Deployment: Update Nuitka to 2.3.2Shyamnath Premnadh2024-06-111-2/+2
| | | | | | | | | | - Full support for Python 3.12 - Experiemental support for Python 3.13 Pick-to: 6.7 Task-number: PYSIDE-1612 Change-Id: Ib4699351ec4105de756b4ac16cd7b3a49054a614 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Desktop Deployment: Enable Nuitka --standalone modeShyamnath Premnadh2024-06-101-0/+10
| | | | | | | | | | | | | - enables the standalone mode of Nuitka for pyside6-deploy - the mode can be set either through the command line or the config file - adapt tests - update documentation Pick-to: 6.7 Fixes: PYSIDE-2622 Task-number: PYSIDE-1612 Change-Id: I5a10c857d3e79174d2643139eb2e4f7b5e10d955 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Desktop Deployment: ignore .qsb, .webp, .cpp.o and .qen filesShyamnath Premnadh2024-05-211-0/+9
| | | | | | | | | | | | | | | - These files have to be ignored in the deployment process because Nuitka is not able to recognize these file formats and considers them to the dlls instead of data files. - The missing .webp files breaks the usage of BusyIndicator type of QtQuick Controls. Hence, a bug report for that is raised in Nuitka : https://github.com/Nuitka/Nuitka/issues/2854 - Adapt tests Pick-to: 6.7 6.5 Change-Id: Ic4b3b6c65e059ec618a26361caa62b9d7c608690 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Upgrade Nuitka to 2.1.0Shyamnath Premnadh2024-03-111-2/+2
| | | | | | | Task-number: PYSIDE-1612 Change-Id: Ieab3a7c7fd43e50e83c30d97cb70f6f1135b69e3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Deployment: add permission support and create macOS bundle applicationShyamnath Premnadh2024-03-111-12/+15
| | | | | | | | | | | | | | | | | | - Look at the ast of the python files of the application to identify the permissions used by the application. Once the permissions are identified, pass the necessary NS property list key to be added to the Info.plist file to Nuitka. - For macOS, when deploying create a macOS application bundle (.app) by default. This makes it align more with Apple recommendations and Qt deployment. - Fix tests. - Fix wheel_tester.py to consider .app for macOS. Task-number: PYSIDE-1612 Task-number: PYSIDE-2468 Change-Id: Ie225c9a92c845b432a8e7eaa791a8aeb86ecd988 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Desktop Deployment: Optimize the plugins includedShyamnath Premnadh2024-03-071-13/+55
| | | | | | | | | | | | | | | | - Applications that use certain modules like Multimedia does not work because the plugins for it were not included. However, including all the plugins can make the application executable huge. This patch filters out the necessary plugins by looking at PySide6_Essentials.json and PySide6_Addons.json shipped with the wheels and only bundles these necessary plugins with the application. - Adjust tests. Task-number: PYSIDE-1612 Task-number: PYSIDE-2597 Change-Id: I35c74907a1782ae5101fb7c0861adcb97db5792d Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment: Find dependent modulesShyamnath Premnadh2024-03-062-8/+37
| | | | | | | | | | | | | | | | | | | | - Based on the desktop platform, find all the Qt module dependencies of the application just like Android. These dependencies can help in optimizing the plugins packaged with the application. - Desktop deployment has new cl arguments: --extra-ignore-dirs and --extra-modules that further complements finding the Qt modules used by the application. - Since the Qt dependencies are also required for desktop deployment, 'modules' field in pysidedeploy.spec is moved from under 'buildozer' key to 'qt' key. - dependency finding code moved to dependency_util.py. This also helps in list the imports without conflicts in deploy_lib/__init__.py. - Fix tests. Skip the deploy tests for macOS 11 as the CI does not include dyld_info either via XCode or CommandLineTools. Task-number: PYSIDE-1612 Change-Id: I3524e1996bfec76c5635d1b35ccbc4ecd6ba7b8d Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Deployment Config: Remove Nuitka dependenciesShyamnath Premnadh2024-03-011-2/+2
| | | | | | | | | | | | - ordered_set and zstandard are installed along with Nuitka. We don't need to explicitly specify them anymore. If they are not existing, it means that the user might have explicitly removed them. - Adapt tests. Pick-to: 6.6 Task-number: PYSIDE-1612 Change-Id: I21657cb6df95f2d33f48a719a71f49efab84990c Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment: More Refactoring and minor bug fixesShyamnath Premnadh2024-03-012-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | - setup_python() moved to constructor of PythonExecutable. -install_python_dependencies() moved under PythonExecutable in python_helper.py. - create_executable() of PythonExecutable removed. Instead, we call Nuitka.create_executable() directly. This removes unncessary import problems when using PythonExecutable class for Android Deployment. - nuitka==1.8.0 changed to Nuitka=1.8 in default.spec to match with the installed version. Otherwise, it forces the reinstall of Nuitka==1.8 every time (bug). - Remove recomputation of qt_plugins and local_libs. If the values exist in pysidedeploy.spec, then they should not be computed again. This serves the purposes of speeding up the deployment and also to no modifying the already existing pysidedeploy.spec. - find_pyside_modules() moved from python_helper.py to deploy_util.py. - Adapt tests. - Remove os.fspath wrapping from python.exe. This is not needed as python.exe is already pathlib.Path. Pick-to: 6.5 6.6 Task-number: PYSIDE-1612 Change-Id: Ic598e57cd2f2779c410b12fc9584cf60c5e94505 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Deployment: RefactoringShyamnath Premnadh2024-02-292-9/+23
| | | | | | | | | | | | | | | | | | | | | | | | - Functions in buildozer.py for finding the local_libs, plugin and Qt module dependencies of the application are related to the overall config of the application and not buildozer. Hence, these functions are moved to android_config.py. - `ALL_PYSIDE_MODULES` moved to a function under deploy_lib/__init__.py and `platform_map` moved to deploy_lib/android/__init__.py. - Enable the user to pass both arm64-v8a and aarch64 as the architecture type. Same for all the other architecures that are synonymous. - `verify_and_set_recipe_dir()` is now called explicitly from android_deploy.py due to `cleanup()` deleting the recipe directories during config initialization. - New property `dependency_files` for AndroidConfig class. - Fix --dry-run for Android Deployment. - Adapt tests. Pick-to: 6.6 Task-number: PYSIDE-1612 Change-Id: Icdf14001ae2b07dc8614af3f458f9cad11eafdac Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Android Deployment: Explicit android group in config fileShyamnath Premnadh2024-01-311-3/+3
| | | | | | | | | | | | | - Distinguishes the changes fields as only relevant for Android Deployment. - This distinguishing group makes it clearer when we finally have iOS wheels. Pick-to: 6.6 Task-number: PYSIDE-1612 Change-Id: I215d2deec0117ae855e6d9a061642984eccd36ef Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* flake8: deploy testsShyamnath Premnadh2024-01-312-8/+9
| | | | | | | | | | | - general flake8 fixes. - this prevents flake8 from reporting E402 error for `from init_paths import init_test_paths` not being in the top of the file. Pick-to: 6.6 Change-Id: Id21ef66979cb7e79db63c656cc150017751d1716 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Deployment: Update TestsShyamnath Premnadh2023-12-082-122/+210
| | | | | | | | | | | | - Use existing `BaseConfig` class instead of created a new class based on 'Configparser' for parsing .spec files. - Update and add Android deployment tests to CI. Pick-to: 6.6 Task-number: PYSIDE-1612 Change-Id: I32cd16e08781c71fb534bbfe7e3726818475366b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Deployment: Add icon for applicationShyamnath Premnadh2023-12-041-4/+16
| | | | | | | | | | | | | | | | | | | | | | | | | - For Android deployment, by default kivy's icon is used when the application is deployed. This patch makes use of PySide icon as the default for all applications created with pyside6-android-deploy. - Icon formats accepted by Nutika windows: .ico macOS: .icns (contains a 128x128 .png file) linux: all standard image formats. We use .jpg - For Desktop deployment - change the option --linux-onefile-icon to --linux-icon. Both are the same. - Add icon options for macOS and Windows. - Adapt deployment test accordingly. - As an addition, add a default value to the --config-file option so that it picks up the one in the project directory automatically, if it exists. It aligns with the desktop deployment tool as per 6337e4a306babdb4015c248a14ad734b320ed2c1 - As another extra, remove an unused typing import from config.py Pick-to: 6.6 Task-number: PYSIDE-1612 Change-Id: Ia67ea96f94ddffe4bc65652f91c8b394c4e56a33 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Upgrade Nuitka to 1.8.0Shyamnath Premnadh2023-12-041-7/+7
| | | | | | | | | | | | - No more warning on 3.11. Still no support for 3.12. - As a drive by, remove deployment related packages from the project's requirements.txt file. Pick-to: 6.6 6.5 Task-number: PYSIDE-1612 Change-Id: I1d379b4241d3e40de107ceb8c8d28b893de39dec Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Tests: Fix some flake warningsFriedemann Kleint2023-11-282-4/+3
| | | | | | | | Mostly spacing related. Pick-to: 6.6 Change-Id: I748a8a06f456c5d4bafb94c397c43b3b2ee9e3e9 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* deploy: Apply fixes when using pyenv and provide readable errorsChristian Tismer2023-10-181-45/+86
| | | | | | | | | | | | | | | | | | | | When the patch for pyenv was applied, some tests in test_pyside6_deploy.py were broken, which shows up locally but not (yet) in CI. For better understanding, the test classes were further broken up into three groups (irrelevant, might be undone). Things became clearer by writing a special version of unittest.TestCase that handles long strings as lists. REMARK: We are at Python 3.8 and can use ":=" now :=) Task-number: PYSIDE-1612 Change-Id: I3a479f48b96dd5f95864b8a94af6d01b42ffc196 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Support running PySide on Python 3.12, cleanupChristian Tismer2023-10-161-0/+4
| | | | | | | | | | | | | | | | | In the course of fixing 3.12 issues, a 3.11 fix for PyEnum was missing that created a 3.11 error. A bug with deployment was fixed but not reflected in the tests. This was only visible for pyenv users. Also fixes a minor cosmetic bug introduced by "Python 3.12: Fix the structure of class property" Task-number: PYSIDE-2230 Change-Id: I3a6bd6426e23168dfccdda17b408f193aacd28a0 Pick-to: 6.2 6.5 6.6 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* metaobjectdump.py: Implement slotsFriedemann Kleint2023-05-312-0/+4
| | | | | | | | | Extract helper functions from the Signal handling code to parse @Slot. Pick-to: 6.5 Fixes: PYSIDE-2347 Change-Id: I1c12becad43e7915a63bd3068c7ec71d498c380f Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* QML reference examples: Add notify signals and final attribute to propertiesFriedemann Kleint2023-05-034-4/+4
| | | | | | | | Task-number: PYSIDE-2206 Task-number: QTBUG-111033 Pick-to: 6.5 Change-Id: I0541a3bbb4e5696962802da7f91ab79682700124 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Move the QML reference examples around to match the structure in QtFriedemann Kleint2023-05-026-10/+12
| | | | | | | | | | | Adapt the tests accordingly. Task-number: PYSIDE-2206 Task-number: QTBUG-111033 Pick-to: 6.5 Change-Id: I332d6467da56b88ecbf9282d23092d8d47b730e0 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Android Deployment: testsShyamnath Premnadh2023-04-172-0/+180
| | | | | | | Pick-to: 6.5 Task-number: PYSIDE-1612 Change-Id: Icd4a6efc828f2b4843ec40d4766788120ed6789e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Deployment: RefactoringShyamnath Premnadh2023-04-171-1/+1
| | | | | | | | | | | | - Fix --dry-run in Android deployment - Add option to control raising a warning when adding new entries to config file - Remove unnecessary code and comments Pick-to: 6.5 Task-number: PYSIDE-1612 Change-Id: I5975d76024d6289fe6b9af1caeca374acb81e8cc Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Deployment tool: extensive testsShyamnath Premnadh2023-04-032-0/+176
| | | | | | | | | - Extensive testing scripts to test different scenarios. This will not be added to the CI. Task-number: PYSIDE-1612 Change-Id: Ibb9d1046d1e2b6999c50372d1aeffb2dd34b9781 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment: Fix Nuitka Qml IssueShyamnath Premnadh2023-03-301-2/+2
| | | | | | | | | | | | | | | | | - Nuitka tries to do patchelf on all files in the 'Qt/qml' plugins folder. Although this is a Nuitka bug, the file qtquickcontrols2.conf that cause patchelf errors comes from the newly added MaterialEditor Qml plugin, which has no relevance to PySide6. Hence, removing it. - Some of the Qml issues were fixed by upgrading Nuitka to 1.5.4 - Adapt test Fixes: PYSIDE-2260 Task-number: PYSIDE-1612 Pick-to: 6.5 Change-Id: Ibc274769251e0533d960346a9d8271b2f65dcae9 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment: Change "desktop_packages" back to "packages"Shyamnath Premnadh2023-03-301-2/+2
| | | | | | | | | | - breaks source compatibility otherwise Task-number: PYSIDE-1612 Pick-to: 6.5 Change-Id: Ie0fd353872b7a93c94b650b09aa0fa53692e2455 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Deployment: Refactor to enable Android supportShyamnath Premnadh2023-03-291-2/+2
| | | | | | | | | | | | | | | | | | - moving code into functions so that Android can re-use them - new file "deploy_util.py" to store all the common utility functions that can be reused for Android deployment tool - new option "--name" to set the application name - Change some print statements to log statements - Adapt depoyment tests - In default.spec, rename "packages" to "desktop_packages" - Fix relative Qml file error in config.py i.e. it errors when the path is already relative Task-number: PYSIDE-1612 Pick-to: 6.5 Change-Id: Iaaea8837cc362b3cc8035b96247194c4a9679579 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deployment Tool: Remove create_venv + fix --dry-run/--initShyamnath Premnadh2023-03-271-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | - As the deployment tool's code base grows larger, I realized that the ability to create a venv using pyside6-deploy was a bit of over engineering. There are instances where I have to use the current Python interpreter to fetch some information from the newly created venv Python, which results in weird code. Note: The tool would still work even if the user is using a globally installed Python interpreter with PySide6 installed. - Now, the user is warned if he is not in a virtual environment and prompted the requirement to install further Python packages. If the user input's "no", then the tool exits. - dry_run used to create an empty 'pysidedeploy.spec' which can wreck the normal deployment process. This is fixed by pyside6-deploy using the 'default.spec' instead of creating a new 'pysidedeploy.spec'. Fixes: PYSIDE-2258 Task-number: PYSIDE-1612 Pick-to: 6.4 6.5 Change-Id: I376d2a6aea9f93582eab7a904a81f48426bfee18 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Deployment: Specify Package VersionShyamnath Premnadh2023-03-161-2/+2
| | | | | | | | | | | | | | | - Specific package versions can be specified as {package_name}=={version} - Nuitka 1.5.1 breaks with PySide6, so use version 1.4.8 - new package "importlib_metadata" required to find a python package's version at run time. This is added to Python from 3.8, but since we support 3.7 the package "importlib_metadata" is required - modify test accordingly Task-number: PYSIDE-1612 Pick-to: 6.4 Change-Id: Ie74273ba2a116f0f94f3a3e10120b2de78482724 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Deploy tool: Reduce QML executable size + testsShyamnath Premnadh2022-12-291-16/+111
| | | | | | | | | | | | | | - Added more Nuitka options to reduce the size of QML executable. Some binaries which cause the QML executable to become heavy eg: QtWebEngine are removed, if they are not used - Add new log messages for --verbose option - Add deploy.pyproject file - Modifies pyside6-deploy tests to consider the QML options, by mocking pyside6-qmlimportscanner Task-number: PYSIDE-1612 Change-Id: Id2e94217e99eedbf41ecfc8de1a37e94c7edaa52 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* deploy tool: fix dry_run testShyamnath Premnadh2022-12-291-50/+31
| | | | | | | | | | - instead of using subprocess module to execute the deploy.py file directly, call the main() in deploy.py. This also enables mocking deploy tool functions. Task-number: PYSIDE-1612 Change-Id: Ia4eb43ff9f514a732399ea406ee15f94b4ffdf6d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* PySide Tools: Deploy Tool TestsShyamnath Premnadh2022-12-052-0/+184
| | | | | | | | | | | | - test --dry-run in different scenarios for widgets and qml In this particular case, running --dry-run is equivalent to mocking Nuitka because the output command is the command run by Nuitka - tests the contents on config file for widgets and qml deployments Pick-to: 6.4 Task-number: PYSIDE-1612 Change-Id: I4624bdc71f9ccd027147ca10a942037d6c43fbfc Reviewed-by: Christian Tismer <tismer@stackless.com>
* Move examples aroundFriedemann Kleint2022-09-162-2/+2
| | | | | | | | | Change the directory structure to closer match that of Qt. Task-number: PYSIDE-841 Change-Id: I87aca346b6654aafe94dd1fb83c184c182ceb2e6 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* tools: add pyside6-qmlShyamnath Premnadh2022-06-143-0/+77
| | | | | | | | | | | | | | | | | - pyside6-qml is a tool that mimics the capabilities of qml utility and enables quick prototyping for qml files. Most cli options of the qml tool are carried forward to this tool. example-usage: pyside6-qml -a gui examples/declarative/editingmodel/main.qml To see all the cli options available with this tool, do: pyside6-qml --help Task-number: PYSIDE-1878 Pick-to: 6.3 Change-Id: I98bd77ccf6a0a286bb54da264312e81bf2964dc7 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Use SPDX license identifiersLucie Gérard2022-05-272-55/+4
| | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: I065150015bdb84a3096b5b39c061cf0a20ab637d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Long live pyside6-metaobjectdump!Friedemann Kleint2022-01-276-0/+98
| | | | | | | | | Add a tool to print out the metatype information in JSON to be used as input for qmltyperegistrar. Task-number: PYSIDE-1709 Change-Id: Ie57feeeecc09b1a01aadcc08f7e529a16609b3a4 Reviewed-by: Christian Tismer <tismer@stackless.com>
* Tests: Fix some space-related flake8 warningsFriedemann Kleint2021-04-291-11/+13
| | | | | Change-Id: I9b0ad08839bf1246620c557ec304dfa90882907b Reviewed-by: Christian Tismer <tismer@stackless.com>
* Use f-strings in testsFriedemann Kleint2021-04-131-1/+1
| | | | | Change-Id: I52f92326fdd903078cce5b6408d96d742bfa42b8 Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>