smart-tests-cli 2.16.3__tar.gz → 2.16.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (703) hide show
  1. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.github/workflows/test.yml +10 -0
  2. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/PKG-INFO +1 -1
  3. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/scripts/update_docs.sh +4 -0
  4. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/__init__.py +2 -0
  5. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/case_event.py +81 -22
  6. smart_tests_cli-2.16.4/smart_tests/commands/record/coverage.py +135 -0
  7. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/tests.py +34 -20
  8. smart_tests_cli-2.16.4/smart_tests/docs/modules/ROOT/assets/images/registered-oidc-subject.png +0 -0
  9. smart_tests_cli-2.16.4/smart_tests/docs/modules/ROOT/assets/images/trusted-issuer.png +0 -0
  10. smart_tests_cli-2.16.4/smart_tests/docs/modules/ROOT/assets/images/trusted-oidc-subjects.png +0 -0
  11. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/nav.adoc +4 -2
  12. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/administration/pages/data-privacy-and-protection.adoc +36 -18
  13. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/build.adoc +1 -1
  14. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/subset.adoc +43 -0
  15. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/test-session.adoc +1 -1
  16. smart_tests_cli-2.16.4/smart_tests/docs/modules/features/pages/test-notifications/github-app-for-test-sessions.adoc +40 -0
  17. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/cli-reference.adoc +1 -1
  18. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/cli-version.txt +1 -1
  19. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/faq.adoc +11 -0
  20. smart_tests_cli-2.16.3/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/subset-with-the-smart-tests-cli.adoc → smart_tests_cli-2.16.4/smart_tests/docs/modules/references/pages/integrations.adoc +793 -191
  21. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/supported-languages.adoc +1 -1
  22. smart_tests_cli-2.16.4/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/record-test-results.adoc +73 -0
  23. smart_tests_cli-2.16.4/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/migration-from-cli-v1-to-v2.adoc +404 -0
  24. smart_tests_cli-2.16.4/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/migration-to-github-oidc-auth.adoc +224 -0
  25. smart_tests_cli-2.16.4/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/oidc-authentication.adoc +34 -0
  26. smart_tests_cli-2.16.4/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/oidc-pipeline-authentication.adoc +346 -0
  27. smart_tests_cli-2.16.4/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/use-the-cli-with-docker-image.adoc +5 -0
  28. smart_tests_cli-2.16.4/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/subset-with-the-smart-tests-cli.adoc +117 -0
  29. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests_cli.egg-info/PKG-INFO +1 -1
  30. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests_cli.egg-info/SOURCES.txt +17 -1
  31. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests_cli.egg-info/scm_file_list.json +17 -1
  32. smart_tests_cli-2.16.4/smart_tests_cli.egg-info/scm_version.json +8 -0
  33. smart_tests_cli-2.16.4/tests/commands/record/test_coverage.py +146 -0
  34. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/test_tests.py +45 -1
  35. smart_tests_cli-2.16.4/tests/data/maven/record_test_flaky_error_result.json +45 -0
  36. smart_tests_cli-2.16.4/tests/data/maven/record_test_flaky_result.json +99 -0
  37. smart_tests_cli-2.16.4/tests/data/maven/record_test_rerun_error_result.json +99 -0
  38. smart_tests_cli-2.16.4/tests/data/maven/record_test_rerun_fail_result.json +99 -0
  39. smart_tests_cli-2.16.4/tests/data/maven/reports-flaky/TEST-flaky.xml +57 -0
  40. smart_tests_cli-2.16.4/tests/data/maven/reports-flaky-error/TEST-flaky-error.xml +13 -0
  41. smart_tests_cli-2.16.4/tests/data/maven/reports-rerun-error/TEST-rerun-error.xml +43 -0
  42. smart_tests_cli-2.16.4/tests/data/maven/reports-rerun-fail/TEST-rerun-fail.xml +53 -0
  43. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_maven.py +36 -0
  44. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tools/generate_reference.py +2 -2
  45. smart_tests_cli-2.16.3/smart_tests/docs/modules/features/pages/test-notifications/github-app-for-test-sessions.adoc +0 -22
  46. smart_tests_cli-2.16.3/smart_tests/docs/modules/references/pages/integrations.adoc +0 -228
  47. smart_tests_cli-2.16.3/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/record-test-results.adoc +0 -615
  48. smart_tests_cli-2.16.3/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/migration-to-github-oidc-auth.adoc +0 -153
  49. smart_tests_cli-2.16.3/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/use-the-cli-with-docker-image.adoc +0 -5
  50. smart_tests_cli-2.16.3/smart_tests_cli.egg-info/scm_version.json +0 -8
  51. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.bazelrc +0 -0
  52. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.bazelversion +0 -0
  53. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.claude/skills/merge-v1-to-main/SKILL.md +0 -0
  54. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.dockerignore +0 -0
  55. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.editorconfig +0 -0
  56. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.github/release.yml +0 -0
  57. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.github/workflows/bazel-test.yml +0 -0
  58. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.github/workflows/e2e.yml +0 -0
  59. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.github/workflows/pre-commit.yml +0 -0
  60. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.github/workflows/publish.yml +0 -0
  61. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.github/workflows/update_maven_install_json.yml +0 -0
  62. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.gitignore +0 -0
  63. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.pre-commit-config.yaml +0 -0
  64. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.python-version +0 -0
  65. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/.tagpr +0 -0
  66. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/CLAUDE.md +0 -0
  67. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/CONTRIBUTING.md +0 -0
  68. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/Dockerfile +0 -0
  69. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/LICENSE.txt +0 -0
  70. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/MODULE.bazel +0 -0
  71. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/MODULE.bazel.lock +0 -0
  72. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/README.md +0 -0
  73. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/WORKSPACE.bzlmod +0 -0
  74. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/build-java.sh +0 -0
  75. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/pyproject.toml +0 -0
  76. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/renovate.json +0 -0
  77. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/scripts/update_schema.sh +0 -0
  78. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/setup.cfg +0 -0
  79. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/setup.py +0 -0
  80. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/__init__.py +0 -0
  81. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/__main__.py +0 -0
  82. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/app.py +0 -0
  83. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/README.md +0 -0
  84. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/__init__.py +0 -0
  85. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/argument.py +0 -0
  86. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/command.py +0 -0
  87. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/converters/__init__.py +0 -0
  88. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/decorators.py +0 -0
  89. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/exceptions.py +0 -0
  90. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/option.py +0 -0
  91. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/parameter.py +0 -0
  92. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/args4p/typer/__init__.py +0 -0
  93. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/__init__.py +0 -0
  94. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/analyze/__init__.py +0 -0
  95. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/analyze/subset.py +0 -0
  96. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/compare/__init__.py +0 -0
  97. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/compare/subsets.py +0 -0
  98. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/detect_flakes.py +0 -0
  99. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/gate.py +0 -0
  100. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/get/__init__.py +0 -0
  101. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/get/api_schema.py +0 -0
  102. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/get/docs.py +0 -0
  103. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/inspect/__init__.py +0 -0
  104. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/inspect/model.py +0 -0
  105. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/inspect/subset.py +0 -0
  106. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/inspect/tests.py +0 -0
  107. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/attachment.py +0 -0
  108. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/build.py +0 -0
  109. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/commit.py +0 -0
  110. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/deployment.py +0 -0
  111. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/record/session.py +0 -0
  112. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/stats/__init__.py +0 -0
  113. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/stats/test_sessions.py +0 -0
  114. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/subset.py +0 -0
  115. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/test_path_writer.py +0 -0
  116. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/update/__init__.py +0 -0
  117. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/update/alias.py +0 -0
  118. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/verify.py +0 -0
  119. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/view/__init__.py +0 -0
  120. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/view/flaky_tests.py +0 -0
  121. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/view/longest_tests.py +0 -0
  122. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/view/never_failing_tests.py +0 -0
  123. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/view/subsets.py +0 -0
  124. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/commands/view/test_results.py +0 -0
  125. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/antora.yml +0 -0
  126. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/adb.adoc +0 -0
  127. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/ant.adoc +0 -0
  128. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/bazel.adoc +0 -0
  129. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/behave.adoc +0 -0
  130. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/ci-tool-integrations/github-actions.adoc +0 -0
  131. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/ci-tool-integrations.adoc +0 -0
  132. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/ctest.adoc +0 -0
  133. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/cucumber.adoc +0 -0
  134. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/cypress.adoc +0 -0
  135. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/dotnet-test.adoc +0 -0
  136. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/flutter.adoc +0 -0
  137. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/go-test.adoc +0 -0
  138. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/googletest.adoc +0 -0
  139. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/gradle.adoc +0 -0
  140. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/jest.adoc +0 -0
  141. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/karma.adoc +0 -0
  142. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/maven.adoc +0 -0
  143. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/minitest.adoc +0 -0
  144. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/playwright.adoc +0 -0
  145. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/prove.adoc +0 -0
  146. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/pytest.adoc +0 -0
  147. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/robot.adoc +0 -0
  148. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/rspec.adoc +0 -0
  149. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/c-plus-plus.adoc +0 -0
  150. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/dotnet.adoc +0 -0
  151. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/go.adoc +0 -0
  152. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/java.adoc +0 -0
  153. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/javascript.adoc +0 -0
  154. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/perl.adoc +0 -0
  155. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/python.adoc +0 -0
  156. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-languages/ruby.adoc +0 -0
  157. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/appium.adoc +0 -0
  158. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/cucumber.adoc +0 -0
  159. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/googletest.adoc +0 -0
  160. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/jest.adoc +0 -0
  161. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/junit.adoc +0 -0
  162. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/minitest.adoc +0 -0
  163. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/nose.adoc +0 -0
  164. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/nunit.adoc +0 -0
  165. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/prove.adoc +0 -0
  166. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/robot.adoc +0 -0
  167. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/rspec.adoc +0 -0
  168. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/selenium.adoc +0 -0
  169. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/supported-test-frameworks/testng.adoc +0 -0
  170. {smart_tests_cli-2.16.3/smart_tests/docs/modules/references/pages → smart_tests_cli-2.16.4/smart_tests/docs/modules/ROOT/archive}/supported-test-frameworks.adoc +0 -0
  171. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/vitest.adoc +0 -0
  172. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/archive/xctest.adoc +0 -0
  173. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/0607-inference.png +0 -0
  174. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/0607-subset-creation.png +0 -0
  175. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/0607-training.png +0 -0
  176. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/507088cf-209d-4856-be3e-60477c166d92.png +0 -0
  177. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/confidence-curve.png +0 -0
  178. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/customer-example-curve.png +0 -0
  179. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/data-flow.png +0 -0
  180. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/demo.gif +0 -0
  181. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/eval-sessions-prioritized.png +0 -0
  182. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/eval-sessions.png +0 -0
  183. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/flavors.png +0 -0
  184. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/github-comment.png +0 -0
  185. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/groups-2-record-after.png +0 -0
  186. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/hi-rate-fail-quarantine/auto-quarantine.png +0 -0
  187. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/hi-rate-fail-quarantine/failure-test.png +0 -0
  188. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/hi-rate-fail-quarantine/manual-quarantine.png +0 -0
  189. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/how-long-train-ml-model.png +0 -0
  190. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/icons/icon-vertical-three-dots-dark.png +0 -0
  191. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/illustion-run-whitelisted-tests-1.png +0 -0
  192. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/illustration-ignore-flakes-1.png +0 -0
  193. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/illustration-rotate-optimize-coverage.png +0 -0
  194. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/illustration-run-recently-failed-tests.png +0 -0
  195. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/in-place.png +0 -0
  196. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/link-to-results-example.png +0 -0
  197. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/model-training-evaluation-confidence-curves.png +0 -0
  198. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/new-code-existing-tests.png +0 -0
  199. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/object-model-june.png +0 -0
  200. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/object-model-v2.png +0 -0
  201. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/object-model.png +0 -0
  202. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/optimization-target.png +0 -0
  203. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/predictive-test-selection-observation-mode.png +0 -0
  204. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/prioritized-evaluation-session.png +0 -0
  205. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/pts/pts-observe.png +0 -0
  206. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/pts-v2-working.png +0 -0
  207. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/recording-data.png +0 -0
  208. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos-built-separately-detailed.png +0 -0
  209. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos-built-separately.png +0 -0
  210. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/recording-from-multiple-repos.png +0 -0
  211. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-41-20.png +0 -0
  212. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-44-15.png +0 -0
  213. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-07-25-at-20-45-10.png +0 -0
  214. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2023-08-22-at-22-50-49.png +0 -0
  215. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-04-29-at-1-48-30-pm.png +0 -0
  216. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-04-29-at-2-14-11-pm.png +0 -0
  217. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-4-50-56-pm.png +0 -0
  218. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-06-32-pm.png +0 -0
  219. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-09-04-pm.png +0 -0
  220. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/screenshot-2024-05-15-at-5-21-37-pm.png +0 -0
  221. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/sending-data/builds-dashboard.png +0 -0
  222. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/sending-data/create-api-key.png +0 -0
  223. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/sending-data/initial-settings.png +0 -0
  224. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/sending-data/organization-profile-id.png +0 -0
  225. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/sending-data/record-session.png +0 -0
  226. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/sending-data/test-session-interface.png +0 -0
  227. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/shift-left.png +0 -0
  228. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/single-session-compared.png +0 -0
  229. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/single-session-result.png +0 -0
  230. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/slack-desktop-with-app-messages.png +0 -0
  231. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/smart-subset-formation-flow.png +0 -0
  232. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-builds-interface-v1png.png +0 -0
  233. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-cli-3.png +0 -0
  234. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/smart-tests-monthly-time-saved.png +0 -0
  235. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_api_key_setting_20210613.png +0 -0
  236. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_invite_url_20220613.png +0 -0
  237. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/smart-tests_settings_20220613.png +0 -0
  238. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/subscription-ux.png +0 -0
  239. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/subset/dynamic-parallel.png +0 -0
  240. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/subset-creation.png +0 -0
  241. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/subset-exclude.png +0 -0
  242. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/subsetting-diagram-2x.png +0 -0
  243. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/target-line.png +0 -0
  244. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-insights-example.png +0 -0
  245. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-pyramid.png +0 -0
  246. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-runs-log.png +0 -0
  247. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-2.png +0 -0
  248. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-3.png +0 -0
  249. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition-4.png +0 -0
  250. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-session-definition.png +0 -0
  251. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-session-details-with-content.png +0 -0
  252. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-session-report-example.png +0 -0
  253. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/test-sessions-layout.png +0 -0
  254. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/testing-bottleneck-infinity.png +0 -0
  255. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/training-wheels.png +0 -0
  256. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/trends.png +0 -0
  257. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/triage-email-demo.avif +0 -0
  258. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/use-case-1.png +0 -0
  259. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/use-case-2.png +0 -0
  260. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/assets/images/zis-with-groups.png +0 -0
  261. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/pages/getting-started.adoc +0 -0
  262. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/pages/index.adoc +0 -0
  263. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/partials/abbr.adoc +0 -0
  264. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/ROOT/partials/conditionals.adoc +0 -0
  265. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/administration/pages/data-examples.adoc +0 -0
  266. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/administration/pages/security-policies.adoc +0 -0
  267. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/administration/pages/troubleshooting.adoc +0 -0
  268. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/branch.adoc +0 -0
  269. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/insight.adoc +0 -0
  270. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/object-model.adoc +0 -0
  271. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/organization.adoc +0 -0
  272. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/test-suite.adoc +0 -0
  273. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/concepts/pages/workspace.adoc +0 -0
  274. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/high-failure-rate-tests-and-quarantine.adoc +0 -0
  275. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/intelligent-test-failure-diagnostics.adoc +0 -0
  276. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/predictive-test-selection/how-we-select-tests.adoc +0 -0
  277. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/predictive-test-selection/use-cases-for-predictive-test-selection.adoc +0 -0
  278. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/predictive-test-selection/viewing-time-savings.adoc +0 -0
  279. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/predictive-test-selection.adoc +0 -0
  280. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/test-notifications/test-notifications-via-slack.adoc +0 -0
  281. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/test-notifications.adoc +0 -0
  282. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/test-results-and-reports.adoc +0 -0
  283. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/test-suite-parallelization.adoc +0 -0
  284. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/features/pages/test-trends-and-insights.adoc +0 -0
  285. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/ai-assistance.adoc +0 -0
  286. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/integrations/raw.adoc +0 -0
  287. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/integrations/use-the-generic-file-based-runner-integration.adoc +0 -0
  288. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/onboarding-guide/best-practices-checklist.adoc +0 -0
  289. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/onboarding-guide/optional-configurations.adoc +0 -0
  290. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/references/pages/onboarding-guide.adoc +0 -0
  291. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/choose-a-value-for-build-name.adoc +0 -0
  292. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/deal-with-shallow-clones.adoc +0 -0
  293. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds-for-microservices.adoc +0 -0
  294. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds-for-multistage-build.adoc +0 -0
  295. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds-from-multiple-repositories.adoc +0 -0
  296. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/record-builds.adoc +0 -0
  297. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-builds/run-under-restricted-networks.adoc +0 -0
  298. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-sessions/record-sessions.adoc +0 -0
  299. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/attach-log-files.adoc +0 -0
  300. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/convert-test-reports-to-junit-format.adoc +0 -0
  301. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/ensure-record-tests-always-runs.adoc +0 -0
  302. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/manage-complex-test-session-layouts.adoc +0 -0
  303. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/separate-out-test-suites.adoc +0 -0
  304. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/record-test-results/use-flavors-to-run-the-best-tests-for-an-environment.adoc +0 -0
  305. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/send-data-to-smart-tests.adoc +0 -0
  306. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/set-up-smart-tests/getting-started.adoc +0 -0
  307. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/choose-a-subset-optimization-target.adoc +0 -0
  308. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/combine-with-rule-based-test-selection.adoc +0 -0
  309. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/observe-subset-behavior.adoc +0 -0
  310. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/replace-static-parallel-suites-dynamic-parallel-subset.adoc +0 -0
  311. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/request-and-run-a-subset-of-tests.adoc +0 -0
  312. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/smart-subset-optimization-target.adoc +0 -0
  313. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/smart-tests-extension-for-VS-code.adoc +0 -0
  314. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/subset-predictive-test-selection.adoc +0 -0
  315. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/use-groups-to-split-subsets.adoc +0 -0
  316. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/docs/modules/send-data-to-smart-tests/pages/subset/zero-input-subsetting.adoc +0 -0
  317. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/jar/exe_deploy.jar +0 -0
  318. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/plugins/__init__.py +0 -0
  319. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/schema/openapi-schema.json +0 -0
  320. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/__init__.py +0 -0
  321. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/adb.py +0 -0
  322. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/ant.py +0 -0
  323. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/bazel.py +0 -0
  324. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/behave.py +0 -0
  325. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/codeceptjs.py +0 -0
  326. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/ctest.py +0 -0
  327. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/cts.py +0 -0
  328. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/cucumber.py +0 -0
  329. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/cypress.py +0 -0
  330. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/dotnet.py +0 -0
  331. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/file.py +0 -0
  332. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/flutter.py +0 -0
  333. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/go_test.py +0 -0
  334. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/googletest.py +0 -0
  335. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/gradle.py +0 -0
  336. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/jasmine.py +0 -0
  337. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/jest.py +0 -0
  338. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/karma.py +0 -0
  339. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/maven.py +0 -0
  340. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/minitest.py +0 -0
  341. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/nunit.py +0 -0
  342. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/playwright.py +0 -0
  343. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/prove.py +0 -0
  344. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/pytest.py +0 -0
  345. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/raw.py +0 -0
  346. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/robot.py +0 -0
  347. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/rspec.py +0 -0
  348. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/smart_tests.py +0 -0
  349. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/vitest.py +0 -0
  350. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/test_runners/xctest.py +0 -0
  351. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/testpath.py +0 -0
  352. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/__init__.py +0 -0
  353. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/authentication.py +0 -0
  354. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/ci_provider.py +0 -0
  355. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/commands.py +0 -0
  356. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/commit_ingester.py +0 -0
  357. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/common_tz.py +0 -0
  358. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/edit_distance.py +0 -0
  359. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/env_keys.py +0 -0
  360. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/exceptions.py +0 -0
  361. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/fail_fast_mode.py +0 -0
  362. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/file_name_pattern.py +0 -0
  363. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/git_log_parser.py +0 -0
  364. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/glob.py +0 -0
  365. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/gzipgen.py +0 -0
  366. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/http_client.py +0 -0
  367. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/input_snapshot.py +0 -0
  368. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/java.py +0 -0
  369. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/link.py +0 -0
  370. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/logger.py +0 -0
  371. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/no_build.py +0 -0
  372. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/sax.py +0 -0
  373. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/session.py +0 -0
  374. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/smart_tests_client.py +0 -0
  375. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/subprocess.py +0 -0
  376. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/tracking.py +0 -0
  377. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/utils/typer_types.py +0 -0
  378. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests/version.py +0 -0
  379. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests_cli.egg-info/dependency_links.txt +0 -0
  380. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests_cli.egg-info/entry_points.txt +0 -0
  381. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests_cli.egg-info/requires.txt +0 -0
  382. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/smart_tests_cli.egg-info/top_level.txt +0 -0
  383. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/BUILD +0 -0
  384. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/Authenticator.java +0 -0
  385. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/BUILD +0 -0
  386. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/BackgroundWorkStatus.java +0 -0
  387. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/BoundedExecutorService.java +0 -0
  388. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/ChunkStreamer.java +0 -0
  389. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/CommitChunkStreamer.java +0 -0
  390. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/CommitGraphCollector.java +0 -0
  391. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/ConcurrentConsumer.java +0 -0
  392. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/CountingDiffFormatter.java +0 -0
  393. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/FileChunkStreamer.java +0 -0
  394. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/FlushableConsumer.java +0 -0
  395. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/GitFile.java +0 -0
  396. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/GitHubActionsAuthenticator.java +0 -0
  397. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/GitHubIdTokenAuthenticator.java +0 -0
  398. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/IOConsumer.java +0 -0
  399. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/JSAsyncFileCollectionProgress.java +0 -0
  400. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/JSAsyncFileCollectionResponse.java +0 -0
  401. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/JSCommit.java +0 -0
  402. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/JSFileChange.java +0 -0
  403. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/LaunchableHttpClient.java +0 -0
  404. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/Main.java +0 -0
  405. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/ObjectRevFilter.java +0 -0
  406. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/ProgressReporter.java +0 -0
  407. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/SSLBypass.java +0 -0
  408. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/TokenAuthenticator.java +0 -0
  409. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/TreeReceiver.java +0 -0
  410. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/main/java/com/launchableinc/ingest/commits/VirtualFile.java +0 -0
  411. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/maven_install.json +0 -0
  412. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/AllTests.java +0 -0
  413. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/BUILD +0 -0
  414. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/BoundedExecutorServiceTest.java +0 -0
  415. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/CommitGraphCollectorTest.java +0 -0
  416. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/ConcurrentConsumerTest.java +0 -0
  417. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/FileChunkStreamerTest.java +0 -0
  418. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/GitFileTest.java +0 -0
  419. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/MainTest.java +0 -0
  420. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/PassThroughTreeReceiverImpl.java +0 -0
  421. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/ProgressReporterTest.java +0 -0
  422. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/SSLBypassTest.java +0 -0
  423. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/src/test/java/com/launchableinc/ingest/commits/java8-compat.sh +0 -0
  424. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/test-runner/__main__.py +0 -0
  425. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/__init__.py +0 -0
  426. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/__init__.py +0 -0
  427. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/converters/__init__.py +0 -0
  428. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/converters/test_converters.py +0 -0
  429. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/test_badcode.py +0 -0
  430. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/test_badinput.py +0 -0
  431. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/test_command.py +0 -0
  432. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/test_decorators.py +0 -0
  433. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/test_help.py +0 -0
  434. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/test_parameter.py +0 -0
  435. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/args4p/test_typer.py +0 -0
  436. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/cli_test_case.py +0 -0
  437. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/__init__.py +0 -0
  438. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/compare/__init__.py +0 -0
  439. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/compare/test_subsets.py +0 -0
  440. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/inspect/test_model.py +0 -0
  441. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/inspect/test_subset.py +0 -0
  442. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/inspect/test_tests.py +0 -0
  443. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/__init__.py +0 -0
  444. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/test_attachment.py +0 -0
  445. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/test_build.py +0 -0
  446. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/test_case_event.py +0 -0
  447. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/test_commit.py +0 -0
  448. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/test_deployment.py +0 -0
  449. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/record/test_session.py +0 -0
  450. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_api_error.py +0 -0
  451. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_detect_flakes.py +0 -0
  452. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_gate.py +0 -0
  453. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_subset.py +0 -0
  454. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_verify.py +0 -0
  455. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_view_flaky_tests.py +0 -0
  456. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_view_longest_tests.py +0 -0
  457. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_view_never_failing_tests.py +0 -0
  458. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_view_subsets.py +0 -0
  459. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/test_view_test_results.py +0 -0
  460. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/update/__init__.py +0 -0
  461. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/commands/update/test_alias.py +0 -0
  462. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/adb/subset_result.json +0 -0
  463. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/junitreport/TEST-com.example.HelloWorldTest.xml +0 -0
  464. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/junitreport/TEST-com.example.library.CacheTest.xml +0 -0
  465. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/junitreport/TESTS-TestSuites.xml +0 -0
  466. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/record_test_result.json +0 -0
  467. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/src/com/example/HelloWorld.java +0 -0
  468. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/src/com/example/HelloWorldTest.java +0 -0
  469. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/src/com/example/library/Cache.java +0 -0
  470. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/src/com/example/library/CacheTest.java +0 -0
  471. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ant/subset_result.json +0 -0
  472. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.cache_status +0 -0
  473. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.log +0 -0
  474. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test1/test.xml +0 -0
  475. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.cache_status +0 -0
  476. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test2/test.xml +0 -0
  477. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.cache_status +0 -0
  478. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test3/test.xml +0 -0
  479. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.cache_status +0 -0
  480. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test4/test.xml +0 -0
  481. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.cache_status +0 -0
  482. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test5/test.xml +0 -0
  483. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.cache_status +0 -0
  484. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test6/test.xml +0 -0
  485. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.cache_status +0 -0
  486. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test7/test.xml +0 -0
  487. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.cache_status +0 -0
  488. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test8/test.xml +0 -0
  489. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.cache_status +0 -0
  490. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/bazel-testlogs/src/test/java/com/ninjinkun/mylib_test9/test.xml +0 -0
  491. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/build_event.json +0 -0
  492. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/build_event_rest.json +0 -0
  493. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/record_test_result.json +0 -0
  494. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/record_test_with_build_event_json_result.json +0 -0
  495. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/record_test_with_multiple_build_event_json_result.json +0 -0
  496. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/bazel/subset_result.json +0 -0
  497. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/behave/record_test_result.json +0 -0
  498. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/behave/reports/report.xml +0 -0
  499. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/behave/subset_result.json +0 -0
  500. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/broken_xml/broken.xml +0 -0
  501. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/broken_xml/normal.xml +0 -0
  502. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/codeceptjs/codeceptjs-result.xml +0 -0
  503. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/codeceptjs/record_test_result.json +0 -0
  504. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ctest/Testing/latest/Test.xml +0 -0
  505. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ctest/ctest_list.json +0 -0
  506. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ctest/record_test_result.json +0 -0
  507. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/ctest/subset_result.json +0 -0
  508. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cts/record_test_result.json +0 -0
  509. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cts/subset_result.json +0 -0
  510. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cts/test_result.xml +0 -0
  511. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/features/foo/bar.feature +0 -0
  512. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/features/foo/is_it_friday_yet.feature +0 -0
  513. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/features/foo-bar.feature +0 -0
  514. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/features/is_it_friday_yet.feature +0 -0
  515. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/record_test_json_result.json +0 -0
  516. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/record_test_result.json +0 -0
  517. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/report/TEST-features-foo-bar.xml +0 -0
  518. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/report/TEST-features-foo-is_it_friday_yet.xml +0 -0
  519. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/report/TEST-features-is_it_friday_yet.xml +0 -0
  520. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/report/dummy.xml +0 -0
  521. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cucumber/report/result.json +0 -0
  522. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cypress/empty.json +0 -0
  523. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cypress/empty.xml +0 -0
  524. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cypress/record_test_result.json +0 -0
  525. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cypress/subset_result.json +0 -0
  526. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/cypress/test-result.xml +0 -0
  527. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/dotnet/junit-result-with-metadata.xml +0 -0
  528. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/dotnet/junit-result.xml +0 -0
  529. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/dotnet/record_test_result-junit-with-metadata.json +0 -0
  530. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/dotnet/record_test_result-junit.json +0 -0
  531. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/dotnet/record_test_result.json +0 -0
  532. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/dotnet/test-result.xml +0 -0
  533. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/file/record_test_result.json +0 -0
  534. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/file/record_test_result_custom_attribute.json +0 -0
  535. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/file/result.xml +0 -0
  536. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/file/result_custom_attribute.xml +0 -0
  537. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/flutter/record_test_result.json +0 -0
  538. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/flutter/report.json +0 -0
  539. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/git_log_ingest/sample.out +0 -0
  540. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/go_test/record_test_result.json +0 -0
  541. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/go_test/reportv1/reportv1.xml +0 -0
  542. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/go_test/reportv2/reportv2.xml +0 -0
  543. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/go_test/subset_result.json +0 -0
  544. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/googletest/fail/output.xml +0 -0
  545. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/googletest/fail/record_test_result.json +0 -0
  546. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/googletest/output_a.xml +0 -0
  547. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/googletest/output_b.xml +0 -0
  548. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/googletest/record_test_result.json +0 -0
  549. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/googletest/subset_result.json +0 -0
  550. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/App2Test.java +0 -0
  551. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/AppTest.java +0 -0
  552. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/gradle/java/app/src/test/java/com/example/sample_app_gradle/sub/App3Test.java +0 -0
  553. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/gradle/recursion/expected.json +0 -0
  554. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/gradle/recursion/foo/bar/reports/1.xml +0 -0
  555. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jasmine/README.md +0 -0
  556. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jasmine/jasmine-test-results-v3.99.0.json +0 -0
  557. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jasmine/jasmine-test-results.json +0 -0
  558. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jasmine/record_test_result.json +0 -0
  559. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jasmine/subset_payload.json +0 -0
  560. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jest/junit.xml +0 -0
  561. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jest/record_test_result.json +0 -0
  562. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/jest/subset_result.json +0 -0
  563. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/karma/README.md +0 -0
  564. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/karma/record_test_result.json +0 -0
  565. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/karma/sample-report.json +0 -0
  566. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/karma/subset_payload.json +0 -0
  567. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/karma/subset_result.json +0 -0
  568. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/createdFile_1.lst +0 -0
  569. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/createdFile_2.lst +0 -0
  570. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.example.demo.CalculatorTest.xml +0 -0
  571. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/dryrun-test/target/surefire-reports/TEST-com.example.demo.UserTest.xml +0 -0
  572. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/java/test/src/java/com/example/sample_app_maven/App2Test.java +0 -0
  573. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/java/test/src/java/com/example/sample_app_maven/AppTest.java +0 -0
  574. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/java/test/src/java/com/launchableinc/rocket_car_maven/e2e/E2ETest.java +0 -0
  575. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/list.lst +0 -0
  576. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/record_test_nested_displayname_result.json +0 -0
  577. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/record_test_result.json +0 -0
  578. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/reports/TEST-1.xml +0 -0
  579. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/reports/TEST-2.xml +0 -0
  580. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/reports/TEST-nested.xml +0 -0
  581. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/reports/dummy.xml +0 -0
  582. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/reports-nested-displayname/TEST-nested-displayname.xml +0 -0
  583. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/subset_by_absolute_time_result.json +0 -0
  584. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/subset_by_confidence_result.json +0 -0
  585. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/subset_from_file_result.json +0 -0
  586. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/subset_result.json +0 -0
  587. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/subset_scan_dryrun_results_result.json +0 -0
  588. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/subset_scan_test_compile_lst_result.json +0 -0
  589. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/maven/subset_with_exclude_rules_result.json +0 -0
  590. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/TEST-Admin_UserTest.xml +0 -0
  591. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/TEST-Admin_UserTest_ChildlenTest.xml +0 -0
  592. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/TEST-UserControllerTest.xml +0 -0
  593. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/TEST-UserCopyTest.xml +0 -0
  594. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/TEST-UserTest.xml +0 -0
  595. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/record_test_result.json +0 -0
  596. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/record_test_result_chunk1.json +0 -0
  597. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/record_test_result_chunk2.json +0 -0
  598. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/subset_result.json +0 -0
  599. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/minitest/test/example_test.rb +0 -0
  600. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/list.xml +0 -0
  601. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/nunit-reporter-bug-with-nested-type.json +0 -0
  602. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/nunit-reporter-bug-with-nested-type.xml +0 -0
  603. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/output-linux.xml +0 -0
  604. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/output-windows.xml +0 -0
  605. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/record_test_result-linux.json +0 -0
  606. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/record_test_result-windows.json +0 -0
  607. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/src/.gitignore +0 -0
  608. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/src/Program.cs +0 -0
  609. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/src/README.md +0 -0
  610. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/src/Test.cs +0 -0
  611. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/src/calc.csproj +0 -0
  612. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/nunit/subset_result.json +0 -0
  613. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/packages/e2e/.gitkeep +0 -0
  614. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/playwright.config.ts +0 -0
  615. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/record_test_result.json +0 -0
  616. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/record_test_result_with_json.json +0 -0
  617. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/record_test_result_with_json_base.json +0 -0
  618. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/record_test_result_with_prefix.json +0 -0
  619. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/report.json +0 -0
  620. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/report.xml +0 -0
  621. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/report_with_json_base.json +0 -0
  622. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/playwright/report_with_prefix.json +0 -0
  623. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/prove/record_test_result.json +0 -0
  624. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/prove/report.xml +0 -0
  625. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/pytest.ini +0 -0
  626. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/record_test_result.json +0 -0
  627. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/record_test_result_json.json +0 -0
  628. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/report.json +0 -0
  629. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/report.xml +0 -0
  630. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/subset_result.json +0 -0
  631. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/tests/conftest.py +0 -0
  632. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/tests/fooo/__init__.py +0 -0
  633. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/tests/fooo/filenameonly_test.py +0 -0
  634. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/tests/fooo/func4_test.py +0 -0
  635. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/tests/funcs3_test.py +0 -0
  636. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/tests/test_funcs1.py +0 -0
  637. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/pytest/tests/test_funcs2.py +0 -0
  638. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/dryrun.xml +0 -0
  639. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/output.xml +0 -0
  640. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/output_legacy.xml +0 -0
  641. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/record_test_executed_only_one_file_result.json +0 -0
  642. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/record_test_legacy_result.json +0 -0
  643. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/record_test_result.json +0 -0
  644. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/single-output.xml +0 -0
  645. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/robot/subset_result.json +0 -0
  646. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/rspec/record_test_result.json +0 -0
  647. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/rspec/rspec.xml +0 -0
  648. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/vitest/record_test_result.json +0 -0
  649. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/vitest/report.xml +0 -0
  650. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/xctest/junit.xml +0 -0
  651. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/xctest/record_test_result.json +0 -0
  652. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/data/xctest/subset_result.json +0 -0
  653. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/helper.py +0 -0
  654. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/plugins/foo.py +0 -0
  655. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_cli_test_case.py +0 -0
  656. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_plugin.py +0 -0
  657. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/__init__.py +0 -0
  658. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_adb.py +0 -0
  659. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_ant.py +0 -0
  660. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_bazel.py +0 -0
  661. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_behave.py +0 -0
  662. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_codeceptjs.py +0 -0
  663. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_ctest.py +0 -0
  664. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_cts.py +0 -0
  665. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_cucumber.py +0 -0
  666. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_cypress.py +0 -0
  667. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_dotnet.py +0 -0
  668. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_file.py +0 -0
  669. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_go_test.py +0 -0
  670. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_googletest.py +0 -0
  671. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_gradle.py +0 -0
  672. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_jasmine.py +0 -0
  673. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_jest.py +0 -0
  674. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_karma.py +0 -0
  675. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_minitest.py +0 -0
  676. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_nunit.py +0 -0
  677. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_playwright.py +0 -0
  678. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_prove.py +0 -0
  679. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_pytest.py +0 -0
  680. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_raw.py +0 -0
  681. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_robot.py +0 -0
  682. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_rspec.py +0 -0
  683. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_vitest.py +0 -0
  684. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_runners/test_xctest.py +0 -0
  685. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_testpath.py +0 -0
  686. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/test_version.py +0 -0
  687. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/__init__.py +0 -0
  688. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_authentication.py +0 -0
  689. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_edit_distance.py +0 -0
  690. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_fail_fast_mode.py +0 -0
  691. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_file_name_pattern.py +0 -0
  692. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_git_log_parser.py +0 -0
  693. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_glob.py +0 -0
  694. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_gzipgen.py +0 -0
  695. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_http_client.py +0 -0
  696. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_link.py +0 -0
  697. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_logger.py +0 -0
  698. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_session.py +0 -0
  699. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_tracking.py +0 -0
  700. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_typer.py +0 -0
  701. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tests/utils/test_typer_types.py +0 -0
  702. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/tools/README.md +0 -0
  703. {smart_tests_cli-2.16.3 → smart_tests_cli-2.16.4}/uv.lock +0 -0
@@ -65,6 +65,16 @@ jobs:
65
65
 
66
66
  - name: Lint with flake8
67
67
  run: uv run poe lint
68
+
69
+ - name: Check CLI reference docs are up to date
70
+ run: |
71
+ uv run tools/generate_reference.py smart_tests/docs/modules/references/pages/cli-reference.adoc
72
+ git diff --exit-code smart_tests/docs/modules/references/pages/cli-reference.adoc || {
73
+ echo "::error::cli-reference.adoc is stale. Run 'tools/generate_reference.py smart_tests/docs/modules/references/pages/cli-reference.adoc' and commit the updated doc."
74
+ exit 1
75
+ }
76
+ shell: bash
77
+
68
78
  - name: Pull request validation
69
79
  run: |
70
80
  # Install Smart Tests CLI from this repo's code as a global tool
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: smart-tests-cli
3
- Version: 2.16.3
3
+ Version: 2.16.4
4
4
  Summary: Smart Tests CLI
5
5
  Author-email: CloudBees <support@cloudbees.com>
6
6
  License: Apache Software License v2
@@ -13,3 +13,7 @@ git clone --depth=1 "$REPO" "$tmpdir"
13
13
  rm -rf "$DOCS_DST"
14
14
  cp -r "$tmpdir/docs" "$DOCS_DST"
15
15
  echo "Docs updated at $DOCS_DST"
16
+
17
+ CLI_REFERENCE="$DOCS_DST/modules/references/pages/cli-reference.adoc"
18
+ "$(dirname "$0")/../tools/generate_reference.py" "$CLI_REFERENCE"
19
+ echo "Regenerated CLI reference tables in $CLI_REFERENCE"
@@ -3,6 +3,7 @@ from ...app import Application
3
3
  from .attachment import attachment
4
4
  from .build import build
5
5
  from .commit import commit
6
+ from .coverage import coverage
6
7
  from .deployment import deployment
7
8
  from .session import session
8
9
  from .tests import tests
@@ -18,4 +19,5 @@ record.add_command(commit)
18
19
  record.add_command(tests)
19
20
  record.add_command(session)
20
21
  record.add_command(attachment)
22
+ record.add_command(coverage)
21
23
  record.add_command(deployment)
@@ -1,6 +1,6 @@
1
1
  import datetime
2
2
  import sys
3
- from typing import Any, Callable, Dict, Generator
3
+ from typing import Any, Callable, Dict, Generator, List, Optional, Tuple
4
4
 
5
5
  import dateutil.parser
6
6
  from dateutil.tz import tzlocal
@@ -12,7 +12,13 @@ from ...testpath import FilePathNormalizer, TestPath
12
12
 
13
13
  POSSIBLE_RESULTS = (Failure, Error, Skipped)
14
14
 
15
- CaseEventType = Dict[str, str]
15
+ # Surefire's rerun/flaky extension tags. junitparser's TestCase.ITER_TYPES (and thus
16
+ # case.result/case.system_out/case.system_err) doesn't know about these, so they're
17
+ # read directly off the raw element.
18
+ RERUN_TAGS = ("rerunFailure", "rerunError")
19
+ FLAKY_TAGS = ("flakyFailure", "flakyError")
20
+
21
+ CaseEventType = Dict[str, Any]
16
22
  CaseEventGenerator = Generator[CaseEventType, None, None]
17
23
 
18
24
  # function that computes TestPath from a test case
@@ -83,17 +89,15 @@ class CaseEvent:
83
89
  suite: TestSuite,
84
90
  report_file: str,
85
91
  data_builder: DataBuilder
86
- ) -> Dict:
87
- "Builds a JSON representation of CaseEvent from JUnitPaser objects"
88
-
89
- # TODO: reconsider the initial value of the status.
90
- status = CaseEvent.TEST_PASSED
91
- for r in case.result:
92
- if any(isinstance(r, s) for s in (Failure, Error)):
93
- status = CaseEvent.TEST_FAILED
94
- break
95
- elif isinstance(r, Skipped):
96
- status = CaseEvent.TEST_SKIPPED
92
+ ) -> List[Dict]:
93
+ """
94
+ Builds JSON representations of CaseEvent(s) from JUnitParser objects.
95
+
96
+ Normally a <testcase> maps to a single event. But Surefire's rerun/flaky
97
+ reports pack multiple attempts into one <testcase> (see RERUN_TAGS/FLAKY_TAGS);
98
+ each attempt is expanded into its own FAILED event here, in addition to the
99
+ testcase's own final PASSED/FAILED/SKIPPED result.
100
+ """
97
101
 
98
102
  def path_canonicalizer(test_path: TestPath) -> TestPath:
99
103
  if sys.platform == "win32":
@@ -114,6 +118,12 @@ class CaseEvent:
114
118
 
115
119
  return ""
116
120
 
121
+ # TODO(Improvement): when <system-err> is present, it currently replaces the failure's own
122
+ # text/message below instead of being appended to it. A test can both fail AND
123
+ # print to stderr (e.g. a logged warning before the assertion), so this can hide
124
+ # the actual failure detail behind unrelated captured output. Consider
125
+ # concatenating (failure text/message first, then system-err) instead of
126
+ # returning early here.
117
127
  def stderr(case: TestCase) -> str:
118
128
  """
119
129
  case for:
@@ -142,15 +152,64 @@ class CaseEvent:
142
152
 
143
153
  return stderr
144
154
 
145
- return CaseEvent.create(
146
- test_path=path_canonicalizer(path_builder(case, suite, report_file)),
147
- duration_secs=case.time,
148
- status=status,
149
- stdout=stdout(case),
150
- stderr=stderr(case),
151
- timestamp=suite.timestamp,
152
- data=data_builder(case),
153
- )
155
+ def final_result() -> Tuple[int, str, str, float]:
156
+ """
157
+ The testcase's own final result: unchanged from before this method supported reruns.
158
+ <testcase time> is defined by Surefire as the duration of THIS run (the first failing
159
+ run, or the last successful run), so this is the one attempt that keeps it.
160
+ """
161
+ # TODO: reconsider the initial value of the status.
162
+ status = CaseEvent.TEST_PASSED
163
+ for r in case.result:
164
+ if any(isinstance(r, s) for s in (Failure, Error)):
165
+ status = CaseEvent.TEST_FAILED
166
+ break
167
+ elif isinstance(r, Skipped):
168
+ status = CaseEvent.TEST_SKIPPED
169
+ return status, stdout(case), stderr(case), case.time
170
+
171
+ def attempt_result(elem) -> Tuple[int, str, str, float]:
172
+ """
173
+ One <flakyFailure>/<flakyError>/<rerunFailure>/<rerunError> attempt: always FAILED.
174
+ Surefire doesn't record a separate duration for these, so duration is 0 (avoids
175
+ double-counting the testcase's total time against final_result()'s duration).
176
+ """
177
+ def child_text(tag: str) -> Optional[str]:
178
+ child = elem.find(tag)
179
+ return child.text if child is not None and child.text else None
180
+
181
+ attempt_stdout = child_text("system-out") or ""
182
+ attempt_stderr = child_text("system-err") or child_text("stackTrace") or elem.attrib.get("message") or ""
183
+ return CaseEvent.TEST_FAILED, attempt_stdout, attempt_stderr, 0.0
184
+
185
+ rerun_elems = [c for c in case._elem if c.tag in RERUN_TAGS]
186
+ flaky_elems = [c for c in case._elem if c.tag in FLAKY_TAGS]
187
+
188
+ if rerun_elems:
189
+ # failed on the first attempt and on every rerun
190
+ attempts = [final_result()] + [attempt_result(e) for e in rerun_elems]
191
+ elif flaky_elems:
192
+ # failed on earlier attempts, passed on the last one
193
+ attempts = [attempt_result(e) for e in flaky_elems] + [final_result()]
194
+ else:
195
+ # no reruns: unchanged, single-event behavior
196
+ attempts = [final_result()]
197
+
198
+ test_path = path_canonicalizer(path_builder(case, suite, report_file))
199
+ data = data_builder(case)
200
+
201
+ return [
202
+ CaseEvent.create(
203
+ test_path=test_path,
204
+ duration_secs=attempt_duration,
205
+ status=attempt_status,
206
+ stdout=attempt_stdout,
207
+ stderr=attempt_stderr,
208
+ timestamp=suite.timestamp,
209
+ data=data,
210
+ )
211
+ for attempt_status, attempt_stdout, attempt_stderr, attempt_duration in attempts
212
+ ]
154
213
 
155
214
  @classmethod
156
215
  def create(cls, test_path: TestPath, duration_secs: float, status,
@@ -0,0 +1,135 @@
1
+ import glob
2
+ import os
3
+ from io import BytesIO
4
+ from pathlib import Path
5
+ from typing import Annotated, List, Optional, Tuple
6
+
7
+ import click
8
+ from tabulate import tabulate
9
+
10
+ import smart_tests.args4p.typer as typer
11
+ from smart_tests.utils.session import SessionId, get_session
12
+
13
+ from ... import args4p
14
+ from ...app import Application
15
+ from ...utils.smart_tests_client import SmartTestsClient
16
+
17
+
18
+ class CoverageStatus:
19
+ SUCCESS = "✓ Recorded successfully"
20
+ FAILED = "⚠ Failed to record"
21
+
22
+
23
+ @args4p.command(help="Record coverage data (LCOV format) related to a test session. "
24
+ "Passing COVERAGE_FILES is optional for bazel; "
25
+ "files are auto discovered when the command is run inside project root. "
26
+ "Other test runners must pass their coverage report file(s) directly.")
27
+ def coverage(
28
+ app: Application,
29
+ session: Annotated[SessionId, SessionId.as_option()],
30
+ coverage_files: Annotated[List[str], typer.Argument(
31
+ multiple=True,
32
+ required=False,
33
+ help="Coverage report files to upload (LCOV format)"
34
+ )] = [],
35
+ ):
36
+ client = SmartTestsClient(app=app)
37
+ sources: List[str] = []
38
+
39
+ try:
40
+ # Assert test session exists
41
+ get_session(session, client)
42
+
43
+ if coverage_files:
44
+ sources = list(coverage_files)
45
+ blocks = [_read(f) for f in sources]
46
+ else:
47
+ # No files given: auto-discover from the current directory
48
+ # Auto discovery is Bazel only for now.
49
+ sources, blocks = discover_bazel_coverage(Path("."))
50
+
51
+ # LCOV tracefiles are just a sequence of SF:...end_of_record blocks, so concatenating
52
+ # multiple files is itself a valid tracefile. Send them as one upload rather than one
53
+ # request per file. The server already unions repeated SF: blocks for the same file within
54
+ # one upload, so this is correct even when the inputs cover overlapping files (e.g. one
55
+ # report from a unit-test run, another from an integration-test run touching the same
56
+ # source file)
57
+ content = b"\n".join(blocks)
58
+ status, files_recorded, is_reupload = post_coverage(client, session, content)
59
+ except Exception as e:
60
+ client.print_exception_and_recover(e)
61
+ status, files_recorded, is_reupload = CoverageStatus.FAILED, None, False
62
+
63
+ display_summary(sources, status, files_recorded, is_reupload)
64
+
65
+
66
+ def discover_bazel_coverage(workspace: "str | Path") -> Tuple[List[str], List[bytes]]:
67
+ """
68
+ Finds every per-target coverage.dat under <workspace>/bazel-testlogs
69
+
70
+ Bazel's own coverage.dat carries no target identity on its own, though TN (Test Name) is a standard LCOV field.
71
+ So we derive TN by file path (same approach used by `record tests bazel`
72
+ (bazel-testlogs/<pkg>/<target>/coverage.dat -> TN://<pkg>:<target>).
73
+ """
74
+ base = Path(workspace).joinpath('bazel-testlogs')
75
+ if not base.exists():
76
+ raise click.UsageError(
77
+ "No such directory: %s. "
78
+ "Pass coverage report file(s) directly as arguments instead." % str(base))
79
+
80
+ sources: List[str] = []
81
+ blocks: List[bytes] = []
82
+ for report_file in sorted(glob.iglob(os.path.join(str(base), '**', 'coverage.dat'), recursive=True)):
83
+ pkg_and_target = report_file[len(str(base)) + 1:-len("/coverage.dat")]
84
+ package, target = os.path.dirname(pkg_and_target), os.path.basename(pkg_and_target)
85
+ label = "//{}:{}".format(package.replace(os.sep, '/'), target)
86
+ sources.append(report_file)
87
+ blocks.append(_tag_with_test_name(_read(report_file), label))
88
+
89
+ if not blocks:
90
+ raise click.UsageError("No coverage.dat files found under %s" % str(base))
91
+
92
+ return sources, blocks
93
+
94
+
95
+ def _tag_with_test_name(content: bytes, label: str) -> bytes:
96
+ tn_line = "TN:{}\n".format(label).encode('utf-8')
97
+ tagged = []
98
+ for line in content.splitlines(keepends=True):
99
+ if line.startswith(b"SF:"):
100
+ tagged.append(tn_line)
101
+ tagged.append(line)
102
+ return b"".join(tagged)
103
+
104
+
105
+ def _read(path: str) -> bytes:
106
+ with open(path, mode='rb') as f:
107
+ return f.read()
108
+
109
+
110
+ def post_coverage(client: SmartTestsClient, session: SessionId, content: bytes) -> Tuple[str, Optional[int], bool]:
111
+ try:
112
+ res = client.request(
113
+ "post", session.subpath("coverage"), compress=True, payload=BytesIO(content),
114
+ additional_headers={"Content-Type": "text/plain"})
115
+ res.raise_for_status()
116
+ summary = res.json()
117
+ return CoverageStatus.SUCCESS, summary.get("sourceFilesRecorded"), summary.get("isReupload", False)
118
+ except Exception as e:
119
+ click.echo("Failed to upload coverage report: {}".format(str(e)), err=True)
120
+ return CoverageStatus.FAILED, None, False
121
+
122
+
123
+ def display_summary(sources: List[str], status: str, source_files: Optional[int], is_reupload: bool = False):
124
+ if sources:
125
+ click.echo(tabulate([[f] for f in sources], ["Coverage files found"], tablefmt="github"))
126
+ click.echo()
127
+ rows = [[len(sources), source_files if source_files is not None else "-", status]]
128
+ click.echo(tabulate(rows, ["Coverage Files", "Source Files", "Status"], tablefmt="github"))
129
+ if is_reupload:
130
+ click.echo(
131
+ click.style(
132
+ "⚠ This session already had coverage recorded. The previous upload was overwritten. "
133
+ "Refer to --help if you intended to record multiple files",
134
+ fg="yellow"),
135
+ err=True)
@@ -6,7 +6,7 @@ import xml.etree.ElementTree as ET
6
6
  from concurrent.futures import ThreadPoolExecutor, as_completed
7
7
  from pathlib import Path
8
8
  from time import time_ns
9
- from typing import Annotated, Callable, Dict, Generator, List, Tuple, Union
9
+ from typing import Annotated, Callable, Dict, Generator, Iterable, List, Tuple, Union
10
10
 
11
11
  import click
12
12
  from dateutil.parser import ParserError, parse
@@ -118,7 +118,8 @@ class RecordTests:
118
118
  try:
119
119
  for suite in testsuites:
120
120
  for case in suite:
121
- yield CaseEvent.from_case_and_suite(self.path_builder, case, suite, report, self.metadata_builder)
121
+ yield from CaseEvent.from_case_and_suite(
122
+ self.path_builder, case, suite, report, self.metadata_builder)
122
123
  except Exception as e:
123
124
  warn_and_exit_if_fail_fast_mode(
124
125
  "Warning: error parsing JUnitXml file {filename}: {error}".format(
@@ -388,23 +389,6 @@ class RecordTests:
388
389
  nonlocal is_observation
389
390
  is_observation = res.json().get("testSession", {}).get("isObservation", False)
390
391
 
391
- def recorded_result() -> Tuple[int, int, int, float]:
392
- test_count = 0
393
- success_count = 0
394
- fail_count = 0
395
- duration = float(0)
396
-
397
- for tc in testcases(self.reports):
398
- test_count += 1
399
- status = tc.get("status")
400
- if status == 0:
401
- fail_count += 1
402
- elif status == 1:
403
- success_count += 1
404
- duration += float(tc.get("duration") or 0) # sec
405
-
406
- return test_count, success_count, fail_count, duration / 60 # sec to min
407
-
408
392
  try:
409
393
  start = time_ns()
410
394
  tc = testcases(self.reports)
@@ -478,7 +462,7 @@ class RecordTests:
478
462
  return
479
463
 
480
464
  file_count = len(self.reports)
481
- test_count, success_count, fail_count, duration = recorded_result()
465
+ test_count, success_count, fail_count, duration = summarize_case_events(testcases(self.reports))
482
466
 
483
467
  click.echo(
484
468
  f"Smart Tests recorded tests for build "
@@ -516,6 +500,36 @@ class RecordTests:
516
500
  tests = Group(name="tests", callback=RecordTests, help="Record test results")
517
501
 
518
502
 
503
+ def summarize_case_events(events: Iterable[CaseEventType]) -> Tuple[int, int, int, float]:
504
+ """
505
+ Summarizes a stream of case events into (test_count, success_count, fail_count, duration_minutes),
506
+ for the "Tests found / Tests passed / Tests failed" table printed after `record tests` runs.
507
+
508
+ Grouped by testPath rather than counted per event: a flaky/rerun testcase produces multiple
509
+ events (see CaseEvent.from_case_and_suite), but it's still a single test. A test that ever
510
+ passed counts as passed (even if it also failed on earlier attempts); a test that only ever
511
+ failed counts as failed.
512
+ """
513
+ tests: Dict[Tuple, Dict[str, bool]] = {}
514
+ duration = float(0)
515
+
516
+ for tc in events:
517
+ key = tuple((p["type"], p["name"]) for p in tc.get("testPath", []))
518
+ entry = tests.setdefault(key, {"passed": False, "failed": False})
519
+ status = tc.get("status")
520
+ if status == 1:
521
+ entry["passed"] = True
522
+ elif status == 0:
523
+ entry["failed"] = True
524
+ duration += float(tc.get("duration") or 0) # sec
525
+
526
+ test_count = len(tests)
527
+ success_count = sum(1 for e in tests.values() if e["passed"])
528
+ fail_count = sum(1 for e in tests.values() if e["failed"] and not e["passed"])
529
+
530
+ return test_count, success_count, fail_count, duration / 60 # sec to min
531
+
532
+
519
533
  # if we fail to determine the timestamp of the build, we err on the side of collecting more test reports
520
534
  # than no test reports, so we use the 'epoch' timestamp
521
535
  INVALID_TIMESTAMP = datetime.datetime.fromtimestamp(0)
@@ -3,7 +3,10 @@ include::ROOT:partial$abbr.adoc[]
3
3
  * xref:ROOT:index.adoc[Overview]
4
4
  * xref:send-data-to-smart-tests:send-data-to-smart-tests.adoc[Send data to {PRODUCT}]
5
5
  ** xref:send-data-to-smart-tests:set-up-smart-tests/getting-started.adoc[Set up smart tests]
6
- *** xref:send-data-to-smart-tests:set-up-smart-tests/migration-to-github-oidc-auth.adoc[Update tokenless authentication to use GitHub OIDC]
6
+ *** xref:send-data-to-smart-tests:set-up-smart-tests/migration-from-cli-v1-to-v2.adoc[Migrate from CLI v1 to v2]
7
+ *** xref:send-data-to-smart-tests:set-up-smart-tests/oidc-authentication.adoc[Authenticate without an API key (OIDC)]
8
+ *** xref:send-data-to-smart-tests:set-up-smart-tests/oidc-pipeline-authentication.adoc[Authenticate a pipeline with OIDC]
9
+ *** xref:send-data-to-smart-tests:set-up-smart-tests/migration-to-github-oidc-auth.adoc[Migrate from the legacy GitHub Actions OIDC flow]
7
10
  *** xref:send-data-to-smart-tests:set-up-smart-tests/use-the-cli-with-docker-image.adoc[Use the CLI with Docker image]
8
11
  ** xref:send-data-to-smart-tests:record-builds/record-builds.adoc[Record builds]
9
12
  *** xref:send-data-to-smart-tests:record-builds/choose-a-value-for-build-name.adoc[Choose a value for build name]
@@ -67,7 +70,6 @@ include::ROOT:partial$abbr.adoc[]
67
70
  ** xref:references:integrations/raw.adoc['raw' profile for custom test runners]
68
71
 
69
72
  * xref:references:supported-languages.adoc[Supported languages]
70
- * xref:references:supported-test-frameworks.adoc[Supported test frameworks]
71
73
  * xref:references:faq.adoc[FAQ]
72
74
 
73
75
  .Administration
@@ -17,17 +17,17 @@ CloudBees Smart Tests is designed to make your test runs faster and more reliabl
17
17
  | Data collected | What exactly, and why is it needed?
18
18
 
19
19
  | *Contents of source code & test files*
20
- | To generate a vector embedding (see in more detail below), so Smart Tests can understand the semantic relationships between how the source code relates to your tests.
20
+ | To generate a vector embedding (see in more detail below), so Smart Tests can understand the semantic relationships between how the source code relates to your tests.
21
21
 
22
22
  This data is temporarily processed by Smart Tests to generate vector embeddings – and not persisted.
23
23
 
24
24
  | *Metadata about the code change under test*
25
- | Git commit SHAs, branch names, timestamps, Git author details and the list of files changed in each build.
25
+ | Git commit SHAs, branch names, timestamps, Git author details and the list of files changed in each build.
26
26
 
27
27
  These are used to associate a code change with the tests that should run for it.
28
28
 
29
29
  | *Metadata about the test cases that were run*
30
- | Test paths & names, pass/fail/skip outcomes, durations, and associations with test suites.
30
+ | Test paths & names, pass/fail/skip outcomes, durations, and associations with test suites.
31
31
 
32
32
  These are used to train the prediction model that ranks tests by relevance for each code change, and to power flaky-test detection and other test health & insights features.
33
33
  |===
@@ -40,27 +40,45 @@ Think of it this way, the embedding does not contain the original code any more
40
40
 
41
41
  Smart Tests uses embeddings to answer one question: when files change in a commit, which tests are most likely to exercise the behaviour that changed? Comparing embeddings makes that comparison tractable, accurate, and even language-agnostic – Smart Tests can reason about code relationships across languages and frameworks without parsing them.
42
42
 
43
- == What embeddings don't let us do
43
+ What embeddings don't let us do:
44
44
 
45
45
  * *They do not let us read your code*. The transformation from source to embedding is mathematically lossy; the original content cannot be recovered from a stored vector in any practical sense.
46
46
  * *They do not let us execute your code*, extract secrets from it or inspect its behaviour in any way.
47
47
  * *They do not enable cross-tenant access*. Every Smart Tests tenant's data – including embeddings – is isolated using row-level security in our database.
48
- * *They are not used to train public AI models*. Source content sent for embedding is processed to produce the vector and nothing else. It does not flow into the training data for any CloudBees or third-party foundation model.
49
48
 
50
- == Data security and handling practices
49
+ == Model training
51
50
 
52
- * *We use OpenAI to generate vector embeddings*. Source code is transmitted to OpenAI solely for this purpose and not stored with Smart Tests thereafter.
53
- * *In transit* – All data is transmitted over HTTPS using TLS 1.3 or higher, end-to-end between your CI environment and CloudBees infrastructure, and onward to OpenAI for embedding generation.
54
- * *During processing* – Source code is held only for the duration of embedding generation:
55
- ** First-time ingestion (full repository scan): ~3–4 minutes for large enterprise repositories.
56
- ** Subsequent commits (incremental updates): typically a few seconds.
57
- +
58
- After embedding generation completes, source code is permanently and irreversibly deleted. Only the embedding vectors are retained.
59
- * *Security reviews & Penetration testing* – CloudBees' production infrastructure is reviewed on a recurring basis as part of our standard security program. Smart Tests has already completed a security review, with future reviews scheduled accordingly.
51
+ Your source code is not used to train any AI model – not a CloudBees model, not OpenAI's, and not any other third-party foundation model, for any customer. Source content sent for embedding is processed to produce the vector, and nothing else; it never becomes part of a model's training data.
52
+
53
+ CloudBees does train its own prediction models – the ones that rank tests by relevance and power flaky-test detection. Those are trained on the metadata described above (commit and test-result data), not on source code content.
54
+
55
+ == Data retention
56
+
57
+ *CloudBees*: Source code is held only for the duration of embedding generation:
58
+
59
+ * First-time ingestion (full repository scan): ~3-4 minutes for large enterprise repositories.
60
+ * Subsequent commits (incremental updates): typically a few seconds.
61
+
62
+ After embedding generation completes, source code is permanently and irreversibly deleted. Only the embedding vectors and the metadata described above are retained, for as long as the customer's account is active. Customers have the option to have their data deleted; CloudBees will delete data based on a customer request to do so.
60
63
 
61
- == Data storage and retention
64
+ *OpenAI (subprocessor)*: Source code is transmitted to OpenAI's /v1/embeddings endpoint (model: text-embedding-3-small) solely to compute the embedding, and is not stored with Smart Tests thereafter. Per link:https://developers.openai.com/api/docs/guides/your-data#storage-requirements-and-retention-controls-per-endpoint[OpenAI's published data-control policy] for that endpoint:
62
65
 
63
- * *Encryption* – Personal information is encrypted both in transit and at rest.
64
- * *Tenant isolation* – CloudBees Smart Tests is a multi-tenant SaaS product, with each customer's data kept separate from one another.
66
+ * Data sent to the OpenAI API is *not used to train or improve OpenAI's models*.
67
+ * The endpoint retains *no application state* after the response is returned.
68
+ * *Zero Data Retention (ZDR) is enabled* for this workload – CloudBees' OpenAI organization is excluded from OpenAI's default abuse-monitoring log retention for this endpoint.
69
+
70
+ == Subprocessors
71
+
72
+ OpenAI is the only subprocessor that receives source code, and only for the purpose described above. Standard Contractual Clauses covering the transfer are included within OpenAI's link:https://openai.com/policies/data-processing-addendum[Data Processing Agreement], which CloudBees has agreed to.
73
+
74
+ All AI-related vendors that process personal data and are relevant to the services provided are listed within our link:https://www.cloudbees.com/company/trust-center[Trust Center].
75
+
76
+ == Access & security
77
+
78
+ * *Repository access* – Smart Tests does not require a standing connection to your source repository. The CLI runs inside your own CI pipeline and sends the code already checked out for that build – access is scoped to whatever that CI job already has, not a separate CloudBees integration into your SCM.
79
+ * *In transit* – All data is transmitted over HTTPS using TLS 1.3 or higher, end-to-end between your CI environment and CloudBees infrastructure, and onward to OpenAI for embedding generation.
80
+ * *At rest* – Data is encrypted at rest.
81
+ * *Tenant isolation* – CloudBees Smart Tests is a multi-tenant SaaS product; each customer's data – including embeddings – is isolated using row-level security in the database.
65
82
  * *Hosting location* – CloudBees Smart Tests is hosted on AWS' US-West region.
66
- * *Retention and deletion* – Customers have the option to have their data deleted. CloudBees will delete data based on a customer request to do so.
83
+ * *Certifications* – CloudBees Smart Tests is SOC 2 Type 1 compliant (as of August 2023). The underlying AWS infrastructure carries SOC 2 Type 2, ISO 27001, and ISO 27017.
84
+ * *Security reviews & penetration testing* – CloudBees' production infrastructure is reviewed on a recurring basis as part of our standard security program. Smart Tests has already completed a security review, with future reviews scheduled accordingly.
@@ -37,6 +37,6 @@ This command collects the details of the changes in each commit in your reposito
37
37
  By default, `smart-tests record build` runs `smart-tests record commit` , but these operations can be separated.
38
38
  --
39
39
 
40
- == More complex build/test pipelines
40
+ == Build from multiple repositories
41
41
 
42
42
  However, in many other cases, the software being tested might be a single binary built from several repositories. Furthermore, the tested software might combine several services deployed to a single testing environment. The xref:send-data-to-smart-tests:record-builds/record-builds-from-multiple-repositories.adoc[record builds from multiple repositories] page outlines how to instrument your pipeline in these situations.
@@ -32,6 +32,7 @@ When you request a subset of tests to run in your CI process, you pass in the na
32
32
  `smart-tests subset --session $SESSION_NAME [other options...]`
33
33
 
34
34
  This is important so that the Predictive Test Selection service can analyze the changes in the build and select tests appropriately.
35
+ Changes from all repositories in the build are considered, regardless of which repository the tests belong to.
35
36
 
36
37
  === Optimization target
37
38
 
@@ -177,3 +178,45 @@ In general, don't worry about creating the input test list. However, understandi
177
178
  --
178
179
  With xref:send-data-to-smart-tests:subset/zero-input-subsetting.adoc[Zero input subsetting], {PRODUCT} generates the input test list automatically.
179
180
  --
181
+
182
+ == Fallback mode on Smart Tests failures
183
+
184
+ When the subset API is unavailable or the model is untrained, the CLI falls back according to the `--fallback-mode` option. By default, the CLI runs all tests so that CI is never disrupted.
185
+
186
+ Fallback is triggered by either of the following conditions:
187
+
188
+ * The subset API call fails (network error, HTTP error, timeout, etc.).
189
+ * When the {PRODUCT} model is untrained and the service returns `isBrainless: true`, this means it is still learning from your recorded test data and cannot yet produce an optimized subset.
190
+
191
+ Use the `--fallback-mode` option to choose the fallback behavior:
192
+
193
+ |===
194
+ |Mode |Behavior |When to use
195
+
196
+ |`run-all` (default)
197
+ |Returns all tests unchanged. CI continues normally.
198
+ |Safest option; no disruption to CI when the service is unavailable.
199
+
200
+ |`stop`
201
+ |Exits with a non-zero status. CI halts immediately.
202
+ |When running an unoptimized test suite on failure is unacceptable.
203
+
204
+ |`random-sample`
205
+ |Picks a random local subset at the ratio specified by `--fallback-sampling-target`. No ML duration estimates are used.
206
+ |When you want partial test coverage even if the service is down.
207
+ |===
208
+
209
+ When using `--fallback-mode=random-sample`, you must also specify `--fallback-sampling-target` as a percentage (for example, `50%`). This option is not valid with any other fallback mode.
210
+
211
+ [source]
212
+ ----
213
+ smart-tests subset \
214
+ --fallback-mode random-sample \
215
+ --fallback-sampling-target 50% \
216
+ [other options...]
217
+ ----
218
+
219
+ [NOTE]
220
+ --
221
+ When the model is untrained and `--fallback-mode=random-sample` is set, the server-side result is used as-is. In this state the server also splits tests, so the local random sample is not applied.
222
+ --
@@ -43,7 +43,7 @@ In many cases, builds and test sessions map 1:1. For example, a developer pushes
43
43
 
44
44
  The CLI handles this default case without any extra steps. Just run `smart-tests record tests` at the end of your run to capture test results in a single session.
45
45
 
46
- . Test session definition 1
46
+ .Test session definition 1
47
47
  image::ROOT:test-session-definition.png[Test session definition 1,role="screenshot"]
48
48
 
49
49
  === Run tests in different environments
@@ -0,0 +1,40 @@
1
+ include::ROOT:partial$abbr.adoc[]
2
+ = GitHub app for test sessions
3
+ :slug: github-app-for-test-sessions
4
+
5
+ The GitHub app for test sessions gives developers convenient, timely access to test results from their GitHub pull requests. Developers can start investigating failures immediately, without waiting for the entire CI process to finish. Test results are delivered as comments on pull requests.
6
+
7
+ Access to associated workflows and test files via links provided in the {PRODUCT} web app is also available.
8
+
9
+ [#configuration-and-features]
10
+ == Configuration and features
11
+ The following steps are required to enable the GitHub app for test sessions:
12
+
13
+ . Install the link:https://github.com/apps/cloudbees-smart-tests/installations/new[{PRODUCT} GitHub app]. Your GitHub org admin might have to approve that process.
14
+
15
+ . Verify that your test session is associated with a GitHub pull request.
16
+
17
+ . Use the link:https://cloudbees.io/[{PRODUCT} webapp] to find a test session associated with a GitHub pull request.
18
+
19
+ . Once the dropdown appears, the app is fully integrated. This association happens automatically when the {PRODUCT} CLI detects environment variables that are set by typical CI systems to indicate that the test is running for a GitHub pull request.
20
+
21
+ . Select *View workflow run* to get to the workflow in GitHub Actions where this test session was triggered.
22
+
23
+ . Select *View pull request* to go directly to the pull request page for this session.
24
+ +
25
+ Additionally, once the sendGitHub app is integrated, you can jump directly to failing tests associated with files stored in sendGitHub repositories.
26
+
27
+ [#accessing-failing-tests]
28
+ == Accessing failing tests in sendGitHub
29
+
30
+ To access failing tests, follow these steps:
31
+
32
+ . Navigate to a test session page with a failure.
33
+
34
+ . Navigate to the *Failed tests* column at the bottom of the page.
35
+
36
+ . Select the ellipses for the desired failed test.
37
+
38
+ . Select the *Open in sendGitHub* link. This allows you to open this test file directly in sendGitHub.
39
+
40
+ image::ROOT:screenshot-2024-04-29-at-1-48-30-pm.png[]
@@ -503,7 +503,7 @@ The `--session` parameter is required and must use the session name that was reg
503
503
 
504
504
  // GENERATED. MODIFY IN CLI SOURCE CODE
505
505
  |`--fallback-mode` FALLBACKMODE
506
- |Behavior when the subset API is unavailable or the model is untrained. 'run-all' (default) runs all tests as usual; 'stop' exits with a non-zero status so CI halts; 'random-sample' picks a random subset locally based on the count derived from --fallback-sampling-target (no duration estimates are available in this path).
506
+ |Behavior when the subset API is unavailable or the model is untrained. 'run-all' (default) runs all tests as usual; 'stop' exits with a non-zero status so CI halts; 'random-sample' picks a random subset locally based on thecount derived from --fallback-sampling-target (no duration estimates are available in this path). Exception: if the model is untrained (brainless mode), theserver has already split the tests, so 'random-sample' keeps that server-provided split as-is instead of sampling locally; the local random sample only applies when the subset API request itself fails.
507
507
  |No
508
508
 
509
509
  // GENERATED. MODIFY IN CLI SOURCE CODE