cumulusci 3.68.0__tar.gz → 3.68.0.dev2__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 (646) hide show
  1. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/HISTORY.rst +0 -23
  2. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/PKG-INFO +1 -24
  3. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/base_config.py +9 -24
  4. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/project_config.py +48 -82
  5. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/github.py +1 -1
  6. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/keychain/encrypted_file_project_keychain.py +18 -31
  7. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/keychain/tests/test_encrypted_file_project_keychain.py +4 -12
  8. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/libdoc.py +2 -9
  9. cumulusci-3.68.0.dev2/cumulusci/version.txt +1 -0
  10. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci.egg-info/PKG-INFO +1 -24
  11. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci.egg-info/SOURCES.txt +0 -1
  12. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci.egg-info/requires.txt +11 -8
  13. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/requirements/dev.txt +61 -14
  14. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/requirements/prod.txt +20 -9
  15. cumulusci-3.68.0/cumulusci/utils/pickle.py +0 -44
  16. cumulusci-3.68.0/cumulusci/version.txt +0 -1
  17. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/AUTHORS.rst +0 -0
  18. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/CONTRIBUTING.rst +0 -0
  19. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/LICENSE +0 -0
  20. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/MANIFEST.in +0 -0
  21. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/README.rst +0 -0
  22. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/__init__.py +0 -0
  23. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/__main__.py +0 -0
  24. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/__init__.py +0 -0
  25. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/cci.py +0 -0
  26. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/error.py +0 -0
  27. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/flow.py +0 -0
  28. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/logger.py +0 -0
  29. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/org.py +0 -0
  30. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/plan.py +0 -0
  31. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/project.py +0 -0
  32. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/robot.py +0 -0
  33. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/runtime.py +0 -0
  34. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/service.py +0 -0
  35. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/task.py +0 -0
  36. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/__init__.py +0 -0
  37. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/test_cci.py +0 -0
  38. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/test_error.py +0 -0
  39. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/test_flow.py +0 -0
  40. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/test_logger.py +0 -0
  41. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/test_org.py +0 -0
  42. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/test_plan.py +0 -0
  43. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/test_project.py +0 -0
  44. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/test_robot.py +0 -0
  45. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/test_runtime.py +0 -0
  46. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/test_service.py +0 -0
  47. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/test_task.py +0 -0
  48. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/test_ui.py +0 -0
  49. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/test_utils.py +0 -0
  50. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/tests/utils.py +0 -0
  51. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/ui.py +0 -0
  52. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cli/utils.py +0 -0
  53. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/conftest.py +0 -0
  54. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/__init__.py +0 -0
  55. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/BaseConfig.py +0 -0
  56. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/BaseTaskFlowConfig.py +0 -0
  57. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/OrgConfig.py +0 -0
  58. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/ScratchOrgConfig.py +0 -0
  59. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/__init__.py +0 -0
  60. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/base_task_flow_config.py +0 -0
  61. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/marketing_cloud_service_config.py +0 -0
  62. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/oauth2_service_config.py +0 -0
  63. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/org_config.py +0 -0
  64. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/scratch_org_config.py +0 -0
  65. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/sfdx_org_config.py +0 -0
  66. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/tests/_test_config_backwards_compatibility.py +0 -0
  67. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/tests/test_config.py +0 -0
  68. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/tests/test_config_expensive.py +0 -0
  69. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/tests/test_config_util.py +0 -0
  70. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/universal_config.py +0 -0
  71. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/config/util.py +0 -0
  72. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/datasets.py +0 -0
  73. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/debug.py +0 -0
  74. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/dependencies/__init__.py +0 -0
  75. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/dependencies/dependencies.py +0 -0
  76. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/dependencies/github.py +0 -0
  77. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/dependencies/resolvers.py +0 -0
  78. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/dependencies/tests/__init__.py +0 -0
  79. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/dependencies/tests/conftest.py +0 -0
  80. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/dependencies/tests/test_dependencies.py +0 -0
  81. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/dependencies/tests/test_github.py +0 -0
  82. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/dependencies/tests/test_resolvers.py +0 -0
  83. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/dependencies/utils.py +0 -0
  84. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/exceptions.py +0 -0
  85. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/flowrunner.py +0 -0
  86. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/keychain/__init__.py +0 -0
  87. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/keychain/base_project_keychain.py +0 -0
  88. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/keychain/environment_project_keychain.py +0 -0
  89. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/keychain/subprocess_keychain.py +0 -0
  90. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/keychain/tests/conftest.py +0 -0
  91. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/keychain/tests/test_base_project_keychain.py +0 -0
  92. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/metadeploy/__init__.py +0 -0
  93. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/metadeploy/api.py +0 -0
  94. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/metadeploy/plans.py +0 -0
  95. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/metadeploy/tests/test_api.py +0 -0
  96. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/runtime.py +0 -0
  97. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/sfdx.py +0 -0
  98. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/source/__init__.py +0 -0
  99. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/source/github.py +0 -0
  100. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/source/local_folder.py +0 -0
  101. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/source_transforms/__init__.py +0 -0
  102. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/source_transforms/tests/test_transforms.py +0 -0
  103. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/source_transforms/transforms.py +0 -0
  104. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/tasks.py +0 -0
  105. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/template_utils.py +0 -0
  106. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/tests/__init__.py +0 -0
  107. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/tests/test_datasets_e2e.py +0 -0
  108. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/tests/test_exceptions.py +0 -0
  109. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/tests/test_flowrunner.py +0 -0
  110. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/tests/test_github.py +0 -0
  111. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/tests/test_sfdx.py +0 -0
  112. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/tests/test_source.py +0 -0
  113. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/tests/test_tasks.py +0 -0
  114. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/tests/test_utils.py +0 -0
  115. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/tests/test_utils_merge_config.py +0 -0
  116. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/tests/test_versions.py +0 -0
  117. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/tests/utils.py +0 -0
  118. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/utils.py +0 -0
  119. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/core/versions.py +0 -0
  120. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/cumulusci.yml +0 -0
  121. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/files/admin_profile.xml +0 -0
  122. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/files/delete_excludes.txt +0 -0
  123. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/files/templates/project/README.md +0 -0
  124. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/files/templates/project/cumulusci.yml +0 -0
  125. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/files/templates/project/dot-gitignore +0 -0
  126. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/files/templates/project/mapping.yml +0 -0
  127. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/files/templates/project/scratch_def.json +0 -0
  128. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/oauth/__init__.py +0 -0
  129. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/oauth/client.py +0 -0
  130. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/oauth/exceptions.py +0 -0
  131. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/oauth/salesforce.py +0 -0
  132. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/oauth/tests/__init__.py +0 -0
  133. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/oauth/tests/test_client.py +0 -0
  134. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/oauth/tests/test_salesforce.py +0 -0
  135. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/CumulusCI.py +0 -0
  136. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/CumulusCI.robot +0 -0
  137. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/Performance.py +0 -0
  138. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/Salesforce.py +0 -0
  139. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/Salesforce.robot +0 -0
  140. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/SalesforceAPI.py +0 -0
  141. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/SalesforcePlaywright.py +0 -0
  142. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/SalesforcePlaywright.robot +0 -0
  143. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/__init__.py +0 -0
  144. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/base_library.py +0 -0
  145. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/faker_mixin.py +0 -0
  146. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/form_handlers.py +0 -0
  147. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/javascript/cci_init.js +0 -0
  148. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/javascript/cumulusci.js +0 -0
  149. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/locator_manager.py +0 -0
  150. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/locators_54.py +0 -0
  151. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/locators_55.py +0 -0
  152. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/locators_56.py +0 -0
  153. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/pageobjects/BasePageObjects.py +0 -0
  154. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/pageobjects/ObjectManagerPageObject.py +0 -0
  155. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/pageobjects/PageObjectLibrary.py +0 -0
  156. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/pageobjects/PageObjects.py +0 -0
  157. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/pageobjects/__init__.py +0 -0
  158. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/pageobjects/baseobjects.py +0 -0
  159. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/perftests/short/collection_perf.robot +0 -0
  160. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/CustomObjectTestPage.py +0 -0
  161. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/FooTestPage.py +0 -0
  162. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/cumulusci/base.robot +0 -0
  163. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/cumulusci/bulkdata.robot +0 -0
  164. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/cumulusci/communities.robot +0 -0
  165. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/cumulusci/datagen.robot +0 -0
  166. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/TestLibraryA.py +0 -0
  167. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/TestLibraryB.py +0 -0
  168. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/TestListener.py +0 -0
  169. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/api.robot +0 -0
  170. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/browsers.robot +0 -0
  171. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/classic.robot +0 -0
  172. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/create_contact.robot +0 -0
  173. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/faker.robot +0 -0
  174. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/forms.robot +0 -0
  175. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/label_locator.robot +0 -0
  176. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/labels.html +0 -0
  177. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/locators.robot +0 -0
  178. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/pageobjects/base_pageobjects.robot +0 -0
  179. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/pageobjects/example_page_object.py +0 -0
  180. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/pageobjects/listing_page.robot +0 -0
  181. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/pageobjects/objectmanager.robot +0 -0
  182. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/pageobjects/pageobjects.robot +0 -0
  183. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/performance.robot +0 -0
  184. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/playwright/javascript_keywords.robot +0 -0
  185. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/playwright/open_test_browser.robot +0 -0
  186. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/playwright/playwright.robot +0 -0
  187. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/playwright/ui.robot +0 -0
  188. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/populate.robot +0 -0
  189. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/test_testlistener.py +0 -0
  190. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/salesforce/ui.robot +0 -0
  191. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/test_cumulusci_library.py +0 -0
  192. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/test_locator_manager.py +0 -0
  193. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/test_pageobjects.py +0 -0
  194. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/test_performance.py +0 -0
  195. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/test_salesforce.py +0 -0
  196. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/test_salesforce_locators.py +0 -0
  197. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/test_template_util.py +0 -0
  198. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/tests/test_utils.py +0 -0
  199. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/robotframework/utils.py +0 -0
  200. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/__init__.py +0 -0
  201. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/exceptions.py +0 -0
  202. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/filterable_objects.py +0 -0
  203. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/mc_soap_envelopes.py +0 -0
  204. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/metadata.py +0 -0
  205. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/org_schema.py +0 -0
  206. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/org_schema_models.py +0 -0
  207. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/package_install.py +0 -0
  208. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/package_zip.py +0 -0
  209. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/soap_envelopes.py +0 -0
  210. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/tests/__init__.py +0 -0
  211. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/tests/metadata_test_strings.py +0 -0
  212. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/tests/test_metadata.py +0 -0
  213. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/tests/test_package_install.py +0 -0
  214. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/tests/test_package_zip.py +0 -0
  215. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/tests/test_utils.py +0 -0
  216. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/salesforce_api/utils.py +0 -0
  217. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/schema/cumulusci.jsonschema.json +0 -0
  218. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/__init__.py +0 -0
  219. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/apex/__init__.py +0 -0
  220. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/apex/anon.py +0 -0
  221. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/apex/batch.py +0 -0
  222. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/apex/testrunner.py +0 -0
  223. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/apex/tests/test_apex_tasks.py +0 -0
  224. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/__init__.py +0 -0
  225. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/base_generate_data_task.py +0 -0
  226. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/dates.py +0 -0
  227. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/delete.py +0 -0
  228. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/extract.py +0 -0
  229. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/extract_dataset_utils/calculate_dependencies.py +0 -0
  230. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/extract_dataset_utils/extract_yml.py +0 -0
  231. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/extract_dataset_utils/hardcoded_default_declarations.py +0 -0
  232. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/extract_dataset_utils/synthesize_extract_declarations.py +0 -0
  233. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/extract_dataset_utils/tests/test_extract_yml.py +0 -0
  234. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/extract_dataset_utils/tests/test_synthesize_extract_declarations.py +0 -0
  235. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/factory_utils.py +0 -0
  236. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate.py +0 -0
  237. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate_and_load_data.py +0 -0
  238. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate_and_load_data_from_yaml.py +0 -0
  239. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate_from_yaml.py +0 -0
  240. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate_mapping.py +0 -0
  241. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate_mapping_utils/dependency_map.py +0 -0
  242. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate_mapping_utils/extract_mapping_file_generator.py +0 -0
  243. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate_mapping_utils/generate_mapping_from_declarations.py +0 -0
  244. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate_mapping_utils/load_mapping_file_generator.py +0 -0
  245. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate_mapping_utils/mapping_generator_post_processes.py +0 -0
  246. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate_mapping_utils/mapping_transforms.py +0 -0
  247. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_generate_extract_mapping_from_declarations.py +0 -0
  248. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_generate_load_mapping_from_declarations.py +0 -0
  249. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_mapping_generator_post_processes.py +0 -0
  250. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_mapping_transforms.py +0 -0
  251. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/load.py +0 -0
  252. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/mapping_parser.py +0 -0
  253. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/query_transformers.py +0 -0
  254. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/snowfakery.py +0 -0
  255. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/snowfakery_utils/queue_manager.py +0 -0
  256. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/snowfakery_utils/snowfakery_run_until.py +0 -0
  257. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/snowfakery_utils/snowfakery_working_directory.py +0 -0
  258. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/snowfakery_utils/subtask_configurator.py +0 -0
  259. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/step.py +0 -0
  260. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/__init__.py +0 -0
  261. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/dummy_data_factory.py +0 -0
  262. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/integration_test_utils.py +0 -0
  263. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/mapping-oid.yml +0 -0
  264. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/mapping_after.yml +0 -0
  265. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/mapping_simple.yml +0 -0
  266. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/mapping_v1.yml +0 -0
  267. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/mapping_v2.yml +0 -0
  268. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/mapping_v3.yml +0 -0
  269. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/mapping_vanilla_sf.yml +0 -0
  270. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/mock_data_factory_without_mapping.py +0 -0
  271. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/person_accounts.yml +0 -0
  272. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/person_accounts_minimal.yml +0 -0
  273. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/recordtypes.yml +0 -0
  274. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/child/child2.yml +0 -0
  275. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/child.yml +0 -0
  276. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/gen_npsp_standard_objects.recipe.yml +0 -0
  277. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/include_parent.yml +0 -0
  278. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/npsp_standard_objects_macros.yml +0 -0
  279. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/options.recipe.yml +0 -0
  280. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/query_snowfakery.recipe.yml +0 -0
  281. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/sf_standard_object_macros.yml +0 -0
  282. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery.load.yml +0 -0
  283. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery.recipe.yml +0 -0
  284. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_2.load.yml +0 -0
  285. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels.load.yml +0 -0
  286. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels.recipe.yml +0 -0
  287. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels_2.load.yml +0 -0
  288. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/unique_values.recipe.yml +0 -0
  289. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/upsert.recipe.yml +0 -0
  290. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/upsert_2.recipe.yml +0 -0
  291. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/snowfakery/upsert_before.yml +0 -0
  292. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_base_generate_data_tasks.py +0 -0
  293. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_dates.py +0 -0
  294. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_delete.py +0 -0
  295. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_extract.py +0 -0
  296. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_factory_utils.py +0 -0
  297. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_generate_and_load.py +0 -0
  298. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_generate_from_snowfakery_task.py +0 -0
  299. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_generatemapping.py +0 -0
  300. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_load.py +0 -0
  301. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_mapping_parser.py +0 -0
  302. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_query_db__joins_self_lookups.yml +0 -0
  303. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_snowfakery.py +0 -0
  304. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_step.py +0 -0
  305. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_updates.py +0 -0
  306. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_upsert.py +0 -0
  307. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/test_utils.py +0 -0
  308. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/update_describe.py +0 -0
  309. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/update_person_accounts.yml +0 -0
  310. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/tests/utils.py +0 -0
  311. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/update_data.py +0 -0
  312. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/upsert_utils.py +0 -0
  313. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/bulkdata/utils.py +0 -0
  314. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/command.py +0 -0
  315. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/connectedapp.py +0 -0
  316. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/create_package_version.py +0 -0
  317. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/datadictionary.py +0 -0
  318. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/dx_convert_from.py +0 -0
  319. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/__init__.py +0 -0
  320. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/base.py +0 -0
  321. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/commit_status.py +0 -0
  322. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/merge.py +0 -0
  323. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/publish.py +0 -0
  324. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/pull_request.py +0 -0
  325. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/release.py +0 -0
  326. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/release_report.py +0 -0
  327. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/tag.py +0 -0
  328. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/tests/__init__.py +0 -0
  329. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/tests/test_commit_status.py +0 -0
  330. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/tests/test_merge.py +0 -0
  331. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/tests/test_publish.py +0 -0
  332. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/tests/test_pull_request.py +0 -0
  333. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/tests/test_release.py +0 -0
  334. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/tests/test_release_report.py +0 -0
  335. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/tests/test_tag.py +0 -0
  336. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/tests/test_util.py +0 -0
  337. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/tests/util_github_api.py +0 -0
  338. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/github/util.py +0 -0
  339. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/marketing_cloud/__init__.py +0 -0
  340. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/marketing_cloud/api.py +0 -0
  341. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/marketing_cloud/base.py +0 -0
  342. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/marketing_cloud/deploy.py +0 -0
  343. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/marketing_cloud/get_user_info.py +0 -0
  344. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/marketing_cloud/mc_constants.py +0 -0
  345. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/marketing_cloud/tests/__init__.py +0 -0
  346. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/marketing_cloud/tests/conftest.py +0 -0
  347. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/marketing_cloud/tests/expected-payload.json +0 -0
  348. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/marketing_cloud/tests/test_api.py +0 -0
  349. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/marketing_cloud/tests/test_api_soap_envelopes.py +0 -0
  350. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/marketing_cloud/tests/test_base.py +0 -0
  351. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/marketing_cloud/tests/test_deploy.py +0 -0
  352. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/marketing_cloud/tests/test_get_user_info.py +0 -0
  353. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/__init__.py +0 -0
  354. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/ee_src.py +0 -0
  355. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/managed_src.py +0 -0
  356. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/metadata_map.yml +0 -0
  357. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/modify.py +0 -0
  358. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/package.py +0 -0
  359. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/tests/__init__.py +0 -0
  360. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/destructiveChanges.xml +0 -0
  361. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/package.xml +0 -0
  362. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/reports/namespace__TestFolder/TestReport.report +0 -0
  363. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/tests/sample_package.xml +0 -0
  364. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/tests/test_ee_src.py +0 -0
  365. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/tests/test_managed_src.py +0 -0
  366. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/tests/test_modify.py +0 -0
  367. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata/tests/test_package.py +0 -0
  368. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/__init__.py +0 -0
  369. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/base.py +0 -0
  370. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/duplicate_rules.py +0 -0
  371. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/field_sets.py +0 -0
  372. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/help_text.py +0 -0
  373. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/layouts.py +0 -0
  374. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/objects.py +0 -0
  375. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/permissions.py +0 -0
  376. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/picklists.py +0 -0
  377. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/remote_site_settings.py +0 -0
  378. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/sharing.py +0 -0
  379. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/tests/test_base.py +0 -0
  380. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/tests/test_duplicate_rules.py +0 -0
  381. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/tests/test_field_sets.py +0 -0
  382. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/tests/test_help_text.py +0 -0
  383. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/tests/test_ip_ranges.py +0 -0
  384. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/tests/test_layouts.py +0 -0
  385. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/tests/test_objects.py +0 -0
  386. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/tests/test_permissions.py +0 -0
  387. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/tests/test_picklists.py +0 -0
  388. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/tests/test_remote_site_settings.py +0 -0
  389. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/tests/test_sharing.py +0 -0
  390. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/tests/test_value_sets.py +0 -0
  391. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadata_etl/value_sets.py +0 -0
  392. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metadeploy.py +0 -0
  393. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/metaxml.py +0 -0
  394. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/preflight/__init__.py +0 -0
  395. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/preflight/licenses.py +0 -0
  396. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/preflight/packages.py +0 -0
  397. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/preflight/permsets.py +0 -0
  398. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/preflight/recordtypes.py +0 -0
  399. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/preflight/settings.py +0 -0
  400. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/preflight/sobjects.py +0 -0
  401. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/preflight/tests/test_licenses.py +0 -0
  402. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/preflight/tests/test_packages.py +0 -0
  403. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/preflight/tests/test_permset_preflights.py +0 -0
  404. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/preflight/tests/test_recordtypes.py +0 -0
  405. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/preflight/tests/test_settings.py +0 -0
  406. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/preflight/tests/test_sobjects.py +0 -0
  407. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/push/README.md +0 -0
  408. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/push/__init__.py +0 -0
  409. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/push/push_api.py +0 -0
  410. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/push/pushfails.py +0 -0
  411. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/push/tasks.py +0 -0
  412. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/push/tests/conftest.py +0 -0
  413. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/push/tests/test_push_api.py +0 -0
  414. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/push/tests/test_push_tasks.py +0 -0
  415. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/README.md +0 -0
  416. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/__init__.py +0 -0
  417. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/exceptions.py +0 -0
  418. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/generator.py +0 -0
  419. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/parser.py +0 -0
  420. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/provider.py +0 -0
  421. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/task.py +0 -0
  422. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/tests/__init__.py +0 -0
  423. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/tests/change_notes/full/example1.md +0 -0
  424. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/tests/change_notes/multi/1.txt +0 -0
  425. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/tests/change_notes/multi/2.txt +0 -0
  426. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/tests/change_notes/multi/3.txt +0 -0
  427. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/tests/change_notes/single/1.txt +0 -0
  428. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/tests/test_generator.py +0 -0
  429. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/tests/test_parser.py +0 -0
  430. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/tests/test_provider.py +0 -0
  431. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/tests/test_task.py +0 -0
  432. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/release_notes/tests/utils.py +0 -0
  433. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/__init__.py +0 -0
  434. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/debugger/DebugListener.py +0 -0
  435. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/debugger/__init__.py +0 -0
  436. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/debugger/model.py +0 -0
  437. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/debugger/ui.py +0 -0
  438. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/lint.py +0 -0
  439. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/lint_defaults.txt +0 -0
  440. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/robotframework.py +0 -0
  441. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/stylesheet.css +0 -0
  442. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/template.html +0 -0
  443. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/tests/TestLibrary.py +0 -0
  444. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/tests/TestPageObjects.py +0 -0
  445. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/tests/TestResource.robot +0 -0
  446. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/tests/failing_tests.robot +0 -0
  447. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/tests/performance.robot +0 -0
  448. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/tests/test_debugger.py +0 -0
  449. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/tests/test_robot_lint.py +0 -0
  450. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/tests/test_robot_parallel.py +0 -0
  451. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/robotframework/tests/test_robotframework.py +0 -0
  452. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/BaseRetrieveMetadata.py +0 -0
  453. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/BaseSalesforceApiTask.py +0 -0
  454. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/BaseSalesforceMetadataApiTask.py +0 -0
  455. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/BaseSalesforceTask.py +0 -0
  456. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/BaseUninstallMetadata.py +0 -0
  457. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/CreateCommunity.py +0 -0
  458. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/CreatePackage.py +0 -0
  459. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/Deploy.py +0 -0
  460. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/DeployBundles.py +0 -0
  461. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/EnsureRecordTypes.py +0 -0
  462. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/GetInstalledPackages.py +0 -0
  463. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/ListCommunities.py +0 -0
  464. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/ListCommunityTemplates.py +0 -0
  465. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/PublishCommunity.py +0 -0
  466. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/RetrievePackaged.py +0 -0
  467. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/RetrieveReportsAndDashboards.py +0 -0
  468. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/RetrieveUnpackaged.py +0 -0
  469. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/SOQLQuery.py +0 -0
  470. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/UninstallLocal.py +0 -0
  471. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/UninstallLocalBundles.py +0 -0
  472. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/UninstallLocalNamespacedBundles.py +0 -0
  473. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/UninstallPackage.py +0 -0
  474. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/UninstallPackaged.py +0 -0
  475. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/UpdateAdminProfile.py +0 -0
  476. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/__init__.py +0 -0
  477. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/activate_flow.py +0 -0
  478. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/composite.py +0 -0
  479. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/create_permission_sets.py +0 -0
  480. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/custom_settings.py +0 -0
  481. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/custom_settings_wait.py +0 -0
  482. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/enable_prediction.py +0 -0
  483. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/insert_record.py +0 -0
  484. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/install_package_version.py +0 -0
  485. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/license_preflights.py +0 -0
  486. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/network_member_group.py +0 -0
  487. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/org_settings.py +0 -0
  488. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/package_upload.py +0 -0
  489. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/profiles.py +0 -0
  490. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/promote_package_version.py +0 -0
  491. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/sourcetracking.py +0 -0
  492. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/__init__.py +0 -0
  493. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_CreateCommunity.py +0 -0
  494. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_CreatePackage.py +0 -0
  495. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_Deploy.py +0 -0
  496. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_DeployBundles.py +0 -0
  497. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_EnsureRecordTypes.py +0 -0
  498. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_ListCommunities.py +0 -0
  499. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_ListCommunityTemplates.py +0 -0
  500. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_PackageUpload.py +0 -0
  501. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_ProfileGrantAllAccess.py +0 -0
  502. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_PublishCommunity.py +0 -0
  503. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_RetrievePackaged.py +0 -0
  504. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_RetrieveReportsAndDashboards.py +0 -0
  505. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_RetrieveUnpackaged.py +0 -0
  506. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_SOQLQuery.py +0 -0
  507. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_UninstallLocal.py +0 -0
  508. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_UninstallLocalBundles.py +0 -0
  509. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_UninstallLocalNamespacedBundles.py +0 -0
  510. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_UninstallPackage.py +0 -0
  511. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_UninstallPackaged.py +0 -0
  512. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_UninstallPackagedIncremental.py +0 -0
  513. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_activate_flow.py +0 -0
  514. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_base_tasks.py +0 -0
  515. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_composite.py +0 -0
  516. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_create_permission_sets.py +0 -0
  517. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_custom_settings.py +0 -0
  518. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_custom_settings_wait.py +0 -0
  519. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_enable_prediction.py +0 -0
  520. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_insert_record.py +0 -0
  521. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_install_package_version.py +0 -0
  522. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_network_member_group.py +0 -0
  523. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_org_settings.py +0 -0
  524. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_profiles.py +0 -0
  525. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_sourcetracking.py +0 -0
  526. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_trigger_handlers.py +0 -0
  527. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/test_update_dependencies.py +0 -0
  528. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/tests/util.py +0 -0
  529. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/trigger_handlers.py +0 -0
  530. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/uninstall_packaged_incremental.py +0 -0
  531. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/update_dependencies.py +0 -0
  532. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/update_profile.py +0 -0
  533. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/users/permsets.py +0 -0
  534. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/users/photos.py +0 -0
  535. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/users/tests/photo.mock.txt +0 -0
  536. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/users/tests/test_permsets.py +0 -0
  537. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/salesforce/users/tests/test_photos.py +0 -0
  538. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/sfdx.py +0 -0
  539. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/tests/__init__.py +0 -0
  540. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/tests/conftest.py +0 -0
  541. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/tests/test_command.py +0 -0
  542. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/tests/test_connectedapp.py +0 -0
  543. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/tests/test_create_package_version.py +0 -0
  544. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/tests/test_datadictionary.py +0 -0
  545. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/tests/test_dx_convert_from.py +0 -0
  546. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/tests/test_metadeploy.py +0 -0
  547. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/tests/test_metaxml.py +0 -0
  548. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/tests/test_promote_package_version.py +0 -0
  549. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/tests/test_pushfails.py +0 -0
  550. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/tests/test_salesforce.py +0 -0
  551. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/tests/test_sfdx.py +0 -0
  552. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/tests/test_util.py +0 -0
  553. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/util.py +0 -0
  554. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/vlocity/exceptions.py +0 -0
  555. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/vlocity/tests/test_vlocity.py +0 -0
  556. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tasks/vlocity/vlocity.py +0 -0
  557. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tests/__init__.py +0 -0
  558. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tests/pytest_plugins/pytest_sf_orgconnect.py +0 -0
  559. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tests/pytest_plugins/pytest_sf_vcr.py +0 -0
  560. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tests/pytest_plugins/pytest_sf_vcr_serializer.py +0 -0
  561. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tests/pytest_plugins/pytest_typeguard.py +0 -0
  562. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tests/pytest_plugins/test_vcr_string_compressor.py +0 -0
  563. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tests/pytest_plugins/vcr_string_compressor.py +0 -0
  564. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tests/test_entry_points.py +0 -0
  565. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tests/test_integration_infrastructure.py +0 -0
  566. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tests/test_main.py +0 -0
  567. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tests/test_schema.py +0 -0
  568. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tests/test_utils.py +0 -0
  569. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tests/test_vcr_serializer.py +0 -0
  570. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/tests/util.py +0 -0
  571. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/__init__.py +0 -0
  572. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/classutils.py +0 -0
  573. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/collections.py +0 -0
  574. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/deprecation.py +0 -0
  575. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/fileutils.py +0 -0
  576. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/git.py +0 -0
  577. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/http/multi_request.py +0 -0
  578. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/http/requests_utils.py +0 -0
  579. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/http/tests/test_multi_request.py +0 -0
  580. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/iterators.py +0 -0
  581. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/logging.py +0 -0
  582. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/parallel/task_worker_queues/parallel_worker.py +0 -0
  583. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/parallel/task_worker_queues/parallel_worker_queue.py +0 -0
  584. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/parallel/task_worker_queues/tests/test_parallel_worker.py +0 -0
  585. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/salesforce/count_sobjects.py +0 -0
  586. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/salesforce/tests/test_count_sobjects.py +0 -0
  587. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/tests/test_fileutils.py +0 -0
  588. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/tests/test_git.py +0 -0
  589. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/tests/test_logging.py +0 -0
  590. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/tests/test_org_schema.py +0 -0
  591. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/tests/test_org_schema_models.py +0 -0
  592. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/tests/test_waiting.py +0 -0
  593. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/waiting.py +0 -0
  594. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/xml/__init__.py +0 -0
  595. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/xml/metadata_tree.py +0 -0
  596. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/xml/robot_xml.py +0 -0
  597. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/xml/salesforce_encoding.py +0 -0
  598. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/xml/test/test_metadata_tree.py +0 -0
  599. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/xml/test/test_salesforce_encoding.py +0 -0
  600. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/yaml/cumulusci_yml.py +0 -0
  601. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/yaml/model_parser.py +0 -0
  602. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/yaml/safer_loader.py +0 -0
  603. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/yaml/tests/bad_cci.yml +0 -0
  604. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/yaml/tests/test_cumulusci_yml.py +0 -0
  605. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/yaml/tests/test_model_parser.py +0 -0
  606. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/yaml/tests/test_safer_loader.py +0 -0
  607. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci/utils/ziputils.py +0 -0
  608. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci.egg-info/dependency_links.txt +0 -0
  609. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci.egg-info/entry_points.txt +0 -0
  610. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci.egg-info/not-zip-safe +0 -0
  611. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/cumulusci.egg-info/top_level.txt +0 -0
  612. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/Makefile +0 -0
  613. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/conf.py +0 -0
  614. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/diagram/img/image1.png +0 -0
  615. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/diagram/img/image12.png +0 -0
  616. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/diagram/img/image15.png +0 -0
  617. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/diagram/img/image17.png +0 -0
  618. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/diagram/img/image3.png +0 -0
  619. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/cci_service_list.png +0 -0
  620. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/cumulus_ci_workflow.png +0 -0
  621. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/env-var.png +0 -0
  622. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/env-var2.png +0 -0
  623. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/github-action-manual-trigger.png +0 -0
  624. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/github-commit_status_error.png +0 -0
  625. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/github-commit_status_pass.png +0 -0
  626. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/github-creating_a_uat_release.png +0 -0
  627. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/github-environment-packaging.png +0 -0
  628. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/github-organization-secret.png +0 -0
  629. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/github-repository-secret.png +0 -0
  630. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/github_checks.png +0 -0
  631. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/github_personal_access_token_scopes.png +0 -0
  632. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/github_secrets.png +0 -0
  633. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/github_workflow.png +0 -0
  634. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/locate_elements_screenshot.png +0 -0
  635. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/pipx.png +0 -0
  636. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/robot_log_screenshot.png +0 -0
  637. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/robot_toggled_results_screenshot.png +0 -0
  638. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/salesforce-org-process.png +0 -0
  639. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/service-list.png +0 -0
  640. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/skipping_task.png +0 -0
  641. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/windows_python.png +0 -0
  642. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/images/windows_python_success.png +0 -0
  643. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/docs/make.bat +0 -0
  644. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/pyproject.toml +0 -0
  645. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/setup.cfg +0 -0
  646. {cumulusci-3.68.0 → cumulusci-3.68.0.dev2}/setup.py +0 -0
@@ -2,29 +2,6 @@
2
2
  History
3
3
  =======
4
4
 
5
- 3.68.0 (2022-10-31)
6
- -------------------
7
-
8
- Critical Changes 🎉
9
-
10
- - Upgraded Robot Framework from version 4.1.3 to version 6. As with most Robot Framework updates, there are a host of new features and a few deprecated features and backwards incompatibilities. For a complete list consult the `Robot Framework release notes <https://github.com/robotframework/robotframework/releases>`__ in https://github.com/SFDO-Tooling/CumulusCI/pull/3417
11
-
12
- Changes 🎉
13
-
14
- - Add support for InstallKey, sourceOrg, release keys on 2GP version create by @davidmreed in https://github.com/SFDO-Tooling/CumulusCI/pull/3403
15
- - We now support the ``Territory2``, ``Territory2Model``, ``Territory2Type``, and ``Territory2Rule`` MetaData types. by @TheBitShepherd in https://github.com/SFDO-Tooling/CumulusCI/pull/3406
16
- - Add ``push_upgrade_org`` flow to test in simulated push upgrade environment by @davidmreed in https://github.com/SFDO-Tooling/CumulusCI/pull/3286
17
- - Fixed bug preventing the ``deploy_omni_studio_site_settings`` task from deploying to scratch orgs with the new ``.scratch.`` domain names by @jofsky in https://github.com/SFDO-Tooling/CumulusCI/pull/3411
18
- - All new keychain details are serialized using JSON, not pickle by @bethbrains in https://github.com/SFDO-Tooling/CumulusCI/pull/3390
19
- - Snowfakery (upgraded to 3.4) can now generate Event or Meeting Schedules similar to Calendar Apps
20
- - Snowfakery now has a Salesforce.ContentFile feature for generating Content Versions
21
-
22
- Issues Fixed 🩴
23
-
24
- - Bumped key_size from 2048 to 4096 on advice from a security audit by @boakley in https://github.com/SFDO-Tooling/CumulusCI/pull/3389
25
- - Fixed an issue where unknown deploy statuses could cause polling to hang in the deploy_marketing_cloud_package task by @TheBitShepherd in https://github.com/SFDO-Tooling/CumulusCI/pull/3394
26
- - Fixed an injection vulnerability related to unquoted csv writers by @TheBitShepherd in https://github.com/SFDO-Tooling/CumulusCI/pull/3404
27
-
28
5
  3.66.0 (2022-09-29)
29
6
  -------------------
30
7
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cumulusci
3
- Version: 3.68.0
3
+ Version: 3.68.0.dev2
4
4
  Summary: Build and release tools for Salesforce developers
5
5
  Home-page: https://github.com/SFDO-Tooling/CumulusCI
6
6
  Author: Salesforce.org
@@ -66,29 +66,6 @@ Description: =========
66
66
  History
67
67
  =======
68
68
 
69
- 3.68.0 (2022-10-31)
70
- -------------------
71
-
72
- Critical Changes 🎉
73
-
74
- - Upgraded Robot Framework from version 4.1.3 to version 6. As with most Robot Framework updates, there are a host of new features and a few deprecated features and backwards incompatibilities. For a complete list consult the `Robot Framework release notes <https://github.com/robotframework/robotframework/releases>`__ in https://github.com/SFDO-Tooling/CumulusCI/pull/3417
75
-
76
- Changes 🎉
77
-
78
- - Add support for InstallKey, sourceOrg, release keys on 2GP version create by @davidmreed in https://github.com/SFDO-Tooling/CumulusCI/pull/3403
79
- - We now support the ``Territory2``, ``Territory2Model``, ``Territory2Type``, and ``Territory2Rule`` MetaData types. by @TheBitShepherd in https://github.com/SFDO-Tooling/CumulusCI/pull/3406
80
- - Add ``push_upgrade_org`` flow to test in simulated push upgrade environment by @davidmreed in https://github.com/SFDO-Tooling/CumulusCI/pull/3286
81
- - Fixed bug preventing the ``deploy_omni_studio_site_settings`` task from deploying to scratch orgs with the new ``.scratch.`` domain names by @jofsky in https://github.com/SFDO-Tooling/CumulusCI/pull/3411
82
- - All new keychain details are serialized using JSON, not pickle by @bethbrains in https://github.com/SFDO-Tooling/CumulusCI/pull/3390
83
- - Snowfakery (upgraded to 3.4) can now generate Event or Meeting Schedules similar to Calendar Apps
84
- - Snowfakery now has a Salesforce.ContentFile feature for generating Content Versions
85
-
86
- Issues Fixed 🩴
87
-
88
- - Bumped key_size from 2048 to 4096 on advice from a security audit by @boakley in https://github.com/SFDO-Tooling/CumulusCI/pull/3389
89
- - Fixed an issue where unknown deploy statuses could cause polling to hang in the deploy_marketing_cloud_package task by @TheBitShepherd in https://github.com/SFDO-Tooling/CumulusCI/pull/3394
90
- - Fixed an injection vulnerability related to unquoted csv writers by @TheBitShepherd in https://github.com/SFDO-Tooling/CumulusCI/pull/3404
91
-
92
69
  3.66.0 (2022-09-29)
93
70
  -------------------
94
71
 
@@ -1,10 +1,8 @@
1
- import json
2
1
  import logging
3
2
  import os
3
+ import typing as T
4
4
  import warnings
5
- from datetime import date, datetime
6
5
  from functools import lru_cache
7
- from typing import Any, Dict, Optional
8
6
 
9
7
  # turn on strictness.
10
8
  # delete this when strictness is mandatory
@@ -12,21 +10,13 @@ STRICT_GETATTR = os.environ.get("STRICT_GETATTR")
12
10
  CHECK_CONFIG_TYPES = os.environ.get("CHECK_CONFIG_TYPES")
13
11
 
14
12
 
15
- def load_dates(x):
16
- if isinstance(x, datetime):
17
- return {"$type": "datetime", "$value": x.isoformat()}
18
- elif isinstance(x, date):
19
- return {"$type": "date", "$value": x.isoformat()}
20
-
21
-
22
- class BaseConfig:
13
+ class BaseConfig(object):
23
14
  """BaseConfig provides a common interface for nested access for all Config objects in CCI."""
24
15
 
25
16
  defaults = {}
26
17
  config: dict
27
- logger: logging.Logger
28
18
 
29
- def __init__(self, config: Optional[dict] = None, keychain=None):
19
+ def __init__(self, config=None, keychain=None):
30
20
  if config is None:
31
21
  self.config = {}
32
22
  else:
@@ -53,15 +43,12 @@ class BaseConfig:
53
43
  """Subclasses may override this method to initialize :py:attr:`~config`"""
54
44
  pass
55
45
 
56
- def _serialize(self) -> bytes:
57
- return json.dumps(self.config, default=load_dates).encode("utf-8")
58
-
59
46
  @classmethod
60
- def _allowed_names(cls) -> Dict[str, type]:
47
+ def _allowed_names(cls) -> T.Dict[str, type]:
61
48
  return getattr(cls, "__annotations__", {})
62
49
 
63
50
  # long term plan is to get rid of this
64
- def __getattr__(self, name: str) -> Any:
51
+ def __getattr__(self, name):
65
52
  """Look up a property in a sub-dictionary
66
53
 
67
54
  Property names should be declared in each Config class with type annotations.
@@ -83,10 +70,10 @@ class BaseConfig:
83
70
 
84
71
  @classmethod
85
72
  @lru_cache
86
- def _all_allowed_names(cls) -> Dict[str, type]:
73
+ def _all_allowed_names(cls):
87
74
  "Allowed names from this class and its base classes"
88
75
  allowed_names_from_all_base_classes = (
89
- baseclass._allowed_names() # type: ignore
76
+ baseclass._allowed_names()
90
77
  for baseclass in cls.__mro__
91
78
  if hasattr(baseclass, "_allowed_names")
92
79
  )
@@ -95,13 +82,11 @@ class BaseConfig:
95
82
  ret.update(d)
96
83
  return ret
97
84
 
98
- def lookup(
99
- self, name: str, default: Any = None, already_called_getattr: bool = False
100
- ) -> Any:
85
+ def lookup(self, name, default=None, already_called_getattr=False):
101
86
  tree = name.split("__")
102
87
  if name.startswith("_"):
103
88
  raise AttributeError(f"Attribute {name} not found")
104
- value: Any = None
89
+ value = None
105
90
  value_found = False
106
91
  config = self.config
107
92
  if len(tree) > 1:
@@ -8,9 +8,8 @@ from distutils.version import LooseVersion
8
8
  from io import StringIO
9
9
  from itertools import chain
10
10
  from pathlib import Path
11
- from typing import TYPE_CHECKING, Any, Dict, Iterable, Optional, Union
11
+ from typing import Optional, Union
12
12
 
13
- from github3 import GitHub
14
13
  from github3.repos.repo import Repository
15
14
 
16
15
  from cumulusci.core.config.base_config import BaseConfig
@@ -21,8 +20,7 @@ API_VERSION_RE = re.compile(r"^\d\d+\.0$")
21
20
  import github3
22
21
  from pydantic import ValidationError
23
22
 
24
- from cumulusci.core.config import FlowConfig, TaskConfig
25
- from cumulusci.core.config.base_task_flow_config import BaseTaskFlowConfig
23
+ from cumulusci.core.config import BaseTaskFlowConfig
26
24
  from cumulusci.core.exceptions import (
27
25
  ConfigError,
28
26
  GithubException,
@@ -38,7 +36,7 @@ from cumulusci.core.github import (
38
36
  )
39
37
  from cumulusci.core.source import GitHubSource, LocalFolderSource, NullSource
40
38
  from cumulusci.core.utils import merge_config
41
- from cumulusci.utils.fileutils import FSResource, open_fs_resource
39
+ from cumulusci.utils.fileutils import open_fs_resource
42
40
  from cumulusci.utils.git import current_branch, git_path, parse_repo_url, split_repo_url
43
41
  from cumulusci.utils.yaml.cumulusci_yml import (
44
42
  GitHubSourceModel,
@@ -46,10 +44,6 @@ from cumulusci.utils.yaml.cumulusci_yml import (
46
44
  cci_safe_load,
47
45
  )
48
46
 
49
- if TYPE_CHECKING:
50
- from cumulusci.core.config.universal_config import UniversalConfig
51
- from cumulusci.core.keychain.base_project_keychain import BaseProjectKeychain
52
-
53
47
 
54
48
  class ProjectConfigPropertiesMixin(BaseConfig):
55
49
  """Mixin for shared properties used by ProjectConfigs and UniversalConfigs"""
@@ -71,26 +65,9 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
71
65
  """Base class for a project's configuration which extends the global config"""
72
66
 
73
67
  config_filename = "cumulusci.yml"
74
- universal_config_obj: "UniversalConfig"
75
- keychain: Optional["BaseProjectKeychain"]
76
- _repo_info: Dict[str, Any]
77
- config_project: dict
78
- config_project_local: dict
79
- config_additional_yaml: dict
80
- additional_yaml: Optional[str]
81
- source: Union[NullSource, GitHubSource, LocalFolderSource]
82
- _cache_dir: Optional[Path]
83
- included_sources: Dict[
84
- Union[GitHubSourceModel, LocalFolderSourceModel], "BaseProjectConfig"
85
- ]
86
68
 
87
69
  def __init__(
88
- self,
89
- universal_config_obj: "UniversalConfig",
90
- config: Optional[dict] = None,
91
- cache_dir: Optional[Path] = None,
92
- *args,
93
- **kwargs,
70
+ self, universal_config_obj, config=None, cache_dir=None, *args, **kwargs
94
71
  ):
95
72
  self.universal_config_obj = universal_config_obj
96
73
  self.keychain = None
@@ -108,8 +85,6 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
108
85
 
109
86
  # optionally pass in a kwarg named 'additional_yaml' that will
110
87
  # be added to the YAML merge stack.
111
- # Called from MetaCI in metaci/cumulusci/config.py
112
- # https://github.com/SFDO-Tooling/MetaCI/blob/36a0f4654/metaci/cumulusci/config.py#L8-L11
113
88
  self.additional_yaml = None
114
89
  if "additional_yaml" in kwargs:
115
90
  self.additional_yaml = kwargs.pop("additional_yaml")
@@ -121,10 +96,10 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
121
96
  # Store requested cache directory, which may be our parent's if we are a subproject
122
97
  self._cache_dir = cache_dir
123
98
 
124
- super().__init__(config=config)
99
+ super(BaseProjectConfig, self).__init__(config=config)
125
100
 
126
101
  @property
127
- def config_project_local_path(self) -> Optional[str]:
102
+ def config_project_local_path(self):
128
103
  path = Path(self.project_local_dir) / self.config_filename
129
104
  if path.is_file():
130
105
  return str(path)
@@ -200,20 +175,20 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
200
175
  raise ConfigError(message)
201
176
 
202
177
  @property
203
- def config_global(self) -> dict:
178
+ def config_global(self):
204
179
  return self.universal_config_obj.config_global
205
180
 
206
181
  @property
207
- def config_universal(self) -> dict:
182
+ def config_universal(self):
208
183
  return self.universal_config_obj.config_universal
209
184
 
210
185
  @property
211
- def repo_info(self) -> Dict[str, Any]:
186
+ def repo_info(self):
212
187
  if self._repo_info is not None:
213
188
  return self._repo_info
214
189
 
215
190
  # Detect if we are running in a CI environment and get repo info
216
- # from env vars for the environment instead of .git files
191
+ # from env vars for the enviornment instead of .git files
217
192
  info = {"ci": None}
218
193
 
219
194
  # Make sure that the CUMULUSCI_AUTO_DETECT environment variable is
@@ -245,7 +220,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
245
220
  self._repo_info = info
246
221
  return self._repo_info
247
222
 
248
- def _apply_repo_env_var_overrides(self, info: Dict[str, Any]):
223
+ def _apply_repo_env_var_overrides(self, info):
249
224
  """Apply CUMULUSCI_REPO_* environment variables last so they can
250
225
  override and fill in missing values from the CI environment"""
251
226
  self._override_repo_env_var("CUMULUSCI_REPO_BRANCH", "branch", info)
@@ -264,18 +239,14 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
264
239
  url_info["url"] = repo_url
265
240
  info.update(url_info)
266
241
 
267
- def _override_repo_env_var(
268
- self, repo_env_var: str, local_var: str, info: Dict[str, Any]
269
- ):
270
- env_value: Optional[str] = os.environ.get(repo_env_var)
271
- if env_value:
272
- if env_value != info.get(local_var):
273
- self.logger.info(
274
- f"{repo_env_var} found, using its value for configuration."
275
- )
276
- info[local_var] = env_value
242
+ def _override_repo_env_var(self, repo_env_var, local_var, info):
243
+ repo_env_var = os.environ.get(repo_env_var)
244
+ if repo_env_var:
245
+ if repo_env_var != info.get(local_var):
246
+ self.logger.info("{} found, using its value for configuration.")
247
+ info[local_var] = repo_env_var
277
248
 
278
- def _validate_required_git_info(self, info: Dict[str, Any]):
249
+ def _validate_required_git_info(self, info):
279
250
  """Ensures that we have the required git info or throw a ConfigError"""
280
251
  validate = {
281
252
  # <key>: <env var to manually override>
@@ -294,7 +265,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
294
265
  message += f" with the {env_var} environment variable."
295
266
  raise ConfigError(message)
296
267
 
297
- def _log_detected_overrides_as_warning(self, info: Dict[str, Any]):
268
+ def _log_detected_overrides_as_warning(self, info):
298
269
  self.logger.info("")
299
270
  self.logger.warning("Using environment variables to override repo info:")
300
271
  keys = list(info.keys())
@@ -303,7 +274,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
303
274
  self.logger.warning(f" {key}: {info[key]}")
304
275
  self.logger.info("")
305
276
 
306
- def git_config_remote_origin_url(self) -> Optional[str]:
277
+ def git_config_remote_origin_url(self):
307
278
  """Returns the url under the [remote origin]
308
279
  section of the .git/config file. Returns None
309
280
  if .git/config file not present or no matching
@@ -317,7 +288,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
317
288
  return url
318
289
 
319
290
  @property
320
- def repo_root(self) -> Optional[str]:
291
+ def repo_root(self):
321
292
  path = self.repo_info.get("root")
322
293
  if path:
323
294
  return path
@@ -343,7 +314,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
343
314
  return parse_repo_url(url_line)[2]
344
315
 
345
316
  @property
346
- def repo_name(self) -> Optional[str]:
317
+ def repo_name(self):
347
318
  name = self.repo_info.get("name")
348
319
  if name:
349
320
  return name
@@ -356,7 +327,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
356
327
  return split_repo_url(url_line)[1]
357
328
 
358
329
  @property
359
- def repo_url(self) -> Optional[str]:
330
+ def repo_url(self):
360
331
  url = self.repo_info.get("url")
361
332
  if url:
362
333
  return url
@@ -368,7 +339,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
368
339
  return url
369
340
 
370
341
  @property
371
- def repo_owner(self) -> Optional[str]:
342
+ def repo_owner(self):
372
343
  owner = self.repo_info.get("owner")
373
344
  if owner:
374
345
  return owner
@@ -382,7 +353,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
382
353
  return split_repo_url(url_line)[0]
383
354
 
384
355
  @property
385
- def repo_branch(self) -> Optional[str]:
356
+ def repo_branch(self):
386
357
  branch = self.repo_info.get("branch")
387
358
  if branch:
388
359
  return branch
@@ -393,7 +364,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
393
364
  return current_branch(self.repo_root)
394
365
 
395
366
  @property
396
- def repo_commit(self) -> Optional[str]:
367
+ def repo_commit(self):
397
368
  commit = self.repo_info.get("commit")
398
369
  if commit:
399
370
  return commit
@@ -427,10 +398,10 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
427
398
  ):
428
399
  return parts[0]
429
400
 
430
- def get_github_api(self, url: Optional[str] = None) -> GitHub:
401
+ def get_github_api(self, url=None):
431
402
  return get_github_api_for_repo(self.keychain, url or self.repo_url)
432
403
 
433
- def get_repo(self) -> Repository:
404
+ def get_repo(self):
434
405
  repo = self.get_github_api(self.repo_url).repository(
435
406
  self.repo_owner, self.repo_name
436
407
  )
@@ -441,7 +412,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
441
412
  return repo
442
413
 
443
414
  # TODO: These methods are duplicative with `find_latest_release()`
444
- def get_latest_tag(self, beta: bool = False) -> str:
415
+ def get_latest_tag(self, beta=False):
445
416
  """Query Github Releases to find the latest production or beta tag"""
446
417
  repo = self.get_repo()
447
418
  if not beta:
@@ -456,7 +427,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
456
427
  else:
457
428
  return self._get_latest_tag_for_prefix(repo, self.project__git__prefix_beta)
458
429
 
459
- def _get_latest_tag_for_prefix(self, repo: Repository, prefix: str) -> str:
430
+ def _get_latest_tag_for_prefix(self, repo, prefix):
460
431
  for release in repo.releases():
461
432
  if not release.tag_name.startswith(prefix):
462
433
  continue
@@ -465,14 +436,14 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
465
436
  f"No release found for {self.repo_url} with tag prefix {prefix}"
466
437
  )
467
438
 
468
- def get_latest_version(self, beta: bool = False) -> Optional[LooseVersion]:
439
+ def get_latest_version(self, beta=False):
469
440
  """Query Github Releases to find the latest production or beta release"""
470
441
  tag = self.get_latest_tag(beta)
471
442
  version = self.get_version_for_tag(tag)
472
443
  if version is not None:
473
444
  return LooseVersion(version)
474
445
 
475
- def get_previous_version(self) -> Optional[LooseVersion]:
446
+ def get_previous_version(self):
476
447
  """Query GitHub releases to find the previous production release"""
477
448
  repo = self.get_repo()
478
449
  release = find_previous_release(repo, self.project__git__prefix_release)
@@ -480,7 +451,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
480
451
  return LooseVersion(self.get_version_for_tag(release.tag_name))
481
452
 
482
453
  @property
483
- def config_project_path(self) -> Optional[str]:
454
+ def config_project_path(self):
484
455
  if not self.repo_root:
485
456
  return
486
457
  path = Path(self.repo_root) / self.config_filename
@@ -488,7 +459,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
488
459
  return str(path)
489
460
 
490
461
  @property
491
- def project_local_dir(self) -> str:
462
+ def project_local_dir(self):
492
463
  """location of the user local directory for the project
493
464
  e.g., ~/.cumulusci/NPSP-Extension-Test/"""
494
465
 
@@ -505,7 +476,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
505
476
  return path
506
477
 
507
478
  @property
508
- def default_package_path(self) -> Path:
479
+ def default_package_path(self):
509
480
  if self.project__source_format == "sfdx":
510
481
  relpath = "force-app"
511
482
  for pkg in self.sfdx_project_config.get("packageDirectories", []):
@@ -516,26 +487,21 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
516
487
  return Path(self.repo_root, relpath).resolve()
517
488
 
518
489
  @property
519
- def sfdx_project_config(self) -> Dict[str, Any]:
490
+ def sfdx_project_config(self):
520
491
  with open(
521
492
  Path(self.repo_root) / "sfdx-project.json", "r", encoding="utf-8"
522
493
  ) as f:
523
494
  config = json.load(f)
524
495
  return config
525
496
 
526
- def get_tag_for_version(self, prefix: str, version: str) -> str:
497
+ def get_tag_for_version(self, prefix, version):
527
498
  """Given a prefix and version, returns the appropriate tag name to use."""
528
499
  try:
529
500
  return PackageVersionNumber.parse(version).format_tag(prefix)
530
501
  except ValueError:
531
502
  return f"{prefix}{version}"
532
503
 
533
- def get_version_for_tag(
534
- self,
535
- tag: str,
536
- prefix_beta: Optional[str] = None,
537
- prefix_release: Optional[str] = None,
538
- ) -> Optional[str]:
504
+ def get_version_for_tag(self, tag, prefix_beta=None, prefix_release=None):
539
505
  try:
540
506
  return PackageVersionNumber.parse_tag(
541
507
  tag,
@@ -545,7 +511,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
545
511
  except ValueError:
546
512
  pass
547
513
 
548
- def set_keychain(self, keychain: "BaseProjectKeychain"):
514
+ def set_keychain(self, keychain):
549
515
  self.keychain = keychain
550
516
 
551
517
  def _check_keychain(self):
@@ -556,11 +522,11 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
556
522
  )
557
523
 
558
524
  @catch_common_github_auth_errors
559
- def get_repo_from_url(self, url: str) -> Optional[Repository]:
525
+ def get_repo_from_url(self, url) -> Optional[Repository]:
560
526
  owner, name = split_repo_url(url)
561
527
  return self.get_github_api(url).repository(owner, name)
562
528
 
563
- def get_task(self, name: str) -> TaskConfig:
529
+ def get_task(self, name):
564
530
  """Get a TaskConfig by task name
565
531
 
566
532
  If the name has a colon, look for it in a different project config.
@@ -575,7 +541,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
575
541
  task_config.project_config = self
576
542
  return task_config
577
543
 
578
- def get_flow(self, name) -> FlowConfig:
544
+ def get_flow(self, name):
579
545
  """Get a FlowConfig by flow name
580
546
 
581
547
  If the name has a colon, look for it in a different project config.
@@ -592,7 +558,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
592
558
  flow_config.project_config = self
593
559
  return flow_config
594
560
 
595
- def get_namespace(self, ns: str) -> "BaseProjectConfig":
561
+ def get_namespace(self, ns: str):
596
562
  """Look up another project config by its name in the `sources` config.
597
563
 
598
564
  Also makes sure the project has been fetched, if it's from an external source.
@@ -605,7 +571,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
605
571
 
606
572
  def include_source(
607
573
  self, spec: Union[GitHubSourceModel, LocalFolderSourceModel, dict]
608
- ) -> "BaseProjectConfig":
574
+ ):
609
575
  """Make sure a project has been fetched from its source.
610
576
 
611
577
  This either fetches the project code and constructs its project config,
@@ -643,7 +609,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
643
609
 
644
610
  return project_config
645
611
 
646
- def construct_subproject_config(self, **kwargs) -> "BaseProjectConfig":
612
+ def construct_subproject_config(self, **kwargs):
647
613
  """Construct another project config for an external source"""
648
614
  return self.__class__(
649
615
  self.universal_config_obj,
@@ -652,12 +618,12 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
652
618
  **kwargs,
653
619
  )
654
620
 
655
- def relpath(self, path: str) -> str:
621
+ def relpath(self, path):
656
622
  """Convert path to be relative to the project repo root."""
657
623
  return os.path.relpath(os.path.join(self.repo_root, path))
658
624
 
659
625
  @property
660
- def cache_dir(self) -> Path:
626
+ def cache_dir(self):
661
627
  "A project cache which is on the local filesystem. Prefer open_cache where possible."
662
628
  if self._cache_dir:
663
629
  return self._cache_dir
@@ -669,7 +635,7 @@ class BaseProjectConfig(BaseTaskFlowConfig, ProjectConfigPropertiesMixin):
669
635
  return cache_dir
670
636
 
671
637
  @contextmanager
672
- def open_cache(self, cache_name: str) -> Iterable[FSResource]:
638
+ def open_cache(self, cache_name):
673
639
  "A context managed PyFilesystem-based cache which could theoretically be on any filesystem."
674
640
  with open_fs_resource(self.cache_dir / cache_name) as cache_dir:
675
641
  cache_dir.mkdir(exist_ok=True, parents=True)
@@ -108,7 +108,7 @@ def _determine_github_client(host: str, client_params: dict) -> GitHub:
108
108
  return client_cls(**params)
109
109
 
110
110
 
111
- def get_github_api_for_repo(keychain, repo_url, session=None) -> GitHub:
111
+ def get_github_api_for_repo(keychain, repo_url, session=None):
112
112
  owner, repo_name, host = parse_repo_url(repo_url)
113
113
  gh: GitHub = _determine_github_client(
114
114
  host,