cumulusci 4.2.0__tar.gz → 4.3.0.dev0__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 (723) hide show
  1. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/PKG-INFO +6 -10
  2. cumulusci-4.3.0.dev0/cumulusci/__about__.py +1 -0
  3. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/step.py +23 -0
  4. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_step.py +80 -0
  5. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/package.py +6 -2
  6. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/sobjects.py +1 -1
  7. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/check_components.py +67 -22
  8. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_check_components.py +205 -1
  9. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/docs/history.md +79 -53
  10. cumulusci-4.2.0/cumulusci/__about__.py +0 -1
  11. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/.gitignore +0 -0
  12. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/AUTHORS.rst +0 -0
  13. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/LICENSE +0 -0
  14. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/README.md +0 -0
  15. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/__init__.py +0 -0
  16. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/__main__.py +0 -0
  17. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/__init__.py +0 -0
  18. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/cci.py +0 -0
  19. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/error.py +0 -0
  20. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/flow.py +0 -0
  21. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/logger.py +0 -0
  22. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/org.py +0 -0
  23. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/plan.py +0 -0
  24. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/project.py +0 -0
  25. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/robot.py +0 -0
  26. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/runtime.py +0 -0
  27. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/service.py +0 -0
  28. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/task.py +0 -0
  29. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/__init__.py +0 -0
  30. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/test_cci.py +0 -0
  31. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/test_error.py +0 -0
  32. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/test_flow.py +0 -0
  33. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/test_logger.py +0 -0
  34. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/test_org.py +0 -0
  35. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/test_plan.py +0 -0
  36. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/test_project.py +0 -0
  37. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/test_robot.py +0 -0
  38. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/test_runtime.py +0 -0
  39. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/test_service.py +0 -0
  40. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/test_task.py +0 -0
  41. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/test_ui.py +0 -0
  42. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/test_utils.py +0 -0
  43. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/tests/utils.py +0 -0
  44. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/ui.py +0 -0
  45. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cli/utils.py +0 -0
  46. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/conftest.py +0 -0
  47. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/__init__.py +0 -0
  48. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/BaseConfig.py +0 -0
  49. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/BaseTaskFlowConfig.py +0 -0
  50. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/OrgConfig.py +0 -0
  51. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/ScratchOrgConfig.py +0 -0
  52. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/__init__.py +0 -0
  53. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/base_config.py +0 -0
  54. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/base_task_flow_config.py +0 -0
  55. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/marketing_cloud_service_config.py +0 -0
  56. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/oauth2_service_config.py +0 -0
  57. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/org_config.py +0 -0
  58. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/project_config.py +0 -0
  59. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/scratch_org_config.py +0 -0
  60. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/sfdx_org_config.py +0 -0
  61. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/tests/_test_config_backwards_compatibility.py +0 -0
  62. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/tests/test_config.py +0 -0
  63. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/tests/test_config_expensive.py +0 -0
  64. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/tests/test_config_util.py +0 -0
  65. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/universal_config.py +0 -0
  66. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/config/util.py +0 -0
  67. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/datasets.py +0 -0
  68. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/debug.py +0 -0
  69. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/dependencies/__init__.py +0 -0
  70. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/dependencies/dependencies.py +0 -0
  71. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/dependencies/github.py +0 -0
  72. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/dependencies/resolvers.py +0 -0
  73. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/dependencies/tests/__init__.py +0 -0
  74. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/dependencies/tests/conftest.py +0 -0
  75. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/dependencies/tests/test_dependencies.py +0 -0
  76. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/dependencies/tests/test_github.py +0 -0
  77. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/dependencies/tests/test_resolvers.py +0 -0
  78. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/dependencies/utils.py +0 -0
  79. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/enums.py +0 -0
  80. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/exceptions.py +0 -0
  81. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/flowrunner.py +0 -0
  82. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/github.py +0 -0
  83. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/keychain/__init__.py +0 -0
  84. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/keychain/base_project_keychain.py +0 -0
  85. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/keychain/encrypted_file_project_keychain.py +0 -0
  86. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/keychain/environment_project_keychain.py +0 -0
  87. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/keychain/serialization.py +0 -0
  88. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/keychain/subprocess_keychain.py +0 -0
  89. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/keychain/tests/conftest.py +0 -0
  90. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/keychain/tests/test_base_project_keychain.py +0 -0
  91. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/keychain/tests/test_encrypted_file_project_keychain.py +0 -0
  92. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/metadeploy/__init__.py +0 -0
  93. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/metadeploy/api.py +0 -0
  94. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/metadeploy/plans.py +0 -0
  95. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/metadeploy/tests/test_api.py +0 -0
  96. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/runtime.py +0 -0
  97. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/sfdx.py +0 -0
  98. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/source/__init__.py +0 -0
  99. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/source/github.py +0 -0
  100. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/source/local_folder.py +0 -0
  101. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/source_transforms/__init__.py +0 -0
  102. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/source_transforms/tests/test_transforms.py +0 -0
  103. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/source_transforms/transforms.py +0 -0
  104. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tasks.py +0 -0
  105. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/template_utils.py +0 -0
  106. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/__init__.py +0 -0
  107. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/cassettes/TestDatasetsE2E.test_datasets_e2e.yaml +0 -0
  108. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/cassettes/TestDatasetsE2E.test_datasets_extract_standard_objects.yaml +0 -0
  109. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/cassettes/TestDatasetsE2E.test_datasets_read_explicit_extract_declaration.yaml +0 -0
  110. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/fake_remote_repo/cumulusci.yml +0 -0
  111. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/fake_remote_repo/tasks/directory/example_2.py +0 -0
  112. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/fake_remote_repo/tasks/example.py +0 -0
  113. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/fake_remote_repo_2/cumulusci.yml +0 -0
  114. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/fake_remote_repo_2/tasks/example_3.py +0 -0
  115. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/test_datasets_e2e.py +0 -0
  116. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/test_exceptions.py +0 -0
  117. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/test_flowrunner.py +0 -0
  118. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/test_github.py +0 -0
  119. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/test_sfdx.py +0 -0
  120. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/test_source.py +0 -0
  121. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/test_tasks.py +0 -0
  122. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/test_utils.py +0 -0
  123. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/test_utils_merge_config.py +0 -0
  124. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/test_versions.py +0 -0
  125. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/untrusted_repo_child/cumulusci.yml +0 -0
  126. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/untrusted_repo_child/tasks/untrusted_child.py +0 -0
  127. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/untrusted_repo_parent/cumulusci.yml +0 -0
  128. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/untrusted_repo_parent/tasks/untrusted_parent.py +0 -0
  129. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/utils.py +0 -0
  130. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/tests/yaml/global.yaml +0 -0
  131. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/utils.py +0 -0
  132. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/core/versions.py +0 -0
  133. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/cumulusci.yml +0 -0
  134. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/files/admin_profile.xml +0 -0
  135. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/files/delete_excludes.txt +0 -0
  136. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/files/templates/project/README.md +0 -0
  137. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/files/templates/project/cumulusci.yml +0 -0
  138. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/files/templates/project/dot-gitignore +0 -0
  139. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/files/templates/project/mapping.yml +0 -0
  140. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/files/templates/project/scratch_def.json +0 -0
  141. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/oauth/__init__.py +0 -0
  142. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/oauth/client.py +0 -0
  143. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/oauth/exceptions.py +0 -0
  144. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/oauth/salesforce.py +0 -0
  145. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/oauth/tests/__init__.py +0 -0
  146. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/oauth/tests/cassettes/test_get_device_code.yaml +0 -0
  147. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/oauth/tests/cassettes/test_get_device_oauth_token.yaml +0 -0
  148. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/oauth/tests/test_client.py +0 -0
  149. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/oauth/tests/test_salesforce.py +0 -0
  150. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/CumulusCI.py +0 -0
  151. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/CumulusCI.robot +0 -0
  152. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/Performance.py +0 -0
  153. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/Salesforce.py +0 -0
  154. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/Salesforce.robot +0 -0
  155. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/SalesforceAPI.py +0 -0
  156. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/SalesforcePlaywright.py +0 -0
  157. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/SalesforcePlaywright.robot +0 -0
  158. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/__init__.py +0 -0
  159. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/base_library.py +0 -0
  160. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/faker_mixin.py +0 -0
  161. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/form_handlers.py +0 -0
  162. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/javascript/cci_init.js +0 -0
  163. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/javascript/cumulusci.js +0 -0
  164. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/locator_manager.py +0 -0
  165. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/locators_56.py +0 -0
  166. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/locators_57.py +0 -0
  167. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/pageobjects/BasePageObjects.py +0 -0
  168. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/pageobjects/ObjectManagerPageObject.py +0 -0
  169. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/pageobjects/PageObjectLibrary.py +0 -0
  170. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/pageobjects/PageObjects.py +0 -0
  171. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/pageobjects/__init__.py +0 -0
  172. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/pageobjects/baseobjects.py +0 -0
  173. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/perftests/short/collection_perf.robot +0 -0
  174. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/CustomObjectTestPage.py +0 -0
  175. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/FooTestPage.py +0 -0
  176. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/cumulusci/base.robot +0 -0
  177. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/cumulusci/bulkdata.robot +0 -0
  178. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/cumulusci/communities.robot +0 -0
  179. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/cumulusci/datagen.robot +0 -0
  180. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/TestLibraryA.py +0 -0
  181. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/TestLibraryB.py +0 -0
  182. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/TestListener.py +0 -0
  183. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/api.robot +0 -0
  184. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/browsers.robot +0 -0
  185. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/classic.robot +0 -0
  186. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/create_contact.robot +0 -0
  187. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/faker.robot +0 -0
  188. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/forms.robot +0 -0
  189. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/label_locator.robot +0 -0
  190. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/labels.html +0 -0
  191. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/locators.robot +0 -0
  192. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/pageobjects/base_pageobjects.robot +0 -0
  193. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/pageobjects/example_page_object.py +0 -0
  194. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/pageobjects/listing_page.robot +0 -0
  195. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/pageobjects/objectmanager.robot +0 -0
  196. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/pageobjects/pageobjects.robot +0 -0
  197. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/performance.robot +0 -0
  198. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/playwright/javascript_keywords.robot +0 -0
  199. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/playwright/open_test_browser.robot +0 -0
  200. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/playwright/playwright.robot +0 -0
  201. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/playwright/ui.robot +0 -0
  202. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/populate.robot +0 -0
  203. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/test_testlistener.py +0 -0
  204. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/salesforce/ui.robot +0 -0
  205. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/test_cumulusci_library.py +0 -0
  206. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/test_locator_manager.py +0 -0
  207. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/test_pageobjects.py +0 -0
  208. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/test_performance.py +0 -0
  209. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/test_salesforce.py +0 -0
  210. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/test_salesforce_locators.py +0 -0
  211. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/test_template_util.py +0 -0
  212. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/tests/test_utils.py +0 -0
  213. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/robotframework/utils.py +0 -0
  214. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/__init__.py +0 -0
  215. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/exceptions.py +0 -0
  216. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/filterable_objects.py +0 -0
  217. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/mc_soap_envelopes.py +0 -0
  218. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/metadata.py +0 -0
  219. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/org_schema.py +0 -0
  220. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/org_schema_models.py +0 -0
  221. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/package_install.py +0 -0
  222. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/package_zip.py +0 -0
  223. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/rest_deploy.py +0 -0
  224. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/retrieve_profile_api.py +0 -0
  225. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/soap_envelopes.py +0 -0
  226. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/tests/__init__.py +0 -0
  227. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/tests/metadata_test_strings.py +0 -0
  228. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/tests/test_metadata.py +0 -0
  229. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/tests/test_package_install.py +0 -0
  230. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/tests/test_package_zip.py +0 -0
  231. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/tests/test_rest_deploy.py +0 -0
  232. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/tests/test_retrieve_profile_api.py +0 -0
  233. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/tests/test_utils.py +0 -0
  234. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/salesforce_api/utils.py +0 -0
  235. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/schema/cumulusci.jsonschema.json +0 -0
  236. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/__init__.py +0 -0
  237. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/apex/__init__.py +0 -0
  238. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/apex/anon.py +0 -0
  239. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/apex/batch.py +0 -0
  240. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/apex/testrunner.py +0 -0
  241. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/apex/tests/cassettes/ManualEditTestApexIntegrationTests.test_run_tests__integration_test.yaml +0 -0
  242. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/apex/tests/test_apex_tasks.py +0 -0
  243. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/__init__.py +0 -0
  244. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/base_generate_data_task.py +0 -0
  245. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/dates.py +0 -0
  246. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/delete.py +0 -0
  247. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/extract.py +0 -0
  248. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/extract_dataset_utils/calculate_dependencies.py +0 -0
  249. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/extract_dataset_utils/extract_yml.py +0 -0
  250. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/extract_dataset_utils/hardcoded_default_declarations.py +0 -0
  251. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/extract_dataset_utils/synthesize_extract_declarations.py +0 -0
  252. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/extract_dataset_utils/tests/test_extract_yml.py +0 -0
  253. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/extract_dataset_utils/tests/test_synthesize_extract_declarations.py +0 -0
  254. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/factory_utils.py +0 -0
  255. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate.py +0 -0
  256. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate_and_load_data.py +0 -0
  257. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate_and_load_data_from_yaml.py +0 -0
  258. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate_from_yaml.py +0 -0
  259. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate_mapping.py +0 -0
  260. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate_mapping_utils/dependency_map.py +0 -0
  261. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate_mapping_utils/extract_mapping_file_generator.py +0 -0
  262. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate_mapping_utils/generate_mapping_from_declarations.py +0 -0
  263. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate_mapping_utils/load_mapping_file_generator.py +0 -0
  264. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate_mapping_utils/mapping_generator_post_processes.py +0 -0
  265. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate_mapping_utils/mapping_transforms.py +0 -0
  266. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_generate_extract_mapping_from_declarations.py +0 -0
  267. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_generate_load_mapping_from_declarations.py +0 -0
  268. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_mapping_generator_post_processes.py +0 -0
  269. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_mapping_transforms.py +0 -0
  270. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/load.py +0 -0
  271. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/mapping_parser.py +0 -0
  272. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/query_transformers.py +0 -0
  273. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/select_utils.py +0 -0
  274. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/snowfakery.py +0 -0
  275. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/snowfakery_utils/queue_manager.py +0 -0
  276. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/snowfakery_utils/snowfakery_run_until.py +0 -0
  277. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/snowfakery_utils/snowfakery_working_directory.py +0 -0
  278. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/snowfakery_utils/subtask_configurator.py +0 -0
  279. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/__init__.py +0 -0
  280. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestSelect.test_select_random_strategy.yaml +0 -0
  281. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestSelect.test_select_similarity_annoy_strategy.yaml +0 -0
  282. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestSelect.test_select_similarity_select_and_insert_strategy.yaml +0 -0
  283. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestSelect.test_select_similarity_select_and_insert_strategy_bulk.yaml +0 -0
  284. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestSelect.test_select_similarity_strategy.yaml +0 -0
  285. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestSelect.test_select_standard_strategy.yaml +0 -0
  286. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestSnowfakery.test_run_until_records_in_org__multiple_needed.yaml +0 -0
  287. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestSnowfakery.test_run_until_records_in_org__none_needed.yaml +0 -0
  288. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestSnowfakery.test_run_until_records_in_org__one_needed.yaml +0 -0
  289. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestSnowfakery.test_snowfakery_query_salesforce.yaml +0 -0
  290. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestUpdatesIntegrationTests.test_updates_task.yaml +0 -0
  291. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestUpsert.test_simple_upsert__rest.yaml +0 -0
  292. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestUpsert.test_upsert__rest.yaml +0 -0
  293. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestUpsert.test_upsert_complex_external_id_field__rest.yaml +0 -0
  294. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestUpsert.test_upsert_complex_external_id_field_rest__duplicate_error.yaml +0 -0
  295. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestUpsert.test_upsert_complex_fields__bulk.yaml +0 -0
  296. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/cassettes/TestUpsert.test_upsert_external_id_field.yaml +0 -0
  297. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/dummy_data_factory.py +0 -0
  298. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/integration_test_utils.py +0 -0
  299. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping-oid.yml +0 -0
  300. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_after.yml +0 -0
  301. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_poly.yml +0 -0
  302. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_poly_incomplete.yml +0 -0
  303. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_poly_wrong.yml +0 -0
  304. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_select.yml +0 -0
  305. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_select_invalid_strategy.yml +0 -0
  306. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_select_invalid_threshold__invalid_number.yml +0 -0
  307. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_select_invalid_threshold__invalid_strategy.yml +0 -0
  308. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_select_invalid_threshold__non_float.yml +0 -0
  309. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_select_missing_priority_fields.yml +0 -0
  310. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_select_no_priority_fields.yml +0 -0
  311. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_simple.yml +0 -0
  312. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_v1.yml +0 -0
  313. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_v2.yml +0 -0
  314. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_v3.yml +0 -0
  315. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mapping_vanilla_sf.yml +0 -0
  316. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/mock_data_factory_without_mapping.py +0 -0
  317. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/person_accounts.sql +0 -0
  318. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/person_accounts.yml +0 -0
  319. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/person_accounts_minimal.yml +0 -0
  320. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/recordtypes.sql +0 -0
  321. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/recordtypes.yml +0 -0
  322. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/recordtypes_2.sql +0 -0
  323. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/recordtypes_2.yml +0 -0
  324. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/recordtypes_with_ispersontype.sql +0 -0
  325. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/recordtypes_with_ispersontype.yml +0 -0
  326. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/child/child2.yml +0 -0
  327. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/child.yml +0 -0
  328. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/gen_npsp_standard_objects.recipe.yml +0 -0
  329. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/include_parent.yml +0 -0
  330. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/npsp_standard_objects_macros.yml +0 -0
  331. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/options.recipe.yml +0 -0
  332. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/query_snowfakery.recipe.yml +0 -0
  333. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/sf_standard_object_macros.yml +0 -0
  334. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery.load.yml +0 -0
  335. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery.recipe.yml +0 -0
  336. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_2.load.yml +0 -0
  337. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels.load.yml +0 -0
  338. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels.recipe.yml +0 -0
  339. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels_2.load.yml +0 -0
  340. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/unique_values.recipe.yml +0 -0
  341. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/upsert.recipe.yml +0 -0
  342. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/upsert_2.recipe.yml +0 -0
  343. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/snowfakery/upsert_before.yml +0 -0
  344. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_base_generate_data_tasks.py +0 -0
  345. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_dates.py +0 -0
  346. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_delete.py +0 -0
  347. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_extract.py +0 -0
  348. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_factory_utils.py +0 -0
  349. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_generate_and_load.py +0 -0
  350. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_generate_from_snowfakery_task.py +0 -0
  351. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_generatemapping.py +0 -0
  352. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_load.py +0 -0
  353. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_mapping_parser.py +0 -0
  354. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_query_db__joins_self_lookups.sql +0 -0
  355. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_query_db__joins_self_lookups.yml +0 -0
  356. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_query_db_joins_lookups.sql +0 -0
  357. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_query_db_joins_lookups.yml +0 -0
  358. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_query_db_joins_lookups_select.yml +0 -0
  359. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_select.py +0 -0
  360. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_select_utils.py +0 -0
  361. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_snowfakery.py +0 -0
  362. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_updates.py +0 -0
  363. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_upsert.py +0 -0
  364. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/test_utils.py +0 -0
  365. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/testdata.db +0 -0
  366. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/testdata.sql +0 -0
  367. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/update_describe.py +0 -0
  368. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/update_person_accounts.yml +0 -0
  369. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/tests/utils.py +0 -0
  370. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/update_data.py +0 -0
  371. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/upsert_utils.py +0 -0
  372. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/bulkdata/utils.py +0 -0
  373. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/command.py +0 -0
  374. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/connectedapp.py +0 -0
  375. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/create_package_version.py +0 -0
  376. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/datadictionary.py +0 -0
  377. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/dx_convert_from.py +0 -0
  378. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/__init__.py +0 -0
  379. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/base.py +0 -0
  380. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/commit_status.py +0 -0
  381. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/merge.py +0 -0
  382. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/publish.py +0 -0
  383. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/pull_request.py +0 -0
  384. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/release.py +0 -0
  385. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/release_report.py +0 -0
  386. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/tag.py +0 -0
  387. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/tests/__init__.py +0 -0
  388. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/tests/test_commit_status.py +0 -0
  389. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/tests/test_merge.py +0 -0
  390. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/tests/test_publish.py +0 -0
  391. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/tests/test_pull_request.py +0 -0
  392. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/tests/test_release.py +0 -0
  393. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/tests/test_release_report.py +0 -0
  394. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/tests/test_tag.py +0 -0
  395. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/tests/test_util.py +0 -0
  396. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/tests/util_github_api.py +0 -0
  397. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/github/util.py +0 -0
  398. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/__init__.py +0 -0
  399. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/api.py +0 -0
  400. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/base.py +0 -0
  401. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/deploy.py +0 -0
  402. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/get_user_info.py +0 -0
  403. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/mc_constants.py +0 -0
  404. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/tests/__init__.py +0 -0
  405. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/tests/conftest.py +0 -0
  406. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/tests/expected-payload.json +0 -0
  407. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/tests/test-mc-pkg.zip +0 -0
  408. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/tests/test_api.py +0 -0
  409. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/tests/test_api_soap_envelopes.py +0 -0
  410. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/tests/test_base.py +0 -0
  411. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/tests/test_deploy.py +0 -0
  412. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/tests/test_get_user_info.py +0 -0
  413. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/marketing_cloud/tests/validation-response.json +0 -0
  414. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/__init__.py +0 -0
  415. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/ee_src.py +0 -0
  416. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/managed_src.py +0 -0
  417. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/metadata_map.yml +0 -0
  418. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/modify.py +0 -0
  419. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/tests/__init__.py +0 -0
  420. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/.hidden/.keep +0 -0
  421. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/destructiveChanges.xml +0 -0
  422. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/package.xml +0 -0
  423. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/package_install_uninstall.xml +0 -0
  424. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/reports/namespace__TestFolder/TestReport.report +0 -0
  425. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/tests/sample_package.xml +0 -0
  426. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/tests/test_ee_src.py +0 -0
  427. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/tests/test_managed_src.py +0 -0
  428. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/tests/test_modify.py +0 -0
  429. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata/tests/test_package.py +0 -0
  430. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/__init__.py +0 -0
  431. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/base.py +0 -0
  432. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/duplicate_rules.py +0 -0
  433. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/field_sets.py +0 -0
  434. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/help_text.py +0 -0
  435. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/layouts.py +0 -0
  436. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/objects.py +0 -0
  437. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/permissions.py +0 -0
  438. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/picklists.py +0 -0
  439. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/remote_site_settings.py +0 -0
  440. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/sharing.py +0 -0
  441. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_base.py +0 -0
  442. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_duplicate_rules.py +0 -0
  443. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_field_sets.py +0 -0
  444. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_help_text.py +0 -0
  445. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_ip_ranges.py +0 -0
  446. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_layouts.py +0 -0
  447. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_objects.py +0 -0
  448. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_permissions.py +0 -0
  449. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_picklists.py +0 -0
  450. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_remote_site_settings.py +0 -0
  451. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_sharing.py +0 -0
  452. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/tests/test_value_sets.py +0 -0
  453. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadata_etl/value_sets.py +0 -0
  454. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metadeploy.py +0 -0
  455. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/metaxml.py +0 -0
  456. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/__init__.py +0 -0
  457. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/dataset_load.py +0 -0
  458. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/licenses.py +0 -0
  459. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/packages.py +0 -0
  460. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/permsets.py +0 -0
  461. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/recordtypes.py +0 -0
  462. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/retrieve_tasks.py +0 -0
  463. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/settings.py +0 -0
  464. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/tests/test_dataset_load.py +0 -0
  465. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/tests/test_licenses.py +0 -0
  466. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/tests/test_packages.py +0 -0
  467. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/tests/test_permset_preflights.py +0 -0
  468. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/tests/test_recordtypes.py +0 -0
  469. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/tests/test_retrieve_tasks.py +0 -0
  470. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/tests/test_settings.py +0 -0
  471. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/preflight/tests/test_sobjects.py +0 -0
  472. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/push/README.md +0 -0
  473. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/push/__init__.py +0 -0
  474. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/push/push_api.py +0 -0
  475. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/push/pushfails.py +0 -0
  476. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/push/tasks.py +0 -0
  477. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/push/tests/conftest.py +0 -0
  478. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/push/tests/test_push_api.py +0 -0
  479. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/push/tests/test_push_tasks.py +0 -0
  480. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/README.md +0 -0
  481. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/__init__.py +0 -0
  482. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/exceptions.py +0 -0
  483. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/generator.py +0 -0
  484. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/parser.py +0 -0
  485. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/provider.py +0 -0
  486. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/task.py +0 -0
  487. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/tests/__init__.py +0 -0
  488. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/tests/change_notes/full/example1.md +0 -0
  489. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/tests/change_notes/multi/1.txt +0 -0
  490. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/tests/change_notes/multi/2.txt +0 -0
  491. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/tests/change_notes/multi/3.txt +0 -0
  492. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/tests/change_notes/single/1.txt +0 -0
  493. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/tests/test_generator.py +0 -0
  494. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/tests/test_parser.py +0 -0
  495. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/tests/test_provider.py +0 -0
  496. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/tests/test_task.py +0 -0
  497. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/release_notes/tests/utils.py +0 -0
  498. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/__init__.py +0 -0
  499. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/debugger/DebugListener.py +0 -0
  500. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/debugger/__init__.py +0 -0
  501. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/debugger/model.py +0 -0
  502. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/debugger/ui.py +0 -0
  503. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/libdoc.py +0 -0
  504. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/robotframework.py +0 -0
  505. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/stylesheet.css +0 -0
  506. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/template.html +0 -0
  507. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/tests/TestLibrary.py +0 -0
  508. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/tests/TestPageObjects.py +0 -0
  509. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/tests/TestResource.robot +0 -0
  510. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/tests/failing_tests.robot +0 -0
  511. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/tests/performance.robot +0 -0
  512. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/tests/test_browser_proxies.py +0 -0
  513. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/tests/test_debugger.py +0 -0
  514. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/tests/test_robot_parallel.py +0 -0
  515. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/robotframework/tests/test_robotframework.py +0 -0
  516. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/BaseRetrieveMetadata.py +0 -0
  517. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/BaseSalesforceApiTask.py +0 -0
  518. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/BaseSalesforceMetadataApiTask.py +0 -0
  519. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/BaseSalesforceTask.py +0 -0
  520. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/BaseUninstallMetadata.py +0 -0
  521. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/CreateCommunity.py +0 -0
  522. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/CreatePackage.py +0 -0
  523. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/Deploy.py +0 -0
  524. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/DeployBundles.py +0 -0
  525. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/DescribeMetadataTypes.py +0 -0
  526. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/EnsureRecordTypes.py +0 -0
  527. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/GetInstalledPackages.py +0 -0
  528. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/ListCommunities.py +0 -0
  529. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/ListCommunityTemplates.py +0 -0
  530. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/PublishCommunity.py +0 -0
  531. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/RetrievePackaged.py +0 -0
  532. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/RetrieveReportsAndDashboards.py +0 -0
  533. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/RetrieveUnpackaged.py +0 -0
  534. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/SOQLQuery.py +0 -0
  535. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/UninstallLocal.py +0 -0
  536. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/UninstallLocalBundles.py +0 -0
  537. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/UninstallLocalNamespacedBundles.py +0 -0
  538. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/UninstallPackage.py +0 -0
  539. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/UninstallPackaged.py +0 -0
  540. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/UpdateAdminProfile.py +0 -0
  541. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/__init__.py +0 -0
  542. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/activate_flow.py +0 -0
  543. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/composite.py +0 -0
  544. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/create_permission_sets.py +0 -0
  545. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/custom_settings.py +0 -0
  546. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/custom_settings_wait.py +0 -0
  547. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/enable_prediction.py +0 -0
  548. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/insert_record.py +0 -0
  549. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/install_package_version.py +0 -0
  550. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/license_preflights.py +0 -0
  551. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/network_member_group.py +0 -0
  552. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/nonsourcetracking.py +0 -0
  553. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/org_settings.py +0 -0
  554. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/package_upload.py +0 -0
  555. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/profiles.py +0 -0
  556. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/promote_package_version.py +0 -0
  557. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/retrieve_profile.py +0 -0
  558. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/salesforce_files.py +0 -0
  559. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/sourcetracking.py +0 -0
  560. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/__init__.py +0 -0
  561. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_CreateCommunity.py +0 -0
  562. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_CreatePackage.py +0 -0
  563. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_Deploy.py +0 -0
  564. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_DeployBundles.py +0 -0
  565. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_EnsureRecordTypes.py +0 -0
  566. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_ListCommunities.py +0 -0
  567. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_ListCommunityTemplates.py +0 -0
  568. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_PackageUpload.py +0 -0
  569. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_ProfileGrantAllAccess.py +0 -0
  570. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_PublishCommunity.py +0 -0
  571. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_RetrievePackaged.py +0 -0
  572. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_RetrieveReportsAndDashboards.py +0 -0
  573. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_RetrieveUnpackaged.py +0 -0
  574. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_SOQLQuery.py +0 -0
  575. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_UninstallLocal.py +0 -0
  576. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_UninstallLocalBundles.py +0 -0
  577. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_UninstallLocalNamespacedBundles.py +0 -0
  578. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_UninstallPackage.py +0 -0
  579. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_UninstallPackaged.py +0 -0
  580. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_UninstallPackagedIncremental.py +0 -0
  581. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_activate_flow.py +0 -0
  582. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_base_tasks.py +0 -0
  583. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_composite.py +0 -0
  584. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_create_permission_sets.py +0 -0
  585. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_custom_settings.py +0 -0
  586. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_custom_settings_wait.py +0 -0
  587. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_describemetadatatypes.py +0 -0
  588. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_enable_prediction.py +0 -0
  589. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_insert_record.py +0 -0
  590. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_install_package_version.py +0 -0
  591. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_network_member_group.py +0 -0
  592. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_nonsourcetracking.py +0 -0
  593. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_org_settings.py +0 -0
  594. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_profiles.py +0 -0
  595. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_retrieve_profile.py +0 -0
  596. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_salesforce_files.py +0 -0
  597. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_sourcetracking.py +0 -0
  598. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_trigger_handlers.py +0 -0
  599. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/test_update_dependencies.py +0 -0
  600. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/tests/util.py +0 -0
  601. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/trigger_handlers.py +0 -0
  602. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/uninstall_packaged_incremental.py +0 -0
  603. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/update_dependencies.py +0 -0
  604. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/update_profile.py +0 -0
  605. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/users/permsets.py +0 -0
  606. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/users/photos.py +0 -0
  607. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/users/tests/photo.mock.txt +0 -0
  608. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/users/tests/test_permsets.py +0 -0
  609. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/salesforce/users/tests/test_photos.py +0 -0
  610. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/sample_data/capture_sample_data.py +0 -0
  611. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/sample_data/load_sample_data.py +0 -0
  612. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/sample_data/test_capture_sample_data.py +0 -0
  613. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/sample_data/test_load_sample_data.py +0 -0
  614. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/sfdx.py +0 -0
  615. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/tests/__init__.py +0 -0
  616. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/tests/conftest.py +0 -0
  617. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/tests/test_command.py +0 -0
  618. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/tests/test_connectedapp.py +0 -0
  619. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/tests/test_create_package_version.py +0 -0
  620. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/tests/test_datadictionary.py +0 -0
  621. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/tests/test_dx_convert_from.py +0 -0
  622. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/tests/test_metadeploy.py +0 -0
  623. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/tests/test_metaxml.py +0 -0
  624. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/tests/test_promote_package_version.py +0 -0
  625. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/tests/test_pushfails.py +0 -0
  626. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/tests/test_salesforce.py +0 -0
  627. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/tests/test_sfdx.py +0 -0
  628. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/tests/test_util.py +0 -0
  629. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/util.py +0 -0
  630. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/vlocity/exceptions.py +0 -0
  631. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/vlocity/tests/test_vlocity.py +0 -0
  632. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tasks/vlocity/vlocity.py +0 -0
  633. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/__init__.py +0 -0
  634. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/cassettes/GET_sobjects_Account_PersonAccount_describe.yaml +0 -0
  635. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/cassettes/TestIntegrationInfrastructure.test_integration_tests.yaml +0 -0
  636. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/pytest_plugins/pytest_sf_orgconnect.py +0 -0
  637. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/pytest_plugins/pytest_sf_vcr.py +0 -0
  638. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/pytest_plugins/pytest_sf_vcr_serializer.py +0 -0
  639. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/pytest_plugins/pytest_typeguard.py +0 -0
  640. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/pytest_plugins/test_vcr_string_compressor.py +0 -0
  641. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/pytest_plugins/vcr_string_compressor.py +0 -0
  642. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/shared_cassettes/GET_sobjects_Account_describe.yaml +0 -0
  643. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/shared_cassettes/GET_sobjects_Case_describe.yaml +0 -0
  644. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/shared_cassettes/GET_sobjects_Contact_describe.yaml +0 -0
  645. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/shared_cassettes/GET_sobjects_Custom__c_describe.yaml +0 -0
  646. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/shared_cassettes/GET_sobjects_Event_describe.yaml +0 -0
  647. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/shared_cassettes/GET_sobjects_Global_describe.yaml +0 -0
  648. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/shared_cassettes/GET_sobjects_Lead_describe.yaml +0 -0
  649. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/shared_cassettes/GET_sobjects_OpportunityContactRole_describe.yaml +0 -0
  650. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/shared_cassettes/GET_sobjects_Opportunity_describe.yaml +0 -0
  651. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/shared_cassettes/GET_sobjects_Organization.yaml +0 -0
  652. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/shared_cassettes/vcr_string_templates/batchInfoList_xml.tpl +0 -0
  653. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/shared_cassettes/vcr_string_templates/batchInfo_xml.tpl +0 -0
  654. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/shared_cassettes/vcr_string_templates/jobInfo_insert_xml.tpl +0 -0
  655. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/shared_cassettes/vcr_string_templates/jobInfo_upsert_xml.tpl +0 -0
  656. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/test_entry_points.py +0 -0
  657. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/test_integration_infrastructure.py +0 -0
  658. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/test_main.py +0 -0
  659. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/test_schema.py +0 -0
  660. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/test_utils.py +0 -0
  661. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/test_vcr_serializer.py +0 -0
  662. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/uncompressed_cassette.yaml +0 -0
  663. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/tests/util.py +0 -0
  664. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/__init__.py +0 -0
  665. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/classutils.py +0 -0
  666. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/collections.py +0 -0
  667. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/deprecation.py +0 -0
  668. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/encryption.py +0 -0
  669. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/fileutils.py +0 -0
  670. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/git.py +0 -0
  671. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/http/multi_request.py +0 -0
  672. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/http/requests_utils.py +0 -0
  673. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/http/tests/cassettes/ManualEditTestCompositeParallelSalesforce.test_http_headers.yaml +0 -0
  674. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/http/tests/cassettes/TestCompositeParallelSalesforce.test_composite_parallel_salesforce.yaml +0 -0
  675. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/http/tests/cassettes/TestCompositeParallelSalesforce.test_errors.yaml +0 -0
  676. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/http/tests/cassettes/TestCompositeParallelSalesforce.test_reference_ids.yaml +0 -0
  677. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/http/tests/test_multi_request.py +0 -0
  678. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/iterators.py +0 -0
  679. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/logging.py +0 -0
  680. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/metaprogramming.py +0 -0
  681. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/options.py +0 -0
  682. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/parallel/queries_in_parallel/run_queries_in_parallel.py +0 -0
  683. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/parallel/queries_in_parallel/tests/test_run_queries_in_parallel.py +0 -0
  684. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/parallel/task_worker_queues/parallel_worker.py +0 -0
  685. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/parallel/task_worker_queues/parallel_worker_queue.py +0 -0
  686. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/parallel/task_worker_queues/tests/test_parallel_worker.py +0 -0
  687. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/salesforce/count_sobjects.py +0 -0
  688. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/salesforce/soql.py +0 -0
  689. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/salesforce/tests/cassettes/ManualEdit_TestCountSObjects.test_count_sobjects__network_errors.yaml +0 -0
  690. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/salesforce/tests/cassettes/TestCountSObjects.test_count_sobjects__errors.yaml +0 -0
  691. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/salesforce/tests/cassettes/TestCountSObjects.test_count_sobjects_simple.yaml +0 -0
  692. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/salesforce/tests/test_count_sobjects.py +0 -0
  693. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/salesforce/tests/test_soql.py +0 -0
  694. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/tests/cassettes/ManualEditTestDescribeOrg.test_minimal_schema.yaml +0 -0
  695. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/tests/cassettes/ManualEdit_test_describe_to_sql.yaml +0 -0
  696. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/tests/test_fileutils.py +0 -0
  697. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/tests/test_git.py +0 -0
  698. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/tests/test_logging.py +0 -0
  699. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/tests/test_option_parsing.py +0 -0
  700. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/tests/test_org_schema.py +0 -0
  701. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/tests/test_org_schema_models.py +0 -0
  702. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/tests/test_waiting.py +0 -0
  703. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/version_strings.py +0 -0
  704. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/waiting.py +0 -0
  705. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/xml/__init__.py +0 -0
  706. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/xml/metadata_tree.py +0 -0
  707. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/xml/robot_xml.py +0 -0
  708. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/xml/salesforce_encoding.py +0 -0
  709. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/xml/test/test_metadata_tree.py +0 -0
  710. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/xml/test/test_salesforce_encoding.py +0 -0
  711. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/yaml/cumulusci_yml.py +0 -0
  712. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/yaml/model_parser.py +0 -0
  713. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/yaml/safer_loader.py +0 -0
  714. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/yaml/tests/bad_cci.yml +0 -0
  715. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/yaml/tests/cassettes/TestCumulusciYml.test_validate_url__with_errors.yaml +0 -0
  716. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/yaml/tests/test_cumulusci_yml.py +0 -0
  717. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/yaml/tests/test_model_parser.py +0 -0
  718. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/yaml/tests/test_safer_loader.py +0 -0
  719. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/cumulusci/utils/ziputils.py +0 -0
  720. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/docs/adrs/README.md +0 -0
  721. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/docs/diagram/README.md +0 -0
  722. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/pyproject.toml +0 -0
  723. {cumulusci-4.2.0 → cumulusci-4.3.0.dev0}/robot/CumulusCI/javascript/README.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cumulusci
3
- Version: 4.2.0
3
+ Version: 4.3.0.dev0
4
4
  Summary: Build and release tools for Salesforce developers
5
5
  Project-URL: Homepage, https://github.com/SFDO-Tooling/CumulusCI
6
6
  Project-URL: Changelog, https://cumulusci.readthedocs.io/en/stable/history.html
@@ -126,7 +126,7 @@ license](https://github.com/SFDO-Tooling/CumulusCI/blob/main/LICENSE)
126
126
  and is not covered by the Salesforce Master Subscription Agreement.
127
127
 
128
128
  <!-- Changelog -->
129
- ## v4.2.0 (2025-01-20)
129
+ ## v4.3.0.dev0 (2025-02-19)
130
130
 
131
131
  <!-- Release notes generated using configuration in .github/release.yml at main -->
132
132
 
@@ -134,12 +134,8 @@ and is not covered by the Salesforce Master Subscription Agreement.
134
134
 
135
135
  ### Changes 🎉
136
136
 
137
- - fix: Prevent 'directory not empty' error in `snowfakery` on Linux by [@schenkkp](https://github.com/schenkkp) in [#3864](https://github.com/SFDO-Tooling/CumulusCI/pull/3864)
138
- - @W-17621812: Update \_get_required_permission_types to handle SELECT operations by [@aditya-balachander](https://github.com/aditya-balachander) in [#3870](https://github.com/SFDO-Tooling/CumulusCI/pull/3870)
137
+ - @W-17717398: Fix for Error When Local Records Are Empty During SELECT Action by [@aditya-balachander](https://github.com/aditya-balachander) in [#3877](https://github.com/SFDO-Tooling/CumulusCI/pull/3877)
138
+ - Changed Check Components to add a get repo components function by [@jain-naman-sf](https://github.com/jain-naman-sf) in [#3881](https://github.com/SFDO-Tooling/CumulusCI/pull/3881)
139
+ - Fixed the mdapi issue for Check Components by [@jain-naman-sf](https://github.com/jain-naman-sf) in [#3882](https://github.com/SFDO-Tooling/CumulusCI/pull/3882)
139
140
 
140
- ## New Contributors
141
-
142
- - @RupertBarrow made their first contribution in [#3490](https://github.com/SFDO-Tooling/CumulusCI/pull/3490)
143
- - @schenkkp made their first contribution in [#3864](https://github.com/SFDO-Tooling/CumulusCI/pull/3864)
144
-
145
- **Full Changelog**: https://github.com/SFDO-Tooling/CumulusCI/compare/v4.1.0...v4.2.0
141
+ **Full Changelog**: https://github.com/SFDO-Tooling/CumulusCI/compare/v4.3.0...v4.3.0.dev0
@@ -0,0 +1 @@
1
+ __version__ = "4.3.0.dev0"
@@ -463,6 +463,18 @@ class BulkApiDmlOperation(BaseDmlOperation, BulkJobMixin):
463
463
  records, records_copy = tee(records)
464
464
  # Count total number of records to fetch using the copy
465
465
  total_num_records = sum(1 for _ in records_copy)
466
+
467
+ # In the case that records are zero, return success
468
+ if total_num_records == 0:
469
+ self.logger.info(f"No records present for {self.sobject}")
470
+ self.job_result = DataOperationJobResult(
471
+ status=DataOperationStatus.SUCCESS,
472
+ job_errors=[],
473
+ records_processed=0,
474
+ total_row_errors=0,
475
+ )
476
+ return
477
+
466
478
  limit_clause = self._determine_limit_clause(total_num_records=total_num_records)
467
479
 
468
480
  # Generate and execute SOQL query
@@ -882,6 +894,17 @@ class RestApiDmlOperation(BaseDmlOperation):
882
894
  # Count total number of records to fetch using the copy
883
895
  total_num_records = sum(1 for _ in records_copy)
884
896
 
897
+ # In the case that records are zero, return success
898
+ self.logger.info(f"No records present for {self.sobject}")
899
+ if total_num_records == 0:
900
+ self.job_result = DataOperationJobResult(
901
+ status=DataOperationStatus.SUCCESS,
902
+ job_errors=[],
903
+ records_processed=0,
904
+ total_row_errors=0,
905
+ )
906
+ return
907
+
885
908
  # Set LIMIT condition
886
909
  limit_clause = self._determine_limit_clause(total_num_records)
887
910
 
@@ -591,6 +591,47 @@ class TestBulkApiDmlOperation:
591
591
  == 3
592
592
  )
593
593
 
594
+ @mock.patch("cumulusci.tasks.bulkdata.step.download_file")
595
+ def test_select_records_zero_load_records(self, download_mock):
596
+ # Set up mock context and BulkApiDmlOperation
597
+ context = mock.Mock()
598
+ step = BulkApiDmlOperation(
599
+ sobject="Contact",
600
+ operation=DataOperationType.QUERY,
601
+ api_options={"batch_size": 10, "update_key": "LastName"},
602
+ context=context,
603
+ fields=["LastName"],
604
+ selection_strategy=SelectStrategy.STANDARD,
605
+ content_type="JSON",
606
+ )
607
+
608
+ # Mock Bulk API responses
609
+ step.bulk.endpoint = "https://test"
610
+ step.bulk.create_query_job.return_value = "JOB"
611
+ step.bulk.query.return_value = "BATCH"
612
+ step.bulk.get_query_batch_result_ids.return_value = ["RESULT"]
613
+
614
+ # Mock the downloaded CSV content with a single record
615
+ download_mock.return_value = io.StringIO('[{"Id":"003000000000001"}]')
616
+
617
+ # Mock the _wait_for_job method to simulate a successful job
618
+ step._wait_for_job = mock.Mock()
619
+ step._wait_for_job.return_value = DataOperationJobResult(
620
+ DataOperationStatus.SUCCESS, [], 0, 0
621
+ )
622
+
623
+ # Prepare input records
624
+ records = iter([])
625
+
626
+ # Execute the select_records operation
627
+ step.start()
628
+ step.select_records(records)
629
+ step.end()
630
+
631
+ # Get the results and assert their properties
632
+ results = list(step.get_results())
633
+ assert len(results) == 0 # Expect 0 results (no records to process)
634
+
594
635
  @mock.patch("cumulusci.tasks.bulkdata.step.download_file")
595
636
  def test_select_records_standard_strategy_failure__no_records(self, download_mock):
596
637
  # Set up mock context and BulkApiDmlOperation
@@ -1927,6 +1968,45 @@ class TestRestApiDmlOperation:
1927
1968
  == 3
1928
1969
  )
1929
1970
 
1971
+ @responses.activate
1972
+ def test_select_records_zero_load_records(self):
1973
+ mock_describe_calls()
1974
+ task = _make_task(
1975
+ LoadData,
1976
+ {
1977
+ "options": {
1978
+ "database_url": "sqlite:///test.db",
1979
+ "mapping": "mapping.yml",
1980
+ }
1981
+ },
1982
+ )
1983
+ task.project_config.project__package__api_version = CURRENT_SF_API_VERSION
1984
+ task._init_task()
1985
+
1986
+ step = RestApiDmlOperation(
1987
+ sobject="Contact",
1988
+ operation=DataOperationType.UPSERT,
1989
+ api_options={"batch_size": 10, "update_key": "LastName"},
1990
+ context=task,
1991
+ fields=["LastName"],
1992
+ selection_strategy=SelectStrategy.STANDARD,
1993
+ )
1994
+
1995
+ results = {
1996
+ "records": [],
1997
+ "done": True,
1998
+ }
1999
+ step.sf.restful = mock.Mock()
2000
+ step.sf.restful.return_value = results
2001
+ records = iter([])
2002
+ step.start()
2003
+ step.select_records(records)
2004
+ step.end()
2005
+
2006
+ # Get the results and assert their properties
2007
+ results = list(step.get_results())
2008
+ assert len(results) == 0 # Expect 0 results (matching the input records count)
2009
+
1930
2010
  @responses.activate
1931
2011
  def test_select_records_standard_strategy_success_pagination(self):
1932
2012
  mock_describe_calls()
@@ -45,15 +45,19 @@ def process_common_components(response_messages: List, components: Dict):
45
45
  """Compare compoents in the api responce object with list of components and return common common components"""
46
46
  if not response_messages or not components:
47
47
  return components
48
-
49
48
  for message in response_messages:
49
+
50
50
  message_list = message.firstChild.nextSibling.firstChild.nodeValue.split("'")
51
51
  if len(message_list) > 1:
52
52
  component_type = message_list[1]
53
53
  message_txt = message_list[2]
54
-
55
54
  if "is not available in this organization" in message_txt:
56
55
  del components[component_type]
56
+ elif "is unknown" in message_txt:
57
+ component_type = message_list[0].split(" ")
58
+ components[component_type[0]].remove(message_list[1])
59
+ if len(components[component_type]) == 0:
60
+ del components[component_type]
57
61
  else:
58
62
  component_name = message_list[3]
59
63
  if component_name in components[component_type]:
@@ -17,9 +17,9 @@ class CheckSObjectsAvailable(BaseSalesforceApiTask):
17
17
  action: error
18
18
  message: "Enhanced Notes are not turned on."
19
19
  """
20
- api_version = "48.0"
21
20
 
22
21
  def _run_task(self):
22
+
23
23
  self.return_values = {entry["name"] for entry in self.sf.describe()["sobjects"]}
24
24
 
25
25
  self.logger.info(
@@ -3,6 +3,7 @@ import os
3
3
  import shutil
4
4
  import tempfile
5
5
  from collections import defaultdict
6
+ from itertools import chain
6
7
  from xml.etree.ElementTree import ParseError
7
8
 
8
9
  from defusedxml.minidom import parseString
@@ -47,6 +48,35 @@ class CheckComponents(BaseSalesforceTask):
47
48
  paths = self.options.get("paths")
48
49
  plan_or_flow_name = self.options.get("name")
49
50
 
51
+ (
52
+ components,
53
+ api_retrieve_unpackaged_response,
54
+ ) = self.get_repo_existing_components(plan_or_flow_name, paths)
55
+
56
+ if not components:
57
+ self.logger.info("No components found in deploy path")
58
+ raise TaskOptionsError("No plan or paths options provided")
59
+
60
+ self.logger.debug("Components detected at source")
61
+ for component_type, component_names in components.items():
62
+ self.logger.debug(f"{component_type}: {', '.join(component_names)}")
63
+ # check common components
64
+ components.pop("Settings", None)
65
+ existing_components = process_common_components(
66
+ api_retrieve_unpackaged_response, components
67
+ )
68
+
69
+ if existing_components:
70
+ self.logger.info("Components exists in the target org:")
71
+ for component_type, component_names in existing_components.items():
72
+ self.logger.info(f"{component_type}: {', '.join(component_names)}")
73
+ self.return_values["existing_components"] = existing_components
74
+ else:
75
+ self.logger.info(
76
+ "No components from the deploy paths exist in the target org."
77
+ )
78
+
79
+ def get_repo_existing_components(self, plan_or_flow_name, paths=""):
50
80
  if paths:
51
81
  paths = process_list_arg(paths)
52
82
  self.logger.info(f"Using provided paths: {paths}")
@@ -71,16 +101,37 @@ class CheckComponents(BaseSalesforceTask):
71
101
  self.logger.debug(
72
102
  f"deploy paths found in the plan or flow.{self.deploy_paths}"
73
103
  )
74
-
75
104
  # Temp dir to copy all deploy paths from task options
76
105
  temp_dir = tempfile.mkdtemp()
77
106
  self.logger.info(f"Temporary deploy directory created: {temp_dir}")
78
-
107
+ mdapi_components = {}
108
+ mdapi_response_messages = []
79
109
  for path in self.deploy_paths:
80
110
  full_path = os.path.join(self.project_config.repo_root, path)
81
111
  if not os.path.exists(full_path):
82
112
  self.logger.info(f"Skipping path: '{path}' - path doesn't exist")
83
113
  continue
114
+ elif "package.xml" in os.listdir(full_path):
115
+ package_xml_path = os.path.join(full_path, "package.xml")
116
+ source_xml_tree = metadata_tree.parse(package_xml_path)
117
+ components = metadata_tree.parse_package_xml_types(
118
+ "name", source_xml_tree
119
+ )
120
+ response_messages = self._get_api_object_responce(
121
+ package_xml_path, source_xml_tree.version.text
122
+ )
123
+ merged = {}
124
+ for key in set(components).union(mdapi_components):
125
+ merged[key] = list(
126
+ set(
127
+ chain(
128
+ components.get(key, []), mdapi_components.get(key, [])
129
+ )
130
+ )
131
+ )
132
+ mdapi_components = merged
133
+ mdapi_response_messages.extend(response_messages)
134
+ continue
84
135
  self._copy_to_tempdir(path, temp_dir)
85
136
 
86
137
  (
@@ -90,28 +141,22 @@ class CheckComponents(BaseSalesforceTask):
90
141
 
91
142
  # remove temp dir
92
143
  shutil.rmtree(temp_dir)
144
+ merged = {}
145
+ if components:
146
+ for key in set(components).union(mdapi_components):
147
+ merged[key] = list(
148
+ set(chain(components.get(key, []), mdapi_components.get(key, [])))
149
+ )
150
+ components = merged
151
+ else:
152
+ components = mdapi_components
93
153
 
94
- if not components:
95
- self.logger.info(f"No components found in deploy path{path}")
96
- raise TaskOptionsError("No plan or paths options provided")
97
-
98
- self.logger.debug("Components detected at source")
99
- for component_type, component_names in components.items():
100
- self.logger.debug(f"{component_type}: {', '.join(component_names)}")
101
- # check common components
102
- existing_components = process_common_components(
103
- api_retrieve_unpackaged_response, components
104
- )
105
-
106
- if existing_components:
107
- self.logger.info("Components exists in the target org:")
108
- for component_type, component_names in existing_components.items():
109
- self.logger.info(f"{component_type}: {', '.join(component_names)}")
110
- self.return_values["existing_components"] = existing_components
154
+ if api_retrieve_unpackaged_response:
155
+ api_retrieve_unpackaged_response.extend(mdapi_response_messages)
111
156
  else:
112
- self.logger.info(
113
- "No components from the deploy paths exist in the target org."
114
- )
157
+ api_retrieve_unpackaged_response = mdapi_response_messages
158
+
159
+ return [components, api_retrieve_unpackaged_response]
115
160
 
116
161
  def _copy_to_tempdir(self, src_dir, temp_dir):
117
162
  for item in os.listdir(src_dir):
@@ -1,4 +1,4 @@
1
- from unittest.mock import ANY, MagicMock, mock_open, patch
1
+ from unittest.mock import ANY, MagicMock, Mock, mock_open, patch
2
2
 
3
3
  import pytest
4
4
 
@@ -11,6 +11,210 @@ from .util import create_task
11
11
 
12
12
 
13
13
  class TestCheckComponents:
14
+ @patch("os.path.exists", return_value=True)
15
+ @patch("os.remove")
16
+ @patch("os.path.isdir", return_value=True)
17
+ @patch("os.listdir", return_value=["package.xml"])
18
+ @patch("os.path.join", side_effect=lambda *args: "/".join(args))
19
+ @patch("cumulusci.core.sfdx.convert_sfdx_source")
20
+ @patch(
21
+ "cumulusci.tasks.salesforce.check_components.CheckComponents._is_plan",
22
+ return_value=False,
23
+ )
24
+ @patch(
25
+ "cumulusci.tasks.salesforce.check_components.CheckComponents._freeze_steps",
26
+ return_value=[],
27
+ )
28
+ @patch(
29
+ "cumulusci.tasks.salesforce.check_components.CheckComponents._collect_components_from_paths",
30
+ return_value=[{"Type1": ["Comp1"]}, []],
31
+ )
32
+ @patch(
33
+ "cumulusci.tasks.salesforce.check_components.CheckComponents._get_api_object_responce",
34
+ return_value=[],
35
+ )
36
+ @patch(
37
+ "builtins.open",
38
+ new_callable=mock_open,
39
+ read_data="""
40
+ <Package xmlns="http://soap.sforce.com/2006/04/metadata">
41
+ <types>
42
+ <members>Delivery</members>
43
+ <name>ApexClass</name>
44
+ </types>
45
+ <types>
46
+ <members>Delivery__c</members>
47
+ <name>CustomObject</name>
48
+ </types>
49
+ <version>58.0</version>
50
+ </Package>
51
+ """,
52
+ )
53
+ @patch("cumulusci.utils.xml.metadata_tree.parse")
54
+ @patch(
55
+ "cumulusci.utils.xml.metadata_tree.parse_package_xml_types",
56
+ return_value={"Type2": ["Comp2"]},
57
+ )
58
+ def test_get_repo_existing_components(
59
+ self,
60
+ mock_metadata_parse,
61
+ mock_open_file,
62
+ mock_convert_sfdx_source,
63
+ mock_path_join,
64
+ mock_listdir,
65
+ mock_isdir,
66
+ mock_remove,
67
+ mock_path_exists,
68
+ mock_is_plan,
69
+ mock_freeze_steps,
70
+ mock_get_api_object,
71
+ mock_parse,
72
+ mock_collect_components,
73
+ ):
74
+ org_config = Mock(scratch=True, config={})
75
+ org_config.username = "test_user"
76
+ org_config.org_id = "test_org_id"
77
+ self.org_config = Mock(return_value=("test", org_config))
78
+ project_config = create_project_config()
79
+ flow_config = {
80
+ "test": {
81
+ "steps": {
82
+ 1: {
83
+ "flow": "test2",
84
+ }
85
+ }
86
+ },
87
+ "test2": {
88
+ "steps": {
89
+ 1: {
90
+ "task": "deploy",
91
+ "options": {"path": "force-app/main/default"},
92
+ }
93
+ }
94
+ },
95
+ }
96
+ plan_config = {
97
+ "title": "Test Install",
98
+ "slug": "install",
99
+ "tier": "primary",
100
+ "steps": {1: {"flow": "test"}},
101
+ }
102
+ project_config.config["plans"] = {
103
+ "Test Install": plan_config,
104
+ }
105
+ project_config.config["flows"] = flow_config
106
+
107
+ task = create_task(CheckComponents, {"name": "test2"})
108
+ task.deploy_paths = ["test"]
109
+
110
+ (components, response_messages) = task.get_repo_existing_components("test2")
111
+ assert "Type1" in components
112
+ assert "Type2" in components
113
+ assert "Comp1" in components["Type1"]
114
+ assert "Comp2" in components["Type2"]
115
+
116
+ @patch("os.path.exists", return_value=True)
117
+ @patch("os.remove")
118
+ @patch("os.path.isdir", return_value=True)
119
+ @patch("os.listdir", return_value=["package.xml"])
120
+ @patch("os.path.join", side_effect=lambda *args: "/".join(args))
121
+ @patch("cumulusci.core.sfdx.convert_sfdx_source")
122
+ @patch(
123
+ "cumulusci.tasks.salesforce.check_components.CheckComponents._is_plan",
124
+ return_value=False,
125
+ )
126
+ @patch(
127
+ "cumulusci.tasks.salesforce.check_components.CheckComponents._freeze_steps",
128
+ return_value=[],
129
+ )
130
+ @patch(
131
+ "cumulusci.tasks.salesforce.check_components.CheckComponents._collect_components_from_paths",
132
+ return_value=[{"Type1": ["Comp1"]}, []],
133
+ )
134
+ @patch(
135
+ "cumulusci.tasks.salesforce.check_components.CheckComponents._get_api_object_responce",
136
+ return_value=[],
137
+ )
138
+ @patch(
139
+ "builtins.open",
140
+ new_callable=mock_open,
141
+ read_data="""
142
+ <Package xmlns="http://soap.sforce.com/2006/04/metadata">
143
+ <types>
144
+ <members>Delivery</members>
145
+ <name>ApexClass</name>
146
+ </types>
147
+ <types>
148
+ <members>Delivery__c</members>
149
+ <name>CustomObject</name>
150
+ </types>
151
+ <version>58.0</version>
152
+ </Package>
153
+ """,
154
+ )
155
+ @patch("cumulusci.utils.xml.metadata_tree.parse")
156
+ @patch(
157
+ "cumulusci.utils.xml.metadata_tree.parse_package_xml_types",
158
+ return_value={"Type2": ["Comp2"]},
159
+ )
160
+ def test_get_repo_existing_components_paths_paramter(
161
+ self,
162
+ mock_metadata_parse,
163
+ mock_open_file,
164
+ mock_convert_sfdx_source,
165
+ mock_path_join,
166
+ mock_listdir,
167
+ mock_isdir,
168
+ mock_remove,
169
+ mock_path_exists,
170
+ mock_is_plan,
171
+ mock_freeze_steps,
172
+ mock_get_api_object,
173
+ mock_parse,
174
+ mock_collect_components,
175
+ ):
176
+ org_config = Mock(scratch=True, config={})
177
+ org_config.username = "test_user"
178
+ org_config.org_id = "test_org_id"
179
+ self.org_config = Mock(return_value=("test", org_config))
180
+ project_config = create_project_config()
181
+ flow_config = {
182
+ "test": {
183
+ "steps": {
184
+ 1: {
185
+ "flow": "test2",
186
+ }
187
+ }
188
+ },
189
+ "test2": {
190
+ "steps": {
191
+ 1: {
192
+ "task": "deploy",
193
+ "options": {"path": "force-app/main/default"},
194
+ }
195
+ }
196
+ },
197
+ }
198
+ plan_config = {
199
+ "title": "Test Install",
200
+ "slug": "install",
201
+ "tier": "primary",
202
+ "steps": {1: {"flow": "test"}},
203
+ }
204
+ project_config.config["plans"] = {
205
+ "Test Install": plan_config,
206
+ }
207
+ project_config.config["flows"] = flow_config
208
+
209
+ task = create_task(CheckComponents, {"name": "test2"})
210
+ task.deploy_paths = ["test"]
211
+
212
+ (components, response_messages) = task.get_repo_existing_components("", "src")
213
+ assert "Type1" in components
214
+ assert "Type2" in components
215
+ assert "Comp1" in components["Type1"]
216
+ assert "Comp2" in components["Type2"]
217
+
14
218
  @patch("os.path.exists", return_value=True)
15
219
  @patch("os.remove")
16
220
  @patch("os.path.isdir", return_value=True)