summaryrefslogtreecommitdiffstats
path: root/scripts
Commit message (Collapse)AuthorAgeFilesLines
* Add qtsvg and qtlottie for qmlbenchesRiccardo Ieva2025-10-311-1/+1
| | | | | | | | | Some of the new benchmarks in qmlbench require qtlottie and qtsvg to run. Add them to the module_set of the qmlbench builder. Change-Id: I62fcde6ca244419e7772f591e77b6131d064f432 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* Update to use triplet id formatDaniel Smith2025-10-151-1/+1
| | | | | Change-Id: I78e78300791c623b27b1db661750cb9c88f82f07 Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* testwheel.py: Fix finding the deployed binary on LinuxFriedemann Kleint2025-09-091-1/+8
| | | | | | | | Change e1f258e8a59ee3175aa4e164c8392931910cc468 removed the code path for the non-macOS platforms. Change-Id: I5130b63488bf4d5498b880fe8c9f5f8e5b07fe6e Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Python: Fix "FileNotFoundError" while executing the deploy test on macOSEce Cinucen2025-08-281-3/+11
| | | | | | | | | Previously test assumed that the binary is wrapped in the .app bundle and tried to execute with that path, which caused the "No such file or directory" error. This patch wraps the binary in Contents/MacOS/ and executes it. Change-Id: Icdb2a99a65d3efc2de21301b329607e485be113f Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Python: Replace os path operations with pathlib.PathShyamnath Premnadh2025-08-261-18/+18
| | | | | | | | - Updated functions to use pathlib.Path for path manipulations and directory changes Change-Id: I5962a4173f2da5d4acd22f62171d837b4dcef0d3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Python: Update test_deploy()Shyamnath Premnadh2025-08-261-9/+10
| | | | | | | | | | - test_deploy now copies the entire project directory, not just .py files. For the sample deployment this worked still because it did not have any additional files, but gave a warning since the project file was not copied. Change-Id: I6f7594c9dbae969d3a8500dafafe8fc4085434cb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Android: Move the Java API signature generator under qtqa repoAssam Boudjelthia2025-07-043-38/+311
| | | | | | | | | | | | | | | | | | | | | | | | Previously, the javadoc doclet used to generate the API signature and description of the Java APIs was using a 3rd party project under a separate repo, that's not ideal. Now, the doclet is moved under qtqa. Prior to this, it was expected that the binary of that doclet is provided to the script manually. Now, it would be compiled and used directly internally by the script. For that reason, we no longer need the --doclet argument. The expected output now is a single file describing the API of a given module instead of a directory with multiple files representing various classes in the API. Additionally, the doclet was using old JDK APIs that are deprecated. It used to require JDK 11, with this change, newer JDKs can be used because we're using newer APIs. For that reason we no longer need the --javadoc argument. Pick-to: 6.10 6.9 6.8 Change-Id: Ifc1568a7a716d3eb740dba1ea3b5a114f2201ebe Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* testwheel.py: Print QLibraryInfo.build()Friedemann Kleint2025-06-301-1/+2
| | | | | Change-Id: I7fb0ab87f493040384e24493e482c757f43dcf2d Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Treat security headers as boring for the purposes of API change reviewEdward Welbourne2025-06-051-2/+9
| | | | | | | | | Treat the new header as if it were part of the copyright header. Pick-to: 6.10 Task-number: QTBUG-135177 Change-Id: I6a21d0a966d05308a5d35641561c8c9287d8c03f Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
* Add tqtc-boot2qt/doc in repositories to be branchedJani Heikkinen2025-06-041-0/+1
| | | | | Change-Id: I7fefd981b5e0893dcb7a97ec322fa6005f834480 Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
* testwheel.py: Fix up the error handlingFriedemann Kleint2025-03-251-22/+25
| | | | | | | | | | | | | | | | | When no PySide was present, the too would error out: testwheel.py", line 520, in <module> VERSION[0] = path_version TypeError: 'tuple' object does not support item assignment This apparently resulted from some old code trying to determine the version from the path. Split out the code trying to find the root into a helper function and reorder the code for clarity. Print out errors to stderr. Change-Id: I3f4e878cf3e3d09466180c65e92da98946ee6826 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Qfp testing - no more manual downloading and installing of wheelsShyamnath Premnadh2025-03-072-2/+101
| | | | | | | | | | | | | | | | | - Pass the jenkins link where the wheels are stored using the `--wheels-link` or the `-w`option and the script will automatically download the wheels concurrently and install them in the virtual environment. - A number of 4 retries are done in case of a failure to download a wheel. This could be due to a network issue, VPN disconnection, etc. - Installing the wheels is done with the pip option of `--no-deps` because of the random order in which the wheels are returned and this could lead to a failure. - A new requirements_testwheel.txt file is added. - Add a check for virtual environment. Change-Id: I38a098a21e93ffa8043d146cae19579851660987 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Transfer Build_ref_cleaner to python 3Casimir Saastamoinen2025-02-192-38/+47
| | | | | | Task-number: QTQAINFRA-6902 Change-Id: Ic97da89d2695d279d1b24918d9dcf07e84c208c4 Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
* Android: remove obsolete org.qtproject.qt.android.accessibility packageAssam Boudjelthia2025-02-051-2/+1
| | | | | | | | | | | This sub-package was moved to the parent to allow using some internal APIs from the parent package. See 523cf066285a648b10b277bb1b3b2c7b9d66d464. Pick-to: 6.9 6.8 Change-Id: I9328ffea212df207e4aaa381cc5f51aa434d08c0 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Update version bump scriptJani Heikkinen2025-02-031-0/+5
| | | | | | | | Add bumping version from android examples in qtdeclarative Change-Id: Icf2b269fc645b72d3e229a146f38c363b7d4f2da Reviewed-by: Olli Vuolteenaho <olli.vuolteenaho@qt.io> Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
* Add new functionality to remove Code-Review +2 for dev changesDaniel Smith2024-12-101-82/+202
| | | | | | | | | | | | | | | When a branching event occurs, this script now also removes Code-Review +2 votes from changes on the dev branch which do not target the new latest stable branch. This is to force a re-evaluation of the change to determine if the change should be pushed through to the new FF stable branch or if the change can simply merge normally to dev for the next stable release. This change also fixes a minor, but breaking bug in the original script where the regex used to parse branches was incorrectly used. Change-Id: Idadec12ca8d958f7d86e83bfeaaa123d121a7bab Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* Test Wheels: Update version checkEce Cinucen2024-12-091-1/+1
| | | | | | | - Updated version check to 6.6.0, for PySide6 Addon wheels. Change-Id: Idc3e886c7161707bef38e9b116e33b1705a86222 Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* Branching: Do not skip qtqaJani Heikkinen2024-10-281-1/+1
| | | | | | | qtqa will follow normal qt branching scheme Change-Id: Iefeaacdee07716e94d005786249c07195f8b654c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix testwheel to no longer inspect a module __dict__Christian Tismer2024-10-241-2/+2
| | | | | | | | | | | | | The __all__ variable has been made lazy to compute it on-demand. When using the variable normally like module.__all__ everything is fine. Direct access to a modules __dict__ circumvents every enhancement made through __getattr__, because __getitem__ is directly used. Change-Id: I3b930685098391ccff569003bd2b585eda8f5a26 Pick-to: master Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Android: Add a script to generate Java API reviewAssam Boudjelthia2024-10-141-0/+339
| | | | | | | | | | | | | | | | | | | | | The script uses javadoc to generate java files that contain only the API description, and its documentation. The script looks for various Java sources under the qt5 super repo path and generates API description for specific package names provided here, these pre-defined Qt for Android package names. This process is done for the previous Qt release and it's committed as a base to-be-ignored commit. The same is done for Qt release being reviewed and a commit is created on top. The script can push changes to Gerrit, and automatically abandon the base commits. Also, it can update existing API review patches, given that the local git branch that was used to push before still exists with valid commits. Optionally a Jira task number can be provided. Fixes: QTBUG-126352 Change-Id: Ib5cc7c560e320dbda9e9df5104c06161dccd7561 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* testwheel.py: Fix path to widgetgraphgallery exampleFriedemann Kleint2024-10-081-1/+1
| | | | | | Pick-to: master Change-Id: I22d946d24c5edfbd751f54084f1fce67368ede6c Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
* qmlbenchrunner: add tag and report results to new bucketJuho Lääkkö2024-09-191-2/+6
| | | | | | | | | | | | | | | - Add graphicsApi tag with value parsed out from qmlbench result json - Push data to new bucket. Different tag values will be interpreted as a new series and therefore those will always be writing these new data points. The only way to update that tag value is to write the new series and then delete the old. Before taking this change in use, copy earlier bucket content and while copying add new tag with default value to all datapoints. Change-Id: I3a69c081b9cfd587cbd0eb4af6b234a92269aa3e Reviewed-by: Audun Sutterud <audun.sutterud@qt.io> Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* Update branch_qt.pyJani Heikkinen2024-09-171-0/+2
| | | | | | | Add version bump for qtbase/tests/auto/tools/rcc/data/legal/rcc_legal.cpp Change-Id: I71d2a27a1e4d8d2e93a0d13fd31a661d7145dcf6 Reviewed-by: Akseli Salovaara <akseli.salovaara@qt.io>
* Update usage messages for API change review scriptsEdward Welbourne2024-08-132-2/+4
| | | | | | | | | Some supported arguments were omitted. Move usage() function after copyright header, now that the latter is lightweight. Change-Id: I94634ce39c114cdb0af0bd750ce8a3ec33b4c0f5 Reviewed-by: Lucie Gerard <lucie.gerard@qt.io>
* corebenchrunner: Move to a repositoryAudun Sutterud2024-08-0723-2255/+0
| | | | | | | | | | | It has been decided that bots should have their own repositories. See QTQAINFRA-6429 for information about this. The runner sources have been copied to qtbots/qtcorebenchmarkrunner. This commit removes the original source files. Task-number: QTQAINFRA-6470 Change-Id: Ib779b6ee23b828c4e6a9d1c84908b6722e4e9299 Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* Support str() on CMakeScanner.Token and cope with QT_LICENSE_IDEdward Welbourne2024-07-301-1/+6
| | | | | | | | | | | | Because QT_LICENSE_ID starts with QT, like many defines (values within a parameter, rather than the name of a parameter) it wasn't recognized as the name of a CMake function parameter. Complicate the logic of __is_param_name() a little bit more to cope with that. (It otherwise caused the parameter to be included in the value of a preceding PRIVATE_HEADER_FILTERS, for which it was an unsuitable value.) Change-Id: I1788d8f80796b77018bb043b99b7f38e07a87a72 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove the obsolete jira-bug-closer scriptDaniel Smith2024-07-2634-2796/+0
| | | | | | | | | This functionality has been implemented as a plugin for Cherry-Pick Bot for some time now, living at qtbots/qtcherrypickbot::plugin_bots/jira_closer Change-Id: Ib63789c5d576bdea4f425611051aa03134142bd7 Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* Remove the Cherry Pick BotDaniel Smith2024-07-2540-13997/+0
| | | | | | | | this bot has moved to its own repo at qtbots/qtcherrypickbot Task-number: QTQAINFRA-6258 Change-Id: I2cd2e4e8b1db3ba61a23c2c640ba7ed4bb0cb5af Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* Fix relation chain searching when a direct parent is not yet mergedDaniel Smith2024-07-246-60/+184
| | | | | | | | | | | | | | | | | | | | | | | | In the event that a relation chain is integrated together, but one change in the chain is not staged with the rest of the chain, it is possible that any changes higher in the chain than the unmerged one will skip more than just the missing change to find a parent. This occurs under heavy load when cherry-picks for changes lower on the relation chain on the target branch do not yet exist when walking the relation chain for higher changes. This fix introduces a check for each potential parent to see if it is merged on the source branch and has a pick expected to the target branch. If so, a 1 minute listener will be set up to pick the change when the parent pick is also created. If the listener expires, the parent will be re-checked for safety, and then skipped if it still does not exist. This process repeats until a parent is found or the chain is exhausted, at which time the change will be picked to the target branch HEAD as a last resort. A message is also posted to the created cherry-pick with references to all skipped parents. Fixes: QTQAINFRA-6455 Change-Id: I454ae99ac46c6f5f0bb9dde6651361cd30e9e993 Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* Implement footer "Reopens:" and automatic revert detectionDaniel Smith2024-07-243-131/+299
| | | | | | | | | | | | | | | | | | | | | | | | | This patch introduces a new footer, "Reopens", which reopens a JIRA issue upon merge of the change. Reopens and Fixes targeting the same jira issue should not be specified in the same commit. However, if This occurs, the bot will prioritize the Fixes footer as a closing action. In order to allow the use of Fixes: to close an issue after it has been reopened by the bot or manually, the bot will now check issue comments to determine if the issue has been previously closed by the currently merging change ID. If so, the bot will ignore the close action. In practice, this means that cherry-picks which include a Fixes footer will not re-close an issue, but a new change with a fresh Change ID will close the issue with the Fixes footer as expected. The bot will also now automatically tag relevant jira issues with the commit of a revert, if the commit message contains the standard revert message "This reverts commit ([0-9a-f]{40})". When a revert is detected, the bot will also tag any JIRA issues tagged in the original reverted commit message footers. Fixes: QTQAINFRA-6248 Change-Id: I92def4927516fbab5e520cd23d34032b3dc4ade7 Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* Improve error handling in jira jira closerDaniel Smith2024-07-244-10/+47
| | | | | | | | | | | | | Quite a few cases are not expected to fail. These are now handled in a minimal way to at least avoid a crash. Further, the jira plugin will now intentionally throw an error on startup if JIRA is not reachable, as this is critical to general functionality. Fixes: QTQAINFRA-6313 Change-Id: I51005b552ea07fd4a3718326e5da9277baf709a3 Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* Improve API for Jira Closer bot to utilize fallbacksDaniel Smith2024-07-241-19/+49
| | | | | | | | | | | | | | | API specific: If an issue is queried and either does not have a Fixes: footer, or querying that issue results in no fix versions, the bot will now attempt to find the fix version from a a default QTBUG query. This only applies if the change is in the qt/ namespace. This does not functionally alter which fix version should be applied to the change, but allows for guessing fix versions via the API for changes which do not specify a relationship to a Jira issue. Fixes: QTQAINFRA-6312 Change-Id: I6237ca4fa79416afad515f39d8bb104290a6391f Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* Skip closed branches in the cherry-picking automationDaniel Smith2024-07-242-5/+22
| | | | | | | | | | | | | | | | | This patch changes the behavior of the cherry-pick bot to skip branches that are already closed for new changes, instead of halting upon encountering such. This behavoir change comes as a result of the move to the waterfall model, where the pick bot is expected to pick targets in a sequential manner rather than simultaneously. This works around the possible scenario where a change on dev is merged with valid pick targets, but during the waterfall process, one of those targets is closed. Now, the bot will still post a warning message about the closed branch, but then continue to pick to the next target regardless. Fixes: QTQAINFRA-6287 Fixes: QTQAINFRA-6288 Change-Id: I91d9e066b4bcba1763049272fdf26c3b267d2688 Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* Fix incorrect comment URLs when a cross-repo change already existsDaniel Smith2024-07-241-1/+2
| | | | | | | | | | When a cross-repo cherry pick cannot be completed, the URL presented to the user is incorrect, and always references the original project, not the target project. Fixes: QTQAINFRA-6286 Change-Id: Ib29ffd7f9ac9988717e7ab2b105fa136d4a84b0e Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* Move QtBinarySizeBot to own repositoryDaniel Smith2024-07-2420-1317/+0
| | | | | | | | Bot now lives at qtbots/qtbinarysizebot Task-number: QTQAINFRA-6459 Change-Id: Id8de1c0b2df82329255c95240fb6131045139fdd Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* qtbinarysizebot: Fix issues noticed during testingJari Helaakoski2024-07-246-16/+67
| | | | | | | | | | | | Bugs fixed: - Startup - Too fast COIN access - Add retry for COIN access - Incorrect urllib return code handling - Incorrect InfluxDB pull query result Change-Id: I1332983c4198c5ad12e6b0cc1b1ae14a5128494c Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* Exclude headers with relative paths starting ../Edward Welbourne2024-07-151-6/+12
| | | | | | | | | | | Discussion of some headers, in the qttools review for 6.8, that shouldn't have been public (but were) brought to light that syncqt doesn't generate includes for headers in SOURCES accessed via a ../ path. So match that here. Task-number: QTBUG-125859 Change-Id: Ie9381478010d62bc7748d02853c72f1485f8364c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Move qt-binary-size-bot from gitlabJari Helaakoski2024-06-0320-0/+1266
| | | | | | Task-number: QTBUG-122999 Change-Id: I84e75458582b2c42351f3048c08119140b32acf1 Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* qmlbenchrunner: Fix -prefix option usageAudun Sutterud2024-06-031-1/+1
| | | | | | | | The syntax --prefix=PATH is no longer valid. This should fix QTQAINFRA-6353. Change-Id: Ib42dbdb758a81405a58fcc177f562c9e09779f18 Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* Recurse into subdirecties from CMakeLists.txt on add_subdirectory(...)Edward Welbourne2024-05-301-2/+14
| | | | | | | | This copes with qtgraphs' somewhat more complex CMake config. Task-number: QTQAINFRA-6317 Change-Id: Iea99c8ed82e7bdd6afff6eadf636c216a18f96b0 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* corebenchrunner: Exit on module-related errorsAudun Sutterud2024-05-221-24/+10
| | | | | | | Some of these errors can be serious and we should not attempt a recovery. Change-Id: Ia23bbb019146c437e47ab0e5776a8cd9a31f59ee Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* corebenchrunner: Ensure that libxcb.so is builtAudun Sutterud2024-05-211-1/+1
| | | | | | | Pass the target explicitly to cmake. This fixes QTQAINFRA-6292. Change-Id: Iba8cb01833886cd4e648bb45433c2fba1fb397f8 Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
* Recursive traversal needs to yield from its recursionEdward Welbourne2024-05-161-1/+1
| | | | | | | | Fixes qtgraphs CMakeLists.txt scanning. Fixes: QTQAINFRA-6317 Change-Id: I24fae6c70ecb214c02d87f290fc155bbb2950d9a Reviewed-by: Mate Barany <mate.barany@qt.io>
* Ensure newline after each header in cmakescan.pyEdward Welbourne2024-05-161-2/+2
| | | | | | | | | | Previously the last header from each CMakeLists.txt was missing a trailing newline, causing it to be glued to the first header of the next, when several were processed together. Task-number: QTQAINFRA-6317 Change-Id: If967be85a8642e7fb38d38f8af1f5df5ddd3f299 Reviewed-by: Mate Barany <mate.barany@qt.io>
* Use dict.setdefault() instead of try/KeyError patternEdward Welbourne2024-05-151-3/+1
| | | | | | | | Recently reminded (by ./modunite) of this nicer pattern, I went looking for more places to apply it. Change-Id: Ic14399d8d7afc91d4e339f237f543da1b35f41d6 Reviewed-by: Mate Barany <mate.barany@qt.io>
* Tool testing based on the wheel installedShyamnath Premnadh2024-05-131-5/+15
| | | | | | | | | | - separate tools into ESSENTIAL_TOOLS and ADDONS_TOOLS - ADDONS_TOOLS are tested only for AddOns wheel Pick-to: master Change-Id: I40fb978450af18c34c868adf3a4fa6b37ab18561 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Add tests for pyside6-balsamuiShyamnath Premnadh2024-05-101-1/+1
| | | | | | Pick-to: master Change-Id: I72e7fa83a4b0810179ffff25969334366c63f091 Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* Add tests for pyside6-qsb and pyside6-balsamShyamnath Premnadh2024-05-101-1/+1
| | | | | | | Pick-to: master Change-Id: Iaee4f37ebf982a5d7648690979ddd14300f70386 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
* corebenchrunner: Fix a timeout bugAudun Sutterud2024-04-291-0/+2
| | | | | | | | Explicit termination is necessary after the cancellation of an asyncio.subprocess.Process.wait(). Change-Id: I205352008f492cdcd5a741d3ae83570ff5cb7d0d Reviewed-by: Daniel Smith <daniel.smith@qt.io>
* corebenchrunner: Improve error logicAudun Sutterud2024-04-293-38/+27
| | | | | | | Match-statements are error-prone. Use simple if-statements instead. Change-Id: Ib287ade80187585142b2aa7ab39ea5c7bf3605dd Reviewed-by: Daniel Smith <daniel.smith@qt.io>