diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 888afeda..e50328fb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,6 +51,9 @@ jobs: with: version: latest + - name: REUSE Compliance Check + uses: fsfe/reuse-action@v6 + build: name: Build runs-on: ubuntu-latest diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f05b752a..01a4c8c4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -78,6 +78,10 @@ Add support for swipe gestures - Add godoc comments for exported APIs - Update CHANGELOG.md for notable changes +### License Headers + +This project adheres to the REUSE specification. When creating new files, please include the appropriate copyright and SPDX license headers, or define their licensing in `REUSE.toml`. Our CI pipeline will check for REUSE compliance automatically. + ## Project Structure See [DEVELOPER.md](DEVELOPER.md) for architecture details and extension guides. diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md new file mode 100644 index 00000000..df2dba6c --- /dev/null +++ b/CONTRIBUTORS.md @@ -0,0 +1,15 @@ +# Contributors + +Thanks to the DeviceLab team and everyone who has contributed to this project! + +If you have contributed but are missing here, please let us know. + +Om Narayan +Naga Venkatesh Sankar R +Gabriel Almeida +Mario Rial +Mahesh Tiyyagura +Junyoung Yoon +Eyal Yovel +Alejandro Maggi +Phen Chua diff --git a/LICENSE b/LICENSE index 1547882e..62872184 100644 --- a/LICENSE +++ b/LICENSE @@ -176,7 +176,7 @@ END OF TERMS AND CONDITIONS - Copyright 2024 DeviceLab + Copyright 2024–2026 DeviceLab and the Project Contributors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/LICENSES/LicenseRef-CocoaHTTPServer.txt b/LICENSES/LicenseRef-CocoaHTTPServer.txt new file mode 100644 index 00000000..115276a1 --- /dev/null +++ b/LICENSES/LicenseRef-CocoaHTTPServer.txt @@ -0,0 +1,18 @@ +Software License Agreement (BSD License) + +Copyright (c) 2011, Deusty, LLC +All rights reserved. + +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above + copyright notice, this list of conditions and the + following disclaimer. + +* Neither the name of Deusty nor the names of its + contributors may be used to endorse or promote products + derived from this software without specific prior + written permission of Deusty, LLC. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/LICENSES/LicenseRef-RoutingHTTPServer.txt b/LICENSES/LicenseRef-RoutingHTTPServer.txt new file mode 100644 index 00000000..717caf79 --- /dev/null +++ b/LICENSES/LicenseRef-RoutingHTTPServer.txt @@ -0,0 +1,19 @@ +Copyright (c) 2011 Matt Stevens + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/LICENSES/LicenseRef-agent-device.txt b/LICENSES/LicenseRef-agent-device.txt new file mode 100644 index 00000000..e339c7e9 --- /dev/null +++ b/LICENSES/LicenseRef-agent-device.txt @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 Callstack + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/LICENSES/LicenseRef-appium-WebDriverAgent.txt b/LICENSES/LicenseRef-appium-WebDriverAgent.txt new file mode 100644 index 00000000..b3db8e6e --- /dev/null +++ b/LICENSES/LicenseRef-appium-WebDriverAgent.txt @@ -0,0 +1,30 @@ +BSD License + +For WebDriverAgent software + +Copyright (c) 2015-present, Facebook, Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Facebook nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/LICENSES/LicenseRef-appium-uiautomator2-server.txt b/LICENSES/LicenseRef-appium-uiautomator2-server.txt new file mode 100644 index 00000000..f882c9c5 --- /dev/null +++ b/LICENSES/LicenseRef-appium-uiautomator2-server.txt @@ -0,0 +1,201 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, +and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by +the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all +other entities that control, are controlled by, or are under common +control with that entity. For the purposes of this definition, +"control" means (i) the power, direct or indirect, to cause the +direction or management of such entity, whether by contract or +otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity +exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, +including but not limited to software source code, documentation +source, and configuration files. + +"Object" form shall mean any form resulting from mechanical +transformation or translation of a Source form, including but +not limited to compiled object code, generated documentation, +and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or +Object form, made available under the License, as indicated by a +copyright notice that is included in or attached to the work +(an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object +form, that is based on (or derived from) the Work and for which the +editorial revisions, annotations, elaborations, or other modifications +represent, as a whole, an original work of authorship. For the purposes +of this License, Derivative Works shall not include works that remain +separable from, or merely link (or bind by name) to the interfaces of, +the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including +the original version of the Work and any modifications or additions +to that Work or Derivative Works thereof, that is intentionally +submitted to Licensor for inclusion in the Work by the copyright owner +or by an individual or Legal Entity authorized to submit on behalf of +the copyright owner. For the purposes of this definition, "submitted" +means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, +and issue tracking systems that are managed by, or on behalf of, the +Licensor for the purpose of discussing and improving the Work, but +excluding communication that is conspicuously marked or otherwise +designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity +on behalf of whom a Contribution has been received by Licensor and +subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the +Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of +this License, each Contributor hereby grants to You a perpetual, +worldwide, non-exclusive, no-charge, royalty-free, irrevocable +(except as stated in this section) patent license to make, have made, +use, offer to sell, sell, import, and otherwise transfer the Work, +where such license applies only to those patent claims licensable +by such Contributor that are necessarily infringed by their +Contribution(s) alone or by combination of their Contribution(s) +with the Work to which such Contribution(s) was submitted. If You +institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work +or a Contribution incorporated within the Work constitutes direct +or contributory patent infringement, then any patent licenses +granted to You under this License for that Work shall terminate +as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the +Work or Derivative Works thereof in any medium, with or without +modifications, and in Source or Object form, provided that You +meet the following conditions: + +(a) You must give any other recipients of the Work or +Derivative Works a copy of this License; and + +(b) You must cause any modified files to carry prominent notices +stating that You changed the files; and + +(c) You must retain, in the Source form of any Derivative Works +that You distribute, all copyright, patent, trademark, and +attribution notices from the Source form of the Work, +excluding those notices that do not pertain to any part of +the Derivative Works; and + +(d) If the Work includes a "NOTICE" text file as part of its +distribution, then any Derivative Works that You distribute must +include a readable copy of the attribution notices contained +within such NOTICE file, excluding those notices that do not +pertain to any part of the Derivative Works, in at least one +of the following places: within a NOTICE text file distributed +as part of the Derivative Works; within the Source form or +documentation, if provided along with the Derivative Works; or, +within a display generated by the Derivative Works, if and +wherever such third-party notices normally appear. The contents +of the NOTICE file are for informational purposes only and +do not modify the License. You may add Your own attribution +notices within Derivative Works that You distribute, alongside +or as an addendum to the NOTICE text from the Work, provided +that such additional attribution notices cannot be construed +as modifying the License. + +You may add Your own copyright statement to Your modifications and +may provide additional or different license terms and conditions +for use, reproduction, or distribution of Your modifications, or +for any such Derivative Works as a whole, provided Your use, +reproduction, and distribution of the Work otherwise complies with +the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, +any Contribution intentionally submitted for inclusion in the Work +by You to the Licensor shall be under the terms and conditions of +this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify +the terms of any separate license agreement you may have executed +with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade +names, trademarks, service marks, or product names of the Licensor, +except as required for reasonable and customary use in describing the +origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or +agreed to in writing, Licensor provides the Work (and each +Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +implied, including, without limitation, any warranties or conditions +of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A +PARTICULAR PURPOSE. You are solely responsible for determining the +appropriateness of using or redistributing the Work and assume any +risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, +whether in tort (including negligence), contract, or otherwise, +unless required by applicable law (such as deliberate and grossly +negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, +incidental, or consequential damages of any character arising as a +result of this License or out of the use or inability to use the +Work (including but not limited to damages for loss of goodwill, +work stoppage, computer failure or malfunction, or any and all +other commercial damages or losses), even if such Contributor +has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing +the Work or Derivative Works thereof, You may choose to offer, +and charge a fee for, acceptance of support, warranty, indemnity, +or other liability obligations and/or rights consistent with this +License. However, in accepting such obligations, You may act only +on Your own behalf and on Your sole responsibility, not on behalf +of any other Contributor, and only if You agree to indemnify, +defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason +of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following +boilerplate notice, with the fields enclosed by brackets "{}" +replaced with your own identifying information. (Don't include +the brackets!) The text should be enclosed in the appropriate +comment syntax for the file format. We also recommend that a +file or class name and description of purpose be included on the +same "printed page" as the copyright notice for easier +identification within third-party archives. + +Copyright JS Foundation and other contributors, https://js.foundation + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/LICENSES/LicenseRef-maestro-runner.txt b/LICENSES/LicenseRef-maestro-runner.txt new file mode 100644 index 00000000..62872184 --- /dev/null +++ b/LICENSES/LicenseRef-maestro-runner.txt @@ -0,0 +1,191 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to the Licensor for inclusion in the Work by the copyright + owner or by an individual or Legal Entity authorized to submit on + behalf of the copyright owner. For the purposes of this definition, + "submitted" means any form of electronic, verbal, or written + communication sent to the Licensor or its representatives, including + but not limited to communication on electronic mailing lists, source + code control systems, and issue tracking systems that are managed by, + or on behalf of, the Licensor for the purpose of discussing and + improving the Work, but excluding communication that is conspicuously + marked or otherwise designated in writing by the copyright owner as + "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + Copyright 2024–2026 DeviceLab and the Project Contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 00000000..97a475f1 --- /dev/null +++ b/REUSE.toml @@ -0,0 +1,67 @@ +version = 1 + +[[annotations]] +path = [ + ".github/**", + ".gitignore", + ".goreleaser.yml", + "CHANGELOG.md", + "CODE_OF_CONDUCT.md", + "CONTRIBUTING.md", + "CONTRIBUTORS.md", + "DESIGN.md", + "DEVELOPER.md", + "LICENSE", + "Makefile", + "README.md", + "codecov.yml", + "docs/**", + "go.mod", + "go.sum", + "llms.txt", + "drivers/ios/DevicelabIOSRunner/DevicelabIOSRunner.xcodeproj/**", + "drivers/ios/DevicelabIOSRunner/PROTOCOL.md", + "drivers/ios/DevicelabIOSRunner/README.md", + "drivers/ios/DevicelabIOSRunner/project.yml", + "drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/ATTRIBUTION.md", + # "drivers/android/devicelab-android-driver.apk", + # "drivers/android/devicelab-android-driver-test.apk", + # "drivers/android/settings_apk-debug.apk", +] +SPDX-FileCopyrightText = "2024 DeviceLab" +SPDX-License-Identifier = "LicenseRef-maestro-runner" + +[[annotations]] +path = [ + "drivers/android/appium-uiautomator2-server-debug-androidTest.apk", + "drivers/android/appium-uiautomator2-server-v9.11.1.apk", +] +SPDX-FileCopyrightText = "JS Foundation and other contributors, https://js.foundation" +SPDX-License-Identifier = "LicenseRef-appium-uiautomator2-server" + +[[annotations]] +path = [ + "drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests*.swift", + "drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerObjCExceptionCatcher.h", + "drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerObjCExceptionCatcher.m", +] +SPDX-FileCopyrightText = "2026 Callstack" +SPDX-License-Identifier = "LicenseRef-agent-device" + +[[annotations]] +path = [ + "drivers/ios/WebDriverAgent/**", + "drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/PrivateHeaders/**", +] +SPDX-FileCopyrightText = "2015-present, Facebook, Inc." +SPDX-License-Identifier = "LicenseRef-appium-WebDriverAgent" + +[[annotations]] +path = "drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/CocoaHTTPServer/**" +SPDX-FileCopyrightText = "2011, Deusty, LLC" +SPDX-License-Identifier = "LicenseRef-CocoaHTTPServer" + +[[annotations]] +path = "drivers/ios/WebDriverAgent/WebDriverAgentLib/Vendor/RoutingHTTPServer/**" +SPDX-FileCopyrightText = "2011 Matt Stevens" +SPDX-License-Identifier = "LicenseRef-RoutingHTTPServer" diff --git a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunner/App.swift b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunner/App.swift index cf7cafd8..649fe3d3 100644 --- a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunner/App.swift +++ b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunner/App.swift @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + import SwiftUI @main diff --git a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/Bridging-Header.h b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/Bridging-Header.h index 2623740e..06c6176f 100644 --- a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/Bridging-Header.h +++ b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/Bridging-Header.h @@ -1,2 +1,8 @@ +/* + * SPDX-FileCopyrightText: 2024–2026 DeviceLab and the Project Contributors + * + * SPDX-License-Identifier: LicenseRef-maestro-runner + */ + #import "RunnerObjCExceptionCatcher.h" #import "SyntheticTyping.h" diff --git a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/PixelDiff.swift b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/PixelDiff.swift index 7a1b3f46..dd361ed9 100644 --- a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/PixelDiff.swift +++ b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/PixelDiff.swift @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Local file (not in upstream agent-device). Computes the fraction of // differing pixels between two UIImages by drawing each into a raw RGBA // byte buffer via CGContext and comparing those buffers directly. Used diff --git a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+CommandExecution.swift b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+CommandExecution.swift index 1e790509..a7b9c511 100644 --- a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+CommandExecution.swift +++ b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+CommandExecution.swift @@ -1,3 +1,8 @@ +// SPDX-FileCopyrightText: 2026 Callstack +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-agent-device + import XCTest extension RunnerTests { diff --git a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Environment.swift b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Environment.swift index 8a168239..e765c406 100644 --- a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Environment.swift +++ b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Environment.swift @@ -1,3 +1,8 @@ +// SPDX-FileCopyrightText: 2026 Callstack +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-agent-device + import Foundation // MARK: - Environment diff --git a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Interaction.swift b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Interaction.swift index b602623f..3781e4b0 100644 --- a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Interaction.swift +++ b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Interaction.swift @@ -1,3 +1,8 @@ +// SPDX-FileCopyrightText: 2026 Callstack +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-agent-device + import XCTest extension RunnerTests { diff --git a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Models.swift b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Models.swift index 824c51e0..0344ec59 100644 --- a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Models.swift +++ b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Models.swift @@ -1,3 +1,8 @@ +// SPDX-FileCopyrightText: 2026 Callstack +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-agent-device + // MARK: - Wire Models enum CommandType: String, Codable { diff --git a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Snapshot.swift b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Snapshot.swift index 9623c342..7ccb4828 100644 --- a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Snapshot.swift +++ b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+Snapshot.swift @@ -1,3 +1,8 @@ +// SPDX-FileCopyrightText: 2026 Callstack +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-agent-device + import XCTest extension RunnerTests { diff --git a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+SystemModal.swift b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+SystemModal.swift index bdeea7b2..82f8a6a7 100644 --- a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+SystemModal.swift +++ b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/RunnerTests+SystemModal.swift @@ -1,3 +1,8 @@ +// SPDX-FileCopyrightText: 2026 Callstack +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-agent-device + import XCTest extension RunnerTests { diff --git a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.h b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.h index 3e022e94..7aab9d67 100644 --- a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.h +++ b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.h @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2024–2026 DeviceLab and the Project Contributors + * + * SPDX-License-Identifier: LicenseRef-maestro-runner + */ + #import NS_ASSUME_NONNULL_BEGIN diff --git a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.m b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.m index b9c0ad05..ed3b7d09 100644 --- a/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.m +++ b/drivers/ios/DevicelabIOSRunner/DevicelabIOSRunnerUITests/SyntheticTyping.m @@ -1,3 +1,7 @@ +% SPDX-FileCopyrightText: 2024–2026 DeviceLab and the Project Contributors +% +% SPDX-License-Identifier: LicenseRef-maestro-runner + #import "SyntheticTyping.h" #import #import "PrivateHeaders/XCTest/XCSynthesizedEventRecord.h" diff --git a/main.go b/main.go index d2af6098..d789b120 100644 --- a/main.go +++ b/main.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package main is the entry point for maestro-runner CLI. package main diff --git a/pkg/cli/android.go b/pkg/cli/android.go index 145acf18..625d62df 100644 --- a/pkg/cli/android.go +++ b/pkg/cli/android.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cli import ( diff --git a/pkg/cli/cli.go b/pkg/cli/cli.go index 113e94b6..0593178d 100644 --- a/pkg/cli/cli.go +++ b/pkg/cli/cli.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package cli provides the command-line interface for maestro-runner. package cli diff --git a/pkg/cli/cli_test.go b/pkg/cli/cli_test.go index 3283cf9b..36cd8c2f 100644 --- a/pkg/cli/cli_test.go +++ b/pkg/cli/cli_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cli import ( diff --git a/pkg/cli/device.go b/pkg/cli/device.go index e502b325..e105581e 100644 --- a/pkg/cli/device.go +++ b/pkg/cli/device.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cli import ( diff --git a/pkg/cli/envfile.go b/pkg/cli/envfile.go index 8048d231..f2a28c65 100644 --- a/pkg/cli/envfile.go +++ b/pkg/cli/envfile.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cli import ( diff --git a/pkg/cli/envfile_test.go b/pkg/cli/envfile_test.go index e41ea02e..a6d6c5d0 100644 --- a/pkg/cli/envfile_test.go +++ b/pkg/cli/envfile_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cli import ( diff --git a/pkg/cli/flutter_check.go b/pkg/cli/flutter_check.go index 1e48af62..1457944f 100644 --- a/pkg/cli/flutter_check.go +++ b/pkg/cli/flutter_check.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cli import ( diff --git a/pkg/cli/flutter_check_test.go b/pkg/cli/flutter_check_test.go index 939917bf..dc0afeaa 100644 --- a/pkg/cli/flutter_check_test.go +++ b/pkg/cli/flutter_check_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cli import ( diff --git a/pkg/cli/ios.go b/pkg/cli/ios.go index d48df3c4..3bedb917 100644 --- a/pkg/cli/ios.go +++ b/pkg/cli/ios.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cli import ( diff --git a/pkg/cli/ios_devicelab.go b/pkg/cli/ios_devicelab.go index 8f3f201a..e8ac93d6 100644 --- a/pkg/cli/ios_devicelab.go +++ b/pkg/cli/ios_devicelab.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cli import ( diff --git a/pkg/cli/test.go b/pkg/cli/test.go index c86879b0..60062735 100644 --- a/pkg/cli/test.go +++ b/pkg/cli/test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cli import ( diff --git a/pkg/cli/test_unified_output.go b/pkg/cli/test_unified_output.go index c69b5e51..79540372 100644 --- a/pkg/cli/test_unified_output.go +++ b/pkg/cli/test_unified_output.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cli import ( diff --git a/pkg/cli/update.go b/pkg/cli/update.go index b21b26fa..939dc7b6 100644 --- a/pkg/cli/update.go +++ b/pkg/cli/update.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cli import ( diff --git a/pkg/cli/wda.go b/pkg/cli/wda.go index 3b07718e..d7352f2e 100644 --- a/pkg/cli/wda.go +++ b/pkg/cli/wda.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cli import ( diff --git a/pkg/cli/web.go b/pkg/cli/web.go index 8e532407..90b2e893 100644 --- a/pkg/cli/web.go +++ b/pkg/cli/web.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cli import ( diff --git a/pkg/cloud/composite.go b/pkg/cloud/composite.go index 3c5d35ee..e42f871f 100644 --- a/pkg/cloud/composite.go +++ b/pkg/cloud/composite.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package cloud — composite provider. // // Composite fans every Provider hook out to several providers at once, so a diff --git a/pkg/cloud/composite_test.go b/pkg/cloud/composite_test.go index 884715cb..03576a21 100644 --- a/pkg/cloud/composite_test.go +++ b/pkg/cloud/composite_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cloud import ( diff --git a/pkg/cloud/example_provider.go b/pkg/cloud/example_provider.go index 06729cd9..ea60da71 100644 --- a/pkg/cloud/example_provider.go +++ b/pkg/cloud/example_provider.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // This file is a skeleton for adding a new cloud provider. // Copy this file, rename it, and implement the TODOs. // diff --git a/pkg/cloud/loopback.go b/pkg/cloud/loopback.go index 28c4de32..7ce342bf 100644 --- a/pkg/cloud/loopback.go +++ b/pkg/cloud/loopback.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package cloud — loopback provider. // // The loopback provider is a debug-only stand-in that mimics a cloud provider diff --git a/pkg/cloud/loopback_test.go b/pkg/cloud/loopback_test.go index e1fb2a3b..bb33e0d2 100644 --- a/pkg/cloud/loopback_test.go +++ b/pkg/cloud/loopback_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cloud import ( diff --git a/pkg/cloud/provider.go b/pkg/cloud/provider.go index 2eaaa708..aa940abf 100644 --- a/pkg/cloud/provider.go +++ b/pkg/cloud/provider.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package cloud provides an abstraction for cloud device providers // (Sauce Labs, BrowserStack, LambdaTest, TestingBot, etc.). // diff --git a/pkg/cloud/provider_test.go b/pkg/cloud/provider_test.go index c68f690c..33d7af08 100644 --- a/pkg/cloud/provider_test.go +++ b/pkg/cloud/provider_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cloud import "testing" diff --git a/pkg/cloud/saucelabs.go b/pkg/cloud/saucelabs.go index 7a24ac30..cee5ed64 100644 --- a/pkg/cloud/saucelabs.go +++ b/pkg/cloud/saucelabs.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cloud import ( diff --git a/pkg/cloud/saucelabs_test.go b/pkg/cloud/saucelabs_test.go index 32abaa44..c8dc80e1 100644 --- a/pkg/cloud/saucelabs_test.go +++ b/pkg/cloud/saucelabs_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cloud import ( diff --git a/pkg/cloud/session_export.go b/pkg/cloud/session_export.go index c23175ec..28ad34bb 100644 --- a/pkg/cloud/session_export.go +++ b/pkg/cloud/session_export.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package cloud — Appium session exporter. // // SessionExporter is an always-on (opt-in) Provider that publishes the live diff --git a/pkg/cloud/session_export_test.go b/pkg/cloud/session_export_test.go index 1a6013fd..0e9af772 100644 --- a/pkg/cloud/session_export_test.go +++ b/pkg/cloud/session_export_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cloud import ( diff --git a/pkg/config/config.go b/pkg/config/config.go index b7de3a14..f2cc0907 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package config handles configuration for maestro-runner. package config diff --git a/pkg/config/config_test.go b/pkg/config/config_test.go index ca1c7ba8..2e250582 100644 --- a/pkg/config/config_test.go +++ b/pkg/config/config_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package config import ( diff --git a/pkg/config/home.go b/pkg/config/home.go index 43cd16da..7f444400 100644 --- a/pkg/config/home.go +++ b/pkg/config/home.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package config import ( diff --git a/pkg/config/home_test.go b/pkg/config/home_test.go index b1010380..1ce1e249 100644 --- a/pkg/config/home_test.go +++ b/pkg/config/home_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package config import ( diff --git a/pkg/core/artifacts.go b/pkg/core/artifacts.go index 77f832bd..512a3bc0 100644 --- a/pkg/core/artifacts.go +++ b/pkg/core/artifacts.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package core provides the execution model types for maestro-runner. package core diff --git a/pkg/core/artifacts_test.go b/pkg/core/artifacts_test.go index 2e4b0cbb..940ff21b 100644 --- a/pkg/core/artifacts_test.go +++ b/pkg/core/artifacts_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import ( diff --git a/pkg/core/driver.go b/pkg/core/driver.go index b2213b67..6075d276 100644 --- a/pkg/core/driver.go +++ b/pkg/core/driver.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import ( diff --git a/pkg/core/driver_test.go b/pkg/core/driver_test.go index 0ccabdf0..f54f3be0 100644 --- a/pkg/core/driver_test.go +++ b/pkg/core/driver_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import ( diff --git a/pkg/core/element.go b/pkg/core/element.go index d3ffe327..503bf74a 100644 --- a/pkg/core/element.go +++ b/pkg/core/element.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core // Element is an abstraction over native (UIAutomator2) and web (Rod/CDP) elements. diff --git a/pkg/core/errors.go b/pkg/core/errors.go index 1fe44d07..2bacc9b1 100644 --- a/pkg/core/errors.go +++ b/pkg/core/errors.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import ( diff --git a/pkg/core/errors_test.go b/pkg/core/errors_test.go index f9808be0..722db603 100644 --- a/pkg/core/errors_test.go +++ b/pkg/core/errors_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import ( diff --git a/pkg/core/imagediff.go b/pkg/core/imagediff.go index a55e81d2..431aee50 100644 --- a/pkg/core/imagediff.go +++ b/pkg/core/imagediff.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import ( diff --git a/pkg/core/imagediff_test.go b/pkg/core/imagediff_test.go index b30d3ca3..08affb44 100644 --- a/pkg/core/imagediff_test.go +++ b/pkg/core/imagediff_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import ( diff --git a/pkg/core/point.go b/pkg/core/point.go index 0ecf7a38..60259931 100644 --- a/pkg/core/point.go +++ b/pkg/core/point.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import ( diff --git a/pkg/core/point_test.go b/pkg/core/point_test.go index 4d50b839..08bfc6a6 100644 --- a/pkg/core/point_test.go +++ b/pkg/core/point_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import ( diff --git a/pkg/core/random.go b/pkg/core/random.go index fb470956..da14c7e5 100644 --- a/pkg/core/random.go +++ b/pkg/core/random.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import "math/rand" diff --git a/pkg/core/random_test.go b/pkg/core/random_test.go index e00a24c1..a1c3f264 100644 --- a/pkg/core/random_test.go +++ b/pkg/core/random_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import ( diff --git a/pkg/core/result.go b/pkg/core/result.go index ba933238..abb8a30b 100644 --- a/pkg/core/result.go +++ b/pkg/core/result.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import ( diff --git a/pkg/core/result_test.go b/pkg/core/result_test.go index 5a53e607..d4b7f697 100644 --- a/pkg/core/result_test.go +++ b/pkg/core/result_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import ( diff --git a/pkg/core/screenshot.go b/pkg/core/screenshot.go index 7ce79cd8..c382c02c 100644 --- a/pkg/core/screenshot.go +++ b/pkg/core/screenshot.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import ( diff --git a/pkg/core/screenshot_test.go b/pkg/core/screenshot_test.go index 7414c9e3..7e845755 100644 --- a/pkg/core/screenshot_test.go +++ b/pkg/core/screenshot_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import ( diff --git a/pkg/core/status.go b/pkg/core/status.go index 3d93ee6e..18eb98e3 100644 --- a/pkg/core/status.go +++ b/pkg/core/status.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core // StepStatus represents the execution status of a step diff --git a/pkg/core/status_test.go b/pkg/core/status_test.go index 27daf4fa..425d45d1 100644 --- a/pkg/core/status_test.go +++ b/pkg/core/status_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package core import "testing" diff --git a/pkg/device/android.go b/pkg/device/android.go index 1dc0025f..48d3af43 100644 --- a/pkg/device/android.go +++ b/pkg/device/android.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package device provides Android device management via ADB. package device diff --git a/pkg/device/android_test.go b/pkg/device/android_test.go index b2c1549a..b2df7d90 100644 --- a/pkg/device/android_test.go +++ b/pkg/device/android_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package device import ( diff --git a/pkg/device/devicelab_driver.go b/pkg/device/devicelab_driver.go index 06791e55..ac97df29 100644 --- a/pkg/device/devicelab_driver.go +++ b/pkg/device/devicelab_driver.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package device import ( diff --git a/pkg/device/devicelab_driver_test.go b/pkg/device/devicelab_driver_test.go index cab463f9..639cad04 100644 --- a/pkg/device/devicelab_driver_test.go +++ b/pkg/device/devicelab_driver_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package device import ( diff --git a/pkg/device/discover.go b/pkg/device/discover.go index dddecbbb..e9c24dfd 100644 --- a/pkg/device/discover.go +++ b/pkg/device/discover.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package device import ( diff --git a/pkg/device/discover_test.go b/pkg/device/discover_test.go index 1dd5dbb1..14f38034 100644 --- a/pkg/device/discover_test.go +++ b/pkg/device/discover_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package device import ( diff --git a/pkg/device/exec.go b/pkg/device/exec.go index 1e5ce68e..51db5118 100644 --- a/pkg/device/exec.go +++ b/pkg/device/exec.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package device import "os/exec" diff --git a/pkg/device/exec_test.go b/pkg/device/exec_test.go index 0e05e671..6a0d5390 100644 --- a/pkg/device/exec_test.go +++ b/pkg/device/exec_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package device import ( diff --git a/pkg/device/uiautomator.go b/pkg/device/uiautomator.go index 64522d52..669b59f4 100644 --- a/pkg/device/uiautomator.go +++ b/pkg/device/uiautomator.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package device import ( diff --git a/pkg/device/uiautomator_test.go b/pkg/device/uiautomator_test.go index e0474c61..f58134d2 100644 --- a/pkg/device/uiautomator_test.go +++ b/pkg/device/uiautomator_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package device import ( diff --git a/pkg/driver/appium/client.go b/pkg/driver/appium/client.go index 8c2cb895..4141d0c1 100644 --- a/pkg/driver/appium/client.go +++ b/pkg/driver/appium/client.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package appium implements core.Driver using Appium server via W3C WebDriver protocol. package appium diff --git a/pkg/driver/appium/client_test.go b/pkg/driver/appium/client_test.go index 1d2bc91d..96e355ba 100644 --- a/pkg/driver/appium/client_test.go +++ b/pkg/driver/appium/client_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package appium import ( diff --git a/pkg/driver/appium/commands.go b/pkg/driver/appium/commands.go index 7a3e3db2..9408655b 100644 --- a/pkg/driver/appium/commands.go +++ b/pkg/driver/appium/commands.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package appium import ( diff --git a/pkg/driver/appium/commands_test.go b/pkg/driver/appium/commands_test.go index 12bdb126..75cd28cf 100644 --- a/pkg/driver/appium/commands_test.go +++ b/pkg/driver/appium/commands_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package appium import ( diff --git a/pkg/driver/appium/driver.go b/pkg/driver/appium/driver.go index a02f19c0..57fa942a 100644 --- a/pkg/driver/appium/driver.go +++ b/pkg/driver/appium/driver.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package appium import ( diff --git a/pkg/driver/appium/driver_test.go b/pkg/driver/appium/driver_test.go index 7d8e17c2..9e653716 100644 --- a/pkg/driver/appium/driver_test.go +++ b/pkg/driver/appium/driver_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package appium import ( diff --git a/pkg/driver/appium/pagesource.go b/pkg/driver/appium/pagesource.go index 15b15df6..882957b7 100644 --- a/pkg/driver/appium/pagesource.go +++ b/pkg/driver/appium/pagesource.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package appium import ( diff --git a/pkg/driver/appium/pagesource_test.go b/pkg/driver/appium/pagesource_test.go index b1844301..9142c33e 100644 --- a/pkg/driver/appium/pagesource_test.go +++ b/pkg/driver/appium/pagesource_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package appium import ( diff --git a/pkg/driver/browser/cdp/actionable_test.go b/pkg/driver/browser/cdp/actionable_test.go index d6272300..7f785bc0 100644 --- a/pkg/driver/browser/cdp/actionable_test.go +++ b/pkg/driver/browser/cdp/actionable_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cdp import ( diff --git a/pkg/driver/browser/cdp/commands.go b/pkg/driver/browser/cdp/commands.go index 191dcb5b..2ae8dcb6 100644 --- a/pkg/driver/browser/cdp/commands.go +++ b/pkg/driver/browser/cdp/commands.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cdp import ( diff --git a/pkg/driver/browser/cdp/commands_iframe_test.go b/pkg/driver/browser/cdp/commands_iframe_test.go index e9bf30fe..b6fda841 100644 --- a/pkg/driver/browser/cdp/commands_iframe_test.go +++ b/pkg/driver/browser/cdp/commands_iframe_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cdp import ( diff --git a/pkg/driver/browser/cdp/console_report_test.go b/pkg/driver/browser/cdp/console_report_test.go index 02b957ca..50840200 100644 --- a/pkg/driver/browser/cdp/console_report_test.go +++ b/pkg/driver/browser/cdp/console_report_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cdp import ( diff --git a/pkg/driver/browser/cdp/driver.go b/pkg/driver/browser/cdp/driver.go index 209479d0..fd8fd2b7 100644 --- a/pkg/driver/browser/cdp/driver.go +++ b/pkg/driver/browser/cdp/driver.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cdp import ( diff --git a/pkg/driver/browser/cdp/driver_test.go b/pkg/driver/browser/cdp/driver_test.go index 7941af05..ad7a8cbe 100644 --- a/pkg/driver/browser/cdp/driver_test.go +++ b/pkg/driver/browser/cdp/driver_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cdp import ( diff --git a/pkg/driver/browser/cdp/finder.go b/pkg/driver/browser/cdp/finder.go index 194a88ec..3ec79e57 100644 --- a/pkg/driver/browser/cdp/finder.go +++ b/pkg/driver/browser/cdp/finder.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package cdp import ( diff --git a/pkg/driver/browser/cdp/jshelper.go b/pkg/driver/browser/cdp/jshelper.go index 78cf3839..6ff443ac 100644 --- a/pkg/driver/browser/cdp/jshelper.go +++ b/pkg/driver/browser/cdp/jshelper.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package cdp provides a browser automation driver using Rod (go-rod/rod) + CDP. package cdp diff --git a/pkg/driver/browser/cdp/jshelper.js b/pkg/driver/browser/cdp/jshelper.js index 17cd5cd4..1706e565 100644 --- a/pkg/driver/browser/cdp/jshelper.js +++ b/pkg/driver/browser/cdp/jshelper.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + window.__maestro = { // Tracks how many cross-origin iframes _collectRoots skipped on the most // recent walk. Read by the Go side to surface a clear error when a query diff --git a/pkg/driver/devicelab/boundstappable_test.go b/pkg/driver/devicelab/boundstappable_test.go index 24ed61de..24c6ef03 100644 --- a/pkg/driver/devicelab/boundstappable_test.go +++ b/pkg/driver/devicelab/boundstappable_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab import ( diff --git a/pkg/driver/devicelab/browser_jshelper.js b/pkg/driver/devicelab/browser_jshelper.js index aba8deb2..69a4cedf 100644 --- a/pkg/driver/devicelab/browser_jshelper.js +++ b/pkg/driver/devicelab/browser_jshelper.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + (function() { // Override alert/confirm/prompt — on page-level Chrome Android CDP connections, // a native dialog freezes ALL CDP commands including Page.handleJavaScriptDialog. diff --git a/pkg/driver/devicelab/commands.go b/pkg/driver/devicelab/commands.go index b0bb789a..f40ba949 100644 --- a/pkg/driver/devicelab/commands.go +++ b/pkg/driver/devicelab/commands.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab import ( diff --git a/pkg/driver/devicelab/commands_helpers_test.go b/pkg/driver/devicelab/commands_helpers_test.go index c1aef7d1..fede2b76 100644 --- a/pkg/driver/devicelab/commands_helpers_test.go +++ b/pkg/driver/devicelab/commands_helpers_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab import ( diff --git a/pkg/driver/devicelab/commands_test.go b/pkg/driver/devicelab/commands_test.go index 8f692253..a61d63c4 100644 --- a/pkg/driver/devicelab/commands_test.go +++ b/pkg/driver/devicelab/commands_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab import ( diff --git a/pkg/driver/devicelab/driver.go b/pkg/driver/devicelab/driver.go index 15f8e93f..02dc5439 100644 --- a/pkg/driver/devicelab/driver.go +++ b/pkg/driver/devicelab/driver.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package devicelab provides Android automation driver using the DeviceLab Android Driver. // This is a WebSocket-based driver with on-device RPC for app lifecycle operations. // Unlike the UIAutomator2 HTTP driver, element taps are always coordinate-based diff --git a/pkg/driver/devicelab/jshelpers.go b/pkg/driver/devicelab/jshelpers.go index 1df63f2f..973c3918 100644 --- a/pkg/driver/devicelab/jshelpers.go +++ b/pkg/driver/devicelab/jshelpers.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab import _ "embed" diff --git a/pkg/driver/devicelab/keyboard.go b/pkg/driver/devicelab/keyboard.go index cf7d07ff..73e065da 100644 --- a/pkg/driver/devicelab/keyboard.go +++ b/pkg/driver/devicelab/keyboard.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab import ( diff --git a/pkg/driver/devicelab/lazyretry_test.go b/pkg/driver/devicelab/lazyretry_test.go index cd382bda..0bc55e55 100644 --- a/pkg/driver/devicelab/lazyretry_test.go +++ b/pkg/driver/devicelab/lazyretry_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab import ( diff --git a/pkg/driver/devicelab/native_element.go b/pkg/driver/devicelab/native_element.go index 7f01d3bc..f0d3b358 100644 --- a/pkg/driver/devicelab/native_element.go +++ b/pkg/driver/devicelab/native_element.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab import ( diff --git a/pkg/driver/devicelab/pagesource.go b/pkg/driver/devicelab/pagesource.go index 770c1cdf..cd0d6293 100644 --- a/pkg/driver/devicelab/pagesource.go +++ b/pkg/driver/devicelab/pagesource.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab import ( diff --git a/pkg/driver/devicelab/pagesource_helpers_test.go b/pkg/driver/devicelab/pagesource_helpers_test.go index c5753227..1a2814e3 100644 --- a/pkg/driver/devicelab/pagesource_helpers_test.go +++ b/pkg/driver/devicelab/pagesource_helpers_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab import ( diff --git a/pkg/driver/devicelab/physicalscreen_test.go b/pkg/driver/devicelab/physicalscreen_test.go index bdcae11d..8b856e4a 100644 --- a/pkg/driver/devicelab/physicalscreen_test.go +++ b/pkg/driver/devicelab/physicalscreen_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab import ( diff --git a/pkg/driver/devicelab/web_element.go b/pkg/driver/devicelab/web_element.go index 2ca2db4e..dd6108d5 100644 --- a/pkg/driver/devicelab/web_element.go +++ b/pkg/driver/devicelab/web_element.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab import ( diff --git a/pkg/driver/devicelab/webview.go b/pkg/driver/devicelab/webview.go index 4053c96d..410b8f30 100644 --- a/pkg/driver/devicelab/webview.go +++ b/pkg/driver/devicelab/webview.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab import ( diff --git a/pkg/driver/devicelab/webview_jshelper.js b/pkg/driver/devicelab/webview_jshelper.js index 79216bde..802335f2 100644 --- a/pkg/driver/devicelab/webview_jshelper.js +++ b/pkg/driver/devicelab/webview_jshelper.js @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + window.__maestro = { findByText: function(text) { var lower = text.toLowerCase(); diff --git a/pkg/driver/devicelab_ios/build.go b/pkg/driver/devicelab_ios/build.go index 4fbb911b..d5e4a920 100644 --- a/pkg/driver/devicelab_ios/build.go +++ b/pkg/driver/devicelab_ios/build.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab_ios import ( diff --git a/pkg/driver/devicelab_ios/client.go b/pkg/driver/devicelab_ios/client.go index 96d453f1..0181cecf 100644 --- a/pkg/driver/devicelab_ios/client.go +++ b/pkg/driver/devicelab_ios/client.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab_ios import ( diff --git a/pkg/driver/devicelab_ios/commands.go b/pkg/driver/devicelab_ios/commands.go index e74c6bc8..22355328 100644 --- a/pkg/driver/devicelab_ios/commands.go +++ b/pkg/driver/devicelab_ios/commands.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab_ios import ( diff --git a/pkg/driver/devicelab_ios/driver.go b/pkg/driver/devicelab_ios/driver.go index cabf8f8f..acbb6d80 100644 --- a/pkg/driver/devicelab_ios/driver.go +++ b/pkg/driver/devicelab_ios/driver.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab_ios import ( diff --git a/pkg/driver/devicelab_ios/pagesource.go b/pkg/driver/devicelab_ios/pagesource.go index 55e78d72..0d8ff18d 100644 --- a/pkg/driver/devicelab_ios/pagesource.go +++ b/pkg/driver/devicelab_ios/pagesource.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab_ios import ( diff --git a/pkg/driver/devicelab_ios/setup.go b/pkg/driver/devicelab_ios/setup.go index 830e6368..ae355685 100644 --- a/pkg/driver/devicelab_ios/setup.go +++ b/pkg/driver/devicelab_ios/setup.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab_ios import ( diff --git a/pkg/driver/devicelab_ios/simctl.go b/pkg/driver/devicelab_ios/simctl.go index 7a6d03b6..3dbfa28e 100644 --- a/pkg/driver/devicelab_ios/simctl.go +++ b/pkg/driver/devicelab_ios/simctl.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package devicelab_ios import ( diff --git a/pkg/driver/devicelab_ios/types.go b/pkg/driver/devicelab_ios/types.go index 2f76681f..34a4e64b 100644 --- a/pkg/driver/devicelab_ios/types.go +++ b/pkg/driver/devicelab_ios/types.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package devicelab_ios provides the Go client for the devicelab-ios-runner // XCUITest-based iOS driver. The runner source lives at // /Users/omnarayan/work/support-tools/devicelab-ios-runner and is a verbatim diff --git a/pkg/driver/mock/mock.go b/pkg/driver/mock/mock.go index fbe6b44d..dd80ff4e 100644 --- a/pkg/driver/mock/mock.go +++ b/pkg/driver/mock/mock.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package mock provides a mock driver for testing without a real device. package mock diff --git a/pkg/driver/mock/mock_test.go b/pkg/driver/mock/mock_test.go index d1b349ea..d1c3bf57 100644 --- a/pkg/driver/mock/mock_test.go +++ b/pkg/driver/mock/mock_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package mock import ( diff --git a/pkg/driver/uiautomator2/commands.go b/pkg/driver/uiautomator2/commands.go index 054248ad..2922bdc1 100644 --- a/pkg/driver/uiautomator2/commands.go +++ b/pkg/driver/uiautomator2/commands.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 import ( diff --git a/pkg/driver/uiautomator2/commands_test.go b/pkg/driver/uiautomator2/commands_test.go index 744db0e6..951f3ca1 100644 --- a/pkg/driver/uiautomator2/commands_test.go +++ b/pkg/driver/uiautomator2/commands_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 import ( diff --git a/pkg/driver/uiautomator2/driver.go b/pkg/driver/uiautomator2/driver.go index 742b18e6..1967196a 100644 --- a/pkg/driver/uiautomator2/driver.go +++ b/pkg/driver/uiautomator2/driver.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package uiautomator2 provides Android automation driver using UIAutomator2 server. package uiautomator2 diff --git a/pkg/driver/uiautomator2/driver_test.go b/pkg/driver/uiautomator2/driver_test.go index 10a600f4..9e422b4b 100644 --- a/pkg/driver/uiautomator2/driver_test.go +++ b/pkg/driver/uiautomator2/driver_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 import ( diff --git a/pkg/driver/uiautomator2/keyboard.go b/pkg/driver/uiautomator2/keyboard.go index 81efecae..d94ff878 100644 --- a/pkg/driver/uiautomator2/keyboard.go +++ b/pkg/driver/uiautomator2/keyboard.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 import ( diff --git a/pkg/driver/uiautomator2/keyboard_test.go b/pkg/driver/uiautomator2/keyboard_test.go index d0c46238..2dc3b815 100644 --- a/pkg/driver/uiautomator2/keyboard_test.go +++ b/pkg/driver/uiautomator2/keyboard_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 import ( diff --git a/pkg/driver/uiautomator2/pagesource.go b/pkg/driver/uiautomator2/pagesource.go index 84d82ae2..12782892 100644 --- a/pkg/driver/uiautomator2/pagesource.go +++ b/pkg/driver/uiautomator2/pagesource.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 import ( diff --git a/pkg/driver/uiautomator2/pagesource_test.go b/pkg/driver/uiautomator2/pagesource_test.go index 8be48dba..1ab8db71 100644 --- a/pkg/driver/uiautomator2/pagesource_test.go +++ b/pkg/driver/uiautomator2/pagesource_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 import ( diff --git a/pkg/driver/wda/client.go b/pkg/driver/wda/client.go index 35274c53..ccacb5bf 100644 --- a/pkg/driver/wda/client.go +++ b/pkg/driver/wda/client.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package wda provides WebDriverAgent client for iOS automation. package wda diff --git a/pkg/driver/wda/client_test.go b/pkg/driver/wda/client_test.go index b064e576..b5dc10c8 100644 --- a/pkg/driver/wda/client_test.go +++ b/pkg/driver/wda/client_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package wda import ( diff --git a/pkg/driver/wda/commands.go b/pkg/driver/wda/commands.go index 6ffde1b1..d784b3dd 100644 --- a/pkg/driver/wda/commands.go +++ b/pkg/driver/wda/commands.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package wda import ( diff --git a/pkg/driver/wda/commands_test.go b/pkg/driver/wda/commands_test.go index 4501876b..5153cd60 100644 --- a/pkg/driver/wda/commands_test.go +++ b/pkg/driver/wda/commands_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package wda import ( diff --git a/pkg/driver/wda/crashloop_test.go b/pkg/driver/wda/crashloop_test.go index 5f0d6812..a4ba889c 100644 --- a/pkg/driver/wda/crashloop_test.go +++ b/pkg/driver/wda/crashloop_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package wda import ( diff --git a/pkg/driver/wda/driver.go b/pkg/driver/wda/driver.go index ce60338f..115b10ed 100644 --- a/pkg/driver/wda/driver.go +++ b/pkg/driver/wda/driver.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package wda import ( diff --git a/pkg/driver/wda/driver_test.go b/pkg/driver/wda/driver_test.go index 5952c60e..22f38a77 100644 --- a/pkg/driver/wda/driver_test.go +++ b/pkg/driver/wda/driver_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package wda import ( diff --git a/pkg/driver/wda/exec.go b/pkg/driver/wda/exec.go index 136866be..4ca15142 100644 --- a/pkg/driver/wda/exec.go +++ b/pkg/driver/wda/exec.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package wda import "os/exec" diff --git a/pkg/driver/wda/pagesource.go b/pkg/driver/wda/pagesource.go index dc11b761..375de9dc 100644 --- a/pkg/driver/wda/pagesource.go +++ b/pkg/driver/wda/pagesource.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package wda import ( diff --git a/pkg/driver/wda/pagesource_test.go b/pkg/driver/wda/pagesource_test.go index e4537882..578da668 100644 --- a/pkg/driver/wda/pagesource_test.go +++ b/pkg/driver/wda/pagesource_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package wda import ( diff --git a/pkg/driver/wda/runner.go b/pkg/driver/wda/runner.go index bb52fb0c..61b1f8f1 100644 --- a/pkg/driver/wda/runner.go +++ b/pkg/driver/wda/runner.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package wda import ( diff --git a/pkg/driver/wda/runner_test.go b/pkg/driver/wda/runner_test.go index 3058253c..a480af95 100644 --- a/pkg/driver/wda/runner_test.go +++ b/pkg/driver/wda/runner_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package wda import ( diff --git a/pkg/driver/wda/setup.go b/pkg/driver/wda/setup.go index 03f97e06..2495fec3 100644 --- a/pkg/driver/wda/setup.go +++ b/pkg/driver/wda/setup.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package wda import ( diff --git a/pkg/emulator/android.go b/pkg/emulator/android.go index 80764f61..b5a20723 100644 --- a/pkg/emulator/android.go +++ b/pkg/emulator/android.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package emulator import ( diff --git a/pkg/emulator/android_test.go b/pkg/emulator/android_test.go index 895ed9ee..9b9e2859 100644 --- a/pkg/emulator/android_test.go +++ b/pkg/emulator/android_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package emulator import ( diff --git a/pkg/emulator/exec.go b/pkg/emulator/exec.go index 1c66f990..5e198683 100644 --- a/pkg/emulator/exec.go +++ b/pkg/emulator/exec.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package emulator import "os/exec" diff --git a/pkg/emulator/exec_test.go b/pkg/emulator/exec_test.go index 2a788830..3cda4081 100644 --- a/pkg/emulator/exec_test.go +++ b/pkg/emulator/exec_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package emulator import ( diff --git a/pkg/emulator/manager.go b/pkg/emulator/manager.go index 8f35121d..99172708 100644 --- a/pkg/emulator/manager.go +++ b/pkg/emulator/manager.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package emulator import ( diff --git a/pkg/emulator/types.go b/pkg/emulator/types.go index a672e2aa..b1447910 100644 --- a/pkg/emulator/types.go +++ b/pkg/emulator/types.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package emulator import ( diff --git a/pkg/executor/convert.go b/pkg/executor/convert.go index c970f003..b9ee08d1 100644 --- a/pkg/executor/convert.go +++ b/pkg/executor/convert.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package executor import ( diff --git a/pkg/executor/convert_test.go b/pkg/executor/convert_test.go index 68cff752..944cd6b8 100644 --- a/pkg/executor/convert_test.go +++ b/pkg/executor/convert_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package executor import ( diff --git a/pkg/executor/flow_runner.go b/pkg/executor/flow_runner.go index 80cf6726..d39930d0 100644 --- a/pkg/executor/flow_runner.go +++ b/pkg/executor/flow_runner.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package executor import ( diff --git a/pkg/executor/flow_runner_console_test.go b/pkg/executor/flow_runner_console_test.go index 265ed83d..2d19e706 100644 --- a/pkg/executor/flow_runner_console_test.go +++ b/pkg/executor/flow_runner_console_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package executor import ( diff --git a/pkg/executor/parallel.go b/pkg/executor/parallel.go index 5b85592a..9d377d88 100644 --- a/pkg/executor/parallel.go +++ b/pkg/executor/parallel.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package executor import ( diff --git a/pkg/executor/parallel_test.go b/pkg/executor/parallel_test.go index 184c322b..bf942b12 100644 --- a/pkg/executor/parallel_test.go +++ b/pkg/executor/parallel_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package executor import ( diff --git a/pkg/executor/runner.go b/pkg/executor/runner.go index ed7902c8..e7551325 100644 --- a/pkg/executor/runner.go +++ b/pkg/executor/runner.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package executor orchestrates flow execution, connecting drivers to reports. package executor diff --git a/pkg/executor/runner_test.go b/pkg/executor/runner_test.go index 64139b15..3304d5e5 100644 --- a/pkg/executor/runner_test.go +++ b/pkg/executor/runner_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package executor import ( diff --git a/pkg/executor/scripting.go b/pkg/executor/scripting.go index 9fa3cdc1..98b8fe52 100644 --- a/pkg/executor/scripting.go +++ b/pkg/executor/scripting.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package executor import ( diff --git a/pkg/executor/scripting_test.go b/pkg/executor/scripting_test.go index 840c8e83..b04f5111 100644 --- a/pkg/executor/scripting_test.go +++ b/pkg/executor/scripting_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package executor import ( diff --git a/pkg/executor/tap_options.go b/pkg/executor/tap_options.go index 34e6f993..8cbf8f47 100644 --- a/pkg/executor/tap_options.go +++ b/pkg/executor/tap_options.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package executor import ( diff --git a/pkg/executor/tap_options_test.go b/pkg/executor/tap_options_test.go index c28f529e..dfa793ca 100644 --- a/pkg/executor/tap_options_test.go +++ b/pkg/executor/tap_options_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package executor import ( diff --git a/pkg/flow/flow.go b/pkg/flow/flow.go index 3b16f5bc..e12b0f5f 100644 --- a/pkg/flow/flow.go +++ b/pkg/flow/flow.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package flow handles parsing and representation of Maestro YAML flow files. package flow diff --git a/pkg/flow/parser.go b/pkg/flow/parser.go index b4afeff3..8f22e8a8 100644 --- a/pkg/flow/parser.go +++ b/pkg/flow/parser.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package flow handles parsing and representation of Maestro YAML flow files. package flow diff --git a/pkg/flow/parser_test.go b/pkg/flow/parser_test.go index cb4a9d08..ca9ef49a 100644 --- a/pkg/flow/parser_test.go +++ b/pkg/flow/parser_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package flow import ( diff --git a/pkg/flow/selector.go b/pkg/flow/selector.go index 0452af2f..6064d139 100644 --- a/pkg/flow/selector.go +++ b/pkg/flow/selector.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package flow handles parsing and representation of Maestro YAML flow files. package flow diff --git a/pkg/flow/selector_test.go b/pkg/flow/selector_test.go index dac32bed..c3b6f10e 100644 --- a/pkg/flow/selector_test.go +++ b/pkg/flow/selector_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package flow import ( diff --git a/pkg/flow/step.go b/pkg/flow/step.go index cfb47718..a4c09de3 100644 --- a/pkg/flow/step.go +++ b/pkg/flow/step.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package flow handles parsing and representation of Maestro YAML flow files. package flow diff --git a/pkg/flow/step_test.go b/pkg/flow/step_test.go index 9c36be9f..0da9979a 100644 --- a/pkg/flow/step_test.go +++ b/pkg/flow/step_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package flow import "testing" diff --git a/pkg/flutter/discovery.go b/pkg/flutter/discovery.go index 6488a40c..26321c1b 100644 --- a/pkg/flutter/discovery.go +++ b/pkg/flutter/discovery.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package flutter import ( diff --git a/pkg/flutter/discovery_iossim.go b/pkg/flutter/discovery_iossim.go index 23fbb084..dccf19d8 100644 --- a/pkg/flutter/discovery_iossim.go +++ b/pkg/flutter/discovery_iossim.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package flutter import ( diff --git a/pkg/flutter/discovery_iossim_test.go b/pkg/flutter/discovery_iossim_test.go index fbf8b110..413cb6e0 100644 --- a/pkg/flutter/discovery_iossim_test.go +++ b/pkg/flutter/discovery_iossim_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package flutter import "testing" diff --git a/pkg/flutter/discovery_test.go b/pkg/flutter/discovery_test.go index 9c0745ea..a797ffea 100644 --- a/pkg/flutter/discovery_test.go +++ b/pkg/flutter/discovery_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package flutter import ( diff --git a/pkg/flutter/semantics.go b/pkg/flutter/semantics.go index d3b2e80c..ee06faa1 100644 --- a/pkg/flutter/semantics.go +++ b/pkg/flutter/semantics.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package flutter provides Flutter VM Service integration for element finding fallback. package flutter diff --git a/pkg/flutter/semantics_test.go b/pkg/flutter/semantics_test.go index 808a8d51..66e5b737 100644 --- a/pkg/flutter/semantics_test.go +++ b/pkg/flutter/semantics_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package flutter import ( diff --git a/pkg/flutter/vmservice.go b/pkg/flutter/vmservice.go index 37d17999..b3fad9b1 100644 --- a/pkg/flutter/vmservice.go +++ b/pkg/flutter/vmservice.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package flutter import ( diff --git a/pkg/flutter/vmservice_test.go b/pkg/flutter/vmservice_test.go index 4c013eeb..e18651ab 100644 --- a/pkg/flutter/vmservice_test.go +++ b/pkg/flutter/vmservice_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package flutter import ( diff --git a/pkg/flutter/widgettree.go b/pkg/flutter/widgettree.go index 36a08e76..e8e58344 100644 --- a/pkg/flutter/widgettree.go +++ b/pkg/flutter/widgettree.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package flutter import ( diff --git a/pkg/flutter/widgettree_test.go b/pkg/flutter/widgettree_test.go index 7335f9fe..bb09dab3 100644 --- a/pkg/flutter/widgettree_test.go +++ b/pkg/flutter/widgettree_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package flutter import ( diff --git a/pkg/flutter/wrapper.go b/pkg/flutter/wrapper.go index 56cb91f2..07db22fa 100644 --- a/pkg/flutter/wrapper.go +++ b/pkg/flutter/wrapper.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package flutter import ( diff --git a/pkg/flutter/wrapper_test.go b/pkg/flutter/wrapper_test.go index 668d420f..b18e815e 100644 --- a/pkg/flutter/wrapper_test.go +++ b/pkg/flutter/wrapper_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package flutter import ( diff --git a/pkg/jsengine/engine.go b/pkg/jsengine/engine.go index b68b992b..0001cdbc 100644 --- a/pkg/jsengine/engine.go +++ b/pkg/jsengine/engine.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package jsengine provides JavaScript expression evaluation for Maestro flows. package jsengine diff --git a/pkg/jsengine/engine_test.go b/pkg/jsengine/engine_test.go index 03e08372..edd6216c 100644 --- a/pkg/jsengine/engine_test.go +++ b/pkg/jsengine/engine_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package jsengine import ( diff --git a/pkg/jsengine/http.go b/pkg/jsengine/http.go index 902193b9..5182496d 100644 --- a/pkg/jsengine/http.go +++ b/pkg/jsengine/http.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package jsengine import ( diff --git a/pkg/logger/logger.go b/pkg/logger/logger.go index bc4f42ca..dd501422 100644 --- a/pkg/logger/logger.go +++ b/pkg/logger/logger.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package logger import ( diff --git a/pkg/logger/logger_test.go b/pkg/logger/logger_test.go index a6f147c2..6da29892 100644 --- a/pkg/logger/logger_test.go +++ b/pkg/logger/logger_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package logger import ( diff --git a/pkg/maestro/adapter.go b/pkg/maestro/adapter.go index ec3b06b9..bc9ad28f 100644 --- a/pkg/maestro/adapter.go +++ b/pkg/maestro/adapter.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package maestro import ( diff --git a/pkg/maestro/adapter_test.go b/pkg/maestro/adapter_test.go index 0397242b..ab8ad688 100644 --- a/pkg/maestro/adapter_test.go +++ b/pkg/maestro/adapter_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package maestro import ( diff --git a/pkg/maestro/client.go b/pkg/maestro/client.go index 7af17ce0..839bbebf 100644 --- a/pkg/maestro/client.go +++ b/pkg/maestro/client.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package maestro import ( diff --git a/pkg/maestro/client_test.go b/pkg/maestro/client_test.go index 64b0e996..080f5a5b 100644 --- a/pkg/maestro/client_test.go +++ b/pkg/maestro/client_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package maestro import ( diff --git a/pkg/maestro/events.go b/pkg/maestro/events.go index 436dc7eb..84113fbc 100644 --- a/pkg/maestro/events.go +++ b/pkg/maestro/events.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package maestro import ( diff --git a/pkg/maestro/events_test.go b/pkg/maestro/events_test.go index a2af608d..9c75e2a0 100644 --- a/pkg/maestro/events_test.go +++ b/pkg/maestro/events_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package maestro import ( diff --git a/pkg/maestro/protocol.go b/pkg/maestro/protocol.go index 73537a7c..b88f14be 100644 --- a/pkg/maestro/protocol.go +++ b/pkg/maestro/protocol.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package maestro provides a WebSocket-based client for the DeviceLab on-device driver. // It implements the UIA2Client interface from pkg/driver/uiautomator2 using a // bidirectional WebSocket protocol instead of HTTP, enabling batched operations diff --git a/pkg/report/allure.go b/pkg/report/allure.go index ff0b924a..0e28cf18 100644 --- a/pkg/report/allure.go +++ b/pkg/report/allure.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/allure_test.go b/pkg/report/allure_test.go index 8f082f37..d8d512d6 100644 --- a/pkg/report/allure_test.go +++ b/pkg/report/allure_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/atomic.go b/pkg/report/atomic.go index 1df5f70c..770e99c5 100644 --- a/pkg/report/atomic.go +++ b/pkg/report/atomic.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/builder.go b/pkg/report/builder.go index 39b2abad..729658b1 100644 --- a/pkg/report/builder.go +++ b/pkg/report/builder.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/builder_test.go b/pkg/report/builder_test.go index 06c58d12..b3090bb3 100644 --- a/pkg/report/builder_test.go +++ b/pkg/report/builder_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/consumer.go b/pkg/report/consumer.go index 66a92d06..6e9285a7 100644 --- a/pkg/report/consumer.go +++ b/pkg/report/consumer.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/consumer_test.go b/pkg/report/consumer_test.go index d56f328b..530c6c47 100644 --- a/pkg/report/consumer_test.go +++ b/pkg/report/consumer_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/flow.go b/pkg/report/flow.go index 576c5083..106ad721 100644 --- a/pkg/report/flow.go +++ b/pkg/report/flow.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/flow_test.go b/pkg/report/flow_test.go index f1e02582..c7ff6314 100644 --- a/pkg/report/flow_test.go +++ b/pkg/report/flow_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/html.go b/pkg/report/html.go index be1ecf1e..3333e02e 100644 --- a/pkg/report/html.go +++ b/pkg/report/html.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/html_test.go b/pkg/report/html_test.go index f420314f..173ced98 100644 --- a/pkg/report/html_test.go +++ b/pkg/report/html_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/index.go b/pkg/report/index.go index 5f3c8b1c..7bc48c34 100644 --- a/pkg/report/index.go +++ b/pkg/report/index.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/index_test.go b/pkg/report/index_test.go index db6bf844..a3a07f85 100644 --- a/pkg/report/index_test.go +++ b/pkg/report/index_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/junit.go b/pkg/report/junit.go index df08211e..a1d89042 100644 --- a/pkg/report/junit.go +++ b/pkg/report/junit.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/junit_test.go b/pkg/report/junit_test.go index 76e42972..63c14963 100644 --- a/pkg/report/junit_test.go +++ b/pkg/report/junit_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import ( diff --git a/pkg/report/types.go b/pkg/report/types.go index 15db04e6..aad31f52 100644 --- a/pkg/report/types.go +++ b/pkg/report/types.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package report provides JSON-based test reporting with real-time updates. // // Architecture: diff --git a/pkg/report/types_test.go b/pkg/report/types_test.go index ec64ba03..1bedb1ae 100644 --- a/pkg/report/types_test.go +++ b/pkg/report/types_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package report import "testing" diff --git a/pkg/simulator/exec.go b/pkg/simulator/exec.go index 8e00346b..974cdd8c 100644 --- a/pkg/simulator/exec.go +++ b/pkg/simulator/exec.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package simulator import "os/exec" diff --git a/pkg/simulator/exec_test.go b/pkg/simulator/exec_test.go index c9b7dc74..edb1227f 100644 --- a/pkg/simulator/exec_test.go +++ b/pkg/simulator/exec_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package simulator import ( diff --git a/pkg/simulator/ios.go b/pkg/simulator/ios.go index 6b92351c..c14907a9 100644 --- a/pkg/simulator/ios.go +++ b/pkg/simulator/ios.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package simulator import ( diff --git a/pkg/simulator/ios_test.go b/pkg/simulator/ios_test.go index 8207ee4c..633d07c4 100644 --- a/pkg/simulator/ios_test.go +++ b/pkg/simulator/ios_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package simulator import ( diff --git a/pkg/simulator/manager.go b/pkg/simulator/manager.go index d89b6f70..194ef4c4 100644 --- a/pkg/simulator/manager.go +++ b/pkg/simulator/manager.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package simulator import ( diff --git a/pkg/simulator/types.go b/pkg/simulator/types.go index 4bf38ad5..33128445 100644 --- a/pkg/simulator/types.go +++ b/pkg/simulator/types.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package simulator import ( diff --git a/pkg/uiautomator2/client.go b/pkg/uiautomator2/client.go index 0dec22c5..5bb09ecf 100644 --- a/pkg/uiautomator2/client.go +++ b/pkg/uiautomator2/client.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 import ( diff --git a/pkg/uiautomator2/client_test.go b/pkg/uiautomator2/client_test.go index a15fb5d0..96ea4ba3 100644 --- a/pkg/uiautomator2/client_test.go +++ b/pkg/uiautomator2/client_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 import ( diff --git a/pkg/uiautomator2/device.go b/pkg/uiautomator2/device.go index 45e3439b..cf72dc80 100644 --- a/pkg/uiautomator2/device.go +++ b/pkg/uiautomator2/device.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 import ( diff --git a/pkg/uiautomator2/device_test.go b/pkg/uiautomator2/device_test.go index fea5ed9c..4b1be1ef 100644 --- a/pkg/uiautomator2/device_test.go +++ b/pkg/uiautomator2/device_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 import ( diff --git a/pkg/uiautomator2/element.go b/pkg/uiautomator2/element.go index cbb8e6dc..a3c1885b 100644 --- a/pkg/uiautomator2/element.go +++ b/pkg/uiautomator2/element.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 import ( diff --git a/pkg/uiautomator2/element_test.go b/pkg/uiautomator2/element_test.go index 55e89829..802cc297 100644 --- a/pkg/uiautomator2/element_test.go +++ b/pkg/uiautomator2/element_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 import ( diff --git a/pkg/uiautomator2/gestures.go b/pkg/uiautomator2/gestures.go index 3efa361b..9409cbb6 100644 --- a/pkg/uiautomator2/gestures.go +++ b/pkg/uiautomator2/gestures.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 // Click performs a tap at coordinates or on an element. diff --git a/pkg/uiautomator2/gestures_test.go b/pkg/uiautomator2/gestures_test.go index 759c9ba4..7a359594 100644 --- a/pkg/uiautomator2/gestures_test.go +++ b/pkg/uiautomator2/gestures_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 import ( diff --git a/pkg/uiautomator2/testing.go b/pkg/uiautomator2/testing.go index cf262c05..ef9f8c93 100644 --- a/pkg/uiautomator2/testing.go +++ b/pkg/uiautomator2/testing.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package uiautomator2 // NewTestElement creates an Element for testing purposes. diff --git a/pkg/uiautomator2/types.go b/pkg/uiautomator2/types.go index 73605c92..3f9b99be 100644 --- a/pkg/uiautomator2/types.go +++ b/pkg/uiautomator2/types.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025–2026 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package uiautomator2 provides HTTP client for UIAutomator2 server. package uiautomator2 diff --git a/pkg/validator/validator.go b/pkg/validator/validator.go index 03717177..26ced898 100644 --- a/pkg/validator/validator.go +++ b/pkg/validator/validator.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + // Package validator validates Maestro flow files before execution. // It parses all files upfront, resolves runFlow references, and detects errors. package validator diff --git a/pkg/validator/validator_test.go b/pkg/validator/validator_test.go index 052a1072..c5ad033a 100644 --- a/pkg/validator/validator_test.go +++ b/pkg/validator/validator_test.go @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 DeviceLab and the Project Contributors +// +// SPDX-License-Identifier: LicenseRef-maestro-runner + package validator import (