cumulusci 3.65.0.dev1__tar.gz → 3.66.0.dev1__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 (638) hide show
  1. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/HISTORY.rst +8 -0
  2. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/PKG-INFO +9 -1
  3. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/cci.py +17 -1
  4. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/test_cci.py +25 -0
  5. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cumulusci.yml +4 -0
  6. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/Salesforce.robot +8 -0
  7. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/SalesforcePlaywright.py +16 -17
  8. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/form_handlers.py +2 -4
  9. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/forms.robot +4 -6
  10. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/pageobjects/listing_page.robot +7 -1
  11. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/pageobjects/objectmanager.robot +0 -3
  12. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/playwright/playwright.robot +1 -1
  13. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/test_utils.py +15 -4
  14. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/utils.py +27 -12
  15. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/metadata_map.yml +4 -0
  16. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/__init__.py +2 -0
  17. cumulusci-3.66.0.dev1/cumulusci/tasks/metadata_etl/objects.py +68 -0
  18. cumulusci-3.66.0.dev1/cumulusci/tasks/metadata_etl/tests/test_objects.py +236 -0
  19. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/org_settings.py +7 -0
  20. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_org_settings.py +42 -4
  21. cumulusci-3.66.0.dev1/cumulusci/version.txt +1 -0
  22. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci.egg-info/PKG-INFO +9 -1
  23. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci.egg-info/SOURCES.txt +2 -0
  24. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci.egg-info/requires.txt +3 -3
  25. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/conf.py +17 -3
  26. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/requirements/dev.txt +13 -14
  27. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/requirements/prod.txt +3 -3
  28. cumulusci-3.65.0.dev1/cumulusci/version.txt +0 -1
  29. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/AUTHORS.rst +0 -0
  30. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/CONTRIBUTING.rst +0 -0
  31. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/LICENSE +0 -0
  32. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/MANIFEST.in +0 -0
  33. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/README.rst +0 -0
  34. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/__init__.py +0 -0
  35. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/__main__.py +0 -0
  36. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/__init__.py +0 -0
  37. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/error.py +0 -0
  38. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/flow.py +0 -0
  39. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/logger.py +0 -0
  40. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/org.py +0 -0
  41. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/plan.py +0 -0
  42. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/project.py +0 -0
  43. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/robot.py +0 -0
  44. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/runtime.py +0 -0
  45. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/service.py +0 -0
  46. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/task.py +0 -0
  47. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/__init__.py +0 -0
  48. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/test_error.py +0 -0
  49. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/test_flow.py +0 -0
  50. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/test_logger.py +0 -0
  51. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/test_org.py +0 -0
  52. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/test_plan.py +0 -0
  53. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/test_project.py +0 -0
  54. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/test_robot.py +0 -0
  55. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/test_runtime.py +0 -0
  56. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/test_service.py +0 -0
  57. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/test_task.py +0 -0
  58. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/test_ui.py +0 -0
  59. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/test_utils.py +0 -0
  60. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/tests/utils.py +0 -0
  61. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/ui.py +0 -0
  62. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/cli/utils.py +0 -0
  63. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/conftest.py +0 -0
  64. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/__init__.py +0 -0
  65. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/BaseConfig.py +0 -0
  66. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/BaseTaskFlowConfig.py +0 -0
  67. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/OrgConfig.py +0 -0
  68. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/ScratchOrgConfig.py +0 -0
  69. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/__init__.py +0 -0
  70. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/base_config.py +0 -0
  71. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/base_task_flow_config.py +0 -0
  72. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/marketing_cloud_service_config.py +0 -0
  73. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/oauth2_service_config.py +0 -0
  74. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/org_config.py +0 -0
  75. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/project_config.py +0 -0
  76. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/scratch_org_config.py +0 -0
  77. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/sfdx_org_config.py +0 -0
  78. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/tests/_test_config_backwards_compatibility.py +0 -0
  79. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/tests/test_config.py +0 -0
  80. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/tests/test_config_expensive.py +0 -0
  81. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/tests/test_config_util.py +0 -0
  82. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/universal_config.py +0 -0
  83. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/config/util.py +0 -0
  84. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/datasets.py +0 -0
  85. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/debug.py +0 -0
  86. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/dependencies/__init__.py +0 -0
  87. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/dependencies/dependencies.py +0 -0
  88. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/dependencies/github.py +0 -0
  89. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/dependencies/resolvers.py +0 -0
  90. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/dependencies/tests/__init__.py +0 -0
  91. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/dependencies/tests/conftest.py +0 -0
  92. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/dependencies/tests/test_dependencies.py +0 -0
  93. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/dependencies/tests/test_github.py +0 -0
  94. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/dependencies/tests/test_resolvers.py +0 -0
  95. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/dependencies/utils.py +0 -0
  96. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/exceptions.py +0 -0
  97. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/flowrunner.py +0 -0
  98. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/github.py +0 -0
  99. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/keychain/__init__.py +0 -0
  100. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/keychain/base_project_keychain.py +0 -0
  101. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/keychain/encrypted_file_project_keychain.py +0 -0
  102. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/keychain/environment_project_keychain.py +0 -0
  103. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/keychain/subprocess_keychain.py +0 -0
  104. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/keychain/tests/conftest.py +0 -0
  105. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/keychain/tests/test_base_project_keychain.py +0 -0
  106. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/keychain/tests/test_encrypted_file_project_keychain.py +0 -0
  107. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/metadeploy/__init__.py +0 -0
  108. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/metadeploy/api.py +0 -0
  109. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/metadeploy/plans.py +0 -0
  110. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/metadeploy/tests/test_api.py +0 -0
  111. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/runtime.py +0 -0
  112. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/sfdx.py +0 -0
  113. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/source/__init__.py +0 -0
  114. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/source/github.py +0 -0
  115. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/source/local_folder.py +0 -0
  116. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/tasks.py +0 -0
  117. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/template_utils.py +0 -0
  118. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/tests/__init__.py +0 -0
  119. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/tests/test_datasets_e2e.py +0 -0
  120. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/tests/test_exceptions.py +0 -0
  121. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/tests/test_flowrunner.py +0 -0
  122. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/tests/test_github.py +0 -0
  123. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/tests/test_sfdx.py +0 -0
  124. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/tests/test_source.py +0 -0
  125. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/tests/test_tasks.py +0 -0
  126. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/tests/test_utils.py +0 -0
  127. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/tests/test_utils_merge_config.py +0 -0
  128. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/tests/test_versions.py +0 -0
  129. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/tests/utils.py +0 -0
  130. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/utils.py +0 -0
  131. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/core/versions.py +0 -0
  132. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/files/admin_profile.xml +0 -0
  133. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/files/delete_excludes.txt +0 -0
  134. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/files/templates/project/README.md +0 -0
  135. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/files/templates/project/cumulusci.yml +0 -0
  136. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/files/templates/project/dot-gitignore +0 -0
  137. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/files/templates/project/mapping.yml +0 -0
  138. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/files/templates/project/scratch_def.json +0 -0
  139. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/oauth/__init__.py +0 -0
  140. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/oauth/client.py +0 -0
  141. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/oauth/exceptions.py +0 -0
  142. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/oauth/salesforce.py +0 -0
  143. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/oauth/tests/__init__.py +0 -0
  144. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/oauth/tests/test_client.py +0 -0
  145. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/oauth/tests/test_salesforce.py +0 -0
  146. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/CumulusCI.py +0 -0
  147. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/CumulusCI.robot +0 -0
  148. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/Performance.py +0 -0
  149. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/Salesforce.py +0 -0
  150. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/SalesforceAPI.py +0 -0
  151. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/SalesforcePlaywright.robot +0 -0
  152. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/__init__.py +0 -0
  153. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/base_library.py +0 -0
  154. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/faker_mixin.py +0 -0
  155. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/locator_manager.py +0 -0
  156. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/locators_54.py +0 -0
  157. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/locators_55.py +0 -0
  158. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/locators_56.py +0 -0
  159. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/pageobjects/BasePageObjects.py +0 -0
  160. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/pageobjects/ObjectManagerPageObject.py +0 -0
  161. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/pageobjects/PageObjectLibrary.py +0 -0
  162. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/pageobjects/PageObjects.py +0 -0
  163. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/pageobjects/__init__.py +0 -0
  164. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/pageobjects/baseobjects.py +0 -0
  165. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/perftests/short/collection_perf.robot +0 -0
  166. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/CustomObjectTestPage.py +0 -0
  167. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/FooTestPage.py +0 -0
  168. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/cumulusci/base.robot +0 -0
  169. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/cumulusci/bulkdata.robot +0 -0
  170. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/cumulusci/communities.robot +0 -0
  171. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/cumulusci/datagen.robot +0 -0
  172. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/TestLibraryA.py +0 -0
  173. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/TestLibraryB.py +0 -0
  174. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/TestListener.py +0 -0
  175. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/api.robot +0 -0
  176. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/browsers.robot +0 -0
  177. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/classic.robot +0 -0
  178. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/create_contact.robot +0 -0
  179. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/faker.robot +0 -0
  180. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/label_locator.robot +0 -0
  181. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/labels.html +0 -0
  182. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/locators.robot +0 -0
  183. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/pageobjects/base_pageobjects.robot +0 -0
  184. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/pageobjects/example_page_object.py +0 -0
  185. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/pageobjects/pageobjects.robot +0 -0
  186. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/performance.robot +0 -0
  187. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/playwright/ui.robot +0 -0
  188. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/populate.robot +0 -0
  189. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/test_testlistener.py +0 -0
  190. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/salesforce/ui.robot +0 -0
  191. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/test_cumulusci_library.py +0 -0
  192. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/test_locator_manager.py +0 -0
  193. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/test_pageobjects.py +0 -0
  194. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/test_performance.py +0 -0
  195. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/test_salesforce.py +0 -0
  196. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/test_salesforce_locators.py +0 -0
  197. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/robotframework/tests/test_template_util.py +0 -0
  198. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/__init__.py +0 -0
  199. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/exceptions.py +0 -0
  200. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/filterable_objects.py +0 -0
  201. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/mc_soap_envelopes.py +0 -0
  202. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/metadata.py +0 -0
  203. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/org_schema.py +0 -0
  204. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/org_schema_models.py +0 -0
  205. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/package_install.py +0 -0
  206. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/package_zip.py +0 -0
  207. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/soap_envelopes.py +0 -0
  208. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/tests/__init__.py +0 -0
  209. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/tests/metadata_test_strings.py +0 -0
  210. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/tests/test_metadata.py +0 -0
  211. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/tests/test_package_install.py +0 -0
  212. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/tests/test_package_zip.py +0 -0
  213. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/tests/test_utils.py +0 -0
  214. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/salesforce_api/utils.py +0 -0
  215. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/schema/cumulusci.jsonschema.json +0 -0
  216. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/__init__.py +0 -0
  217. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/apex/__init__.py +0 -0
  218. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/apex/anon.py +0 -0
  219. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/apex/batch.py +0 -0
  220. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/apex/testrunner.py +0 -0
  221. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/apex/tests/test_apex_tasks.py +0 -0
  222. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/__init__.py +0 -0
  223. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/base_generate_data_task.py +0 -0
  224. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/dates.py +0 -0
  225. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/delete.py +0 -0
  226. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/extract.py +0 -0
  227. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/extract_dataset_utils/calculate_dependencies.py +0 -0
  228. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/extract_dataset_utils/extract_yml.py +0 -0
  229. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/extract_dataset_utils/hardcoded_default_declarations.py +0 -0
  230. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/extract_dataset_utils/synthesize_extract_declarations.py +0 -0
  231. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/extract_dataset_utils/tests/test_extract_yml.py +0 -0
  232. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/extract_dataset_utils/tests/test_synthesize_extract_declarations.py +0 -0
  233. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/factory_utils.py +0 -0
  234. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate.py +0 -0
  235. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate_and_load_data.py +0 -0
  236. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate_and_load_data_from_yaml.py +0 -0
  237. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate_from_yaml.py +0 -0
  238. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate_mapping.py +0 -0
  239. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate_mapping_utils/dependency_map.py +0 -0
  240. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate_mapping_utils/extract_mapping_file_generator.py +0 -0
  241. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate_mapping_utils/generate_mapping_from_declarations.py +0 -0
  242. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate_mapping_utils/load_mapping_file_generator.py +0 -0
  243. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate_mapping_utils/mapping_generator_post_processes.py +0 -0
  244. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate_mapping_utils/mapping_transforms.py +0 -0
  245. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_generate_extract_mapping_from_declarations.py +0 -0
  246. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_generate_load_mapping_from_declarations.py +0 -0
  247. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_mapping_generator_post_processes.py +0 -0
  248. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_mapping_transforms.py +0 -0
  249. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/load.py +0 -0
  250. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/mapping_parser.py +0 -0
  251. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/query_transformers.py +0 -0
  252. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/snowfakery.py +0 -0
  253. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/snowfakery_utils/queue_manager.py +0 -0
  254. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/snowfakery_utils/snowfakery_run_until.py +0 -0
  255. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/snowfakery_utils/snowfakery_working_directory.py +0 -0
  256. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/snowfakery_utils/subtask_configurator.py +0 -0
  257. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/step.py +0 -0
  258. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/__init__.py +0 -0
  259. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/dummy_data_factory.py +0 -0
  260. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/integration_test_utils.py +0 -0
  261. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/mapping-oid.yml +0 -0
  262. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/mapping_after.yml +0 -0
  263. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/mapping_simple.yml +0 -0
  264. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/mapping_v1.yml +0 -0
  265. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/mapping_v2.yml +0 -0
  266. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/mapping_v3.yml +0 -0
  267. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/mapping_vanilla_sf.yml +0 -0
  268. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/mock_data_factory_without_mapping.py +0 -0
  269. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/person_accounts.yml +0 -0
  270. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/person_accounts_minimal.yml +0 -0
  271. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/recordtypes.yml +0 -0
  272. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/child/child2.yml +0 -0
  273. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/child.yml +0 -0
  274. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/gen_npsp_standard_objects.recipe.yml +0 -0
  275. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/include_parent.yml +0 -0
  276. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/npsp_standard_objects_macros.yml +0 -0
  277. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/options.recipe.yml +0 -0
  278. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/query_snowfakery.recipe.yml +0 -0
  279. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/sf_standard_object_macros.yml +0 -0
  280. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery.load.yml +0 -0
  281. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery.recipe.yml +0 -0
  282. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_2.load.yml +0 -0
  283. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels.load.yml +0 -0
  284. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels.recipe.yml +0 -0
  285. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels_2.load.yml +0 -0
  286. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/unique_values.recipe.yml +0 -0
  287. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/upsert.recipe.yml +0 -0
  288. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/upsert_2.recipe.yml +0 -0
  289. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/snowfakery/upsert_before.yml +0 -0
  290. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_base_generate_data_tasks.py +0 -0
  291. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_dates.py +0 -0
  292. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_delete.py +0 -0
  293. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_extract.py +0 -0
  294. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_factory_utils.py +0 -0
  295. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_generate_and_load.py +0 -0
  296. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_generate_from_snowfakery_task.py +0 -0
  297. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_generatemapping.py +0 -0
  298. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_load.py +0 -0
  299. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_mapping_parser.py +0 -0
  300. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_query_db__joins_self_lookups.yml +0 -0
  301. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_snowfakery.py +0 -0
  302. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_step.py +0 -0
  303. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_updates.py +0 -0
  304. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_upsert.py +0 -0
  305. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/test_utils.py +0 -0
  306. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/update_describe.py +0 -0
  307. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/update_person_accounts.yml +0 -0
  308. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/tests/utils.py +0 -0
  309. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/update_data.py +0 -0
  310. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/upsert_utils.py +0 -0
  311. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/bulkdata/utils.py +0 -0
  312. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/command.py +0 -0
  313. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/connectedapp.py +0 -0
  314. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/create_package_version.py +0 -0
  315. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/datadictionary.py +0 -0
  316. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/dx_convert_from.py +0 -0
  317. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/__init__.py +0 -0
  318. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/base.py +0 -0
  319. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/commit_status.py +0 -0
  320. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/merge.py +0 -0
  321. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/publish.py +0 -0
  322. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/pull_request.py +0 -0
  323. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/release.py +0 -0
  324. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/release_report.py +0 -0
  325. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/tag.py +0 -0
  326. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/tests/__init__.py +0 -0
  327. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/tests/test_commit_status.py +0 -0
  328. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/tests/test_merge.py +0 -0
  329. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/tests/test_publish.py +0 -0
  330. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/tests/test_pull_request.py +0 -0
  331. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/tests/test_release.py +0 -0
  332. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/tests/test_release_report.py +0 -0
  333. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/tests/test_tag.py +0 -0
  334. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/tests/test_util.py +0 -0
  335. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/tests/util_github_api.py +0 -0
  336. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/github/util.py +0 -0
  337. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/marketing_cloud/__init__.py +0 -0
  338. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/marketing_cloud/api.py +0 -0
  339. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/marketing_cloud/base.py +0 -0
  340. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/marketing_cloud/deploy.py +0 -0
  341. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/marketing_cloud/get_user_info.py +0 -0
  342. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/marketing_cloud/mc_constants.py +0 -0
  343. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/marketing_cloud/tests/__init__.py +0 -0
  344. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/marketing_cloud/tests/conftest.py +0 -0
  345. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/marketing_cloud/tests/expected-payload.json +0 -0
  346. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/marketing_cloud/tests/test_api.py +0 -0
  347. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/marketing_cloud/tests/test_api_soap_envelopes.py +0 -0
  348. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/marketing_cloud/tests/test_base.py +0 -0
  349. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/marketing_cloud/tests/test_deploy.py +0 -0
  350. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/marketing_cloud/tests/test_get_user_info.py +0 -0
  351. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/__init__.py +0 -0
  352. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/ee_src.py +0 -0
  353. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/managed_src.py +0 -0
  354. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/modify.py +0 -0
  355. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/package.py +0 -0
  356. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/tests/__init__.py +0 -0
  357. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/destructiveChanges.xml +0 -0
  358. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/package.xml +0 -0
  359. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/reports/namespace__TestFolder/TestReport.report +0 -0
  360. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/tests/sample_package.xml +0 -0
  361. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/tests/test_ee_src.py +0 -0
  362. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/tests/test_managed_src.py +0 -0
  363. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/tests/test_modify.py +0 -0
  364. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata/tests/test_package.py +0 -0
  365. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/base.py +0 -0
  366. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/duplicate_rules.py +0 -0
  367. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/field_sets.py +0 -0
  368. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/help_text.py +0 -0
  369. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/layouts.py +0 -0
  370. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/permissions.py +0 -0
  371. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/picklists.py +0 -0
  372. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/remote_site_settings.py +0 -0
  373. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/sharing.py +0 -0
  374. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/tests/test_base.py +0 -0
  375. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/tests/test_duplicate_rules.py +0 -0
  376. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/tests/test_field_sets.py +0 -0
  377. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/tests/test_help_text.py +0 -0
  378. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/tests/test_ip_ranges.py +0 -0
  379. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/tests/test_layouts.py +0 -0
  380. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/tests/test_permissions.py +0 -0
  381. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/tests/test_picklists.py +0 -0
  382. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/tests/test_remote_site_settings.py +0 -0
  383. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/tests/test_sharing.py +0 -0
  384. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/tests/test_value_sets.py +0 -0
  385. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadata_etl/value_sets.py +0 -0
  386. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metadeploy.py +0 -0
  387. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/metaxml.py +0 -0
  388. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/preflight/__init__.py +0 -0
  389. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/preflight/licenses.py +0 -0
  390. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/preflight/packages.py +0 -0
  391. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/preflight/permsets.py +0 -0
  392. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/preflight/recordtypes.py +0 -0
  393. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/preflight/settings.py +0 -0
  394. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/preflight/sobjects.py +0 -0
  395. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/preflight/tests/test_licenses.py +0 -0
  396. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/preflight/tests/test_packages.py +0 -0
  397. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/preflight/tests/test_permset_preflights.py +0 -0
  398. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/preflight/tests/test_recordtypes.py +0 -0
  399. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/preflight/tests/test_settings.py +0 -0
  400. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/preflight/tests/test_sobjects.py +0 -0
  401. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/push/README.md +0 -0
  402. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/push/__init__.py +0 -0
  403. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/push/push_api.py +0 -0
  404. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/push/pushfails.py +0 -0
  405. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/push/tasks.py +0 -0
  406. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/push/tests/conftest.py +0 -0
  407. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/push/tests/test_push_api.py +0 -0
  408. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/push/tests/test_push_tasks.py +0 -0
  409. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/README.md +0 -0
  410. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/__init__.py +0 -0
  411. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/exceptions.py +0 -0
  412. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/generator.py +0 -0
  413. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/parser.py +0 -0
  414. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/provider.py +0 -0
  415. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/task.py +0 -0
  416. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/tests/__init__.py +0 -0
  417. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/tests/change_notes/full/example1.md +0 -0
  418. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/tests/change_notes/multi/1.txt +0 -0
  419. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/tests/change_notes/multi/2.txt +0 -0
  420. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/tests/change_notes/multi/3.txt +0 -0
  421. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/tests/change_notes/single/1.txt +0 -0
  422. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/tests/test_generator.py +0 -0
  423. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/tests/test_parser.py +0 -0
  424. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/tests/test_provider.py +0 -0
  425. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/tests/test_task.py +0 -0
  426. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/release_notes/tests/utils.py +0 -0
  427. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/__init__.py +0 -0
  428. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/debugger/DebugListener.py +0 -0
  429. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/debugger/__init__.py +0 -0
  430. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/debugger/model.py +0 -0
  431. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/debugger/ui.py +0 -0
  432. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/libdoc.py +0 -0
  433. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/lint.py +0 -0
  434. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/lint_defaults.txt +0 -0
  435. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/robotframework.py +0 -0
  436. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/stylesheet.css +0 -0
  437. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/template.html +0 -0
  438. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/tests/TestLibrary.py +0 -0
  439. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/tests/TestPageObjects.py +0 -0
  440. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/tests/TestResource.robot +0 -0
  441. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/tests/failing_tests.robot +0 -0
  442. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/tests/performance.robot +0 -0
  443. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/tests/test_debugger.py +0 -0
  444. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/tests/test_robot_lint.py +0 -0
  445. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/tests/test_robot_parallel.py +0 -0
  446. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/robotframework/tests/test_robotframework.py +0 -0
  447. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/BaseRetrieveMetadata.py +0 -0
  448. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/BaseSalesforceApiTask.py +0 -0
  449. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/BaseSalesforceMetadataApiTask.py +0 -0
  450. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/BaseSalesforceTask.py +0 -0
  451. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/BaseUninstallMetadata.py +0 -0
  452. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/CreateCommunity.py +0 -0
  453. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/CreatePackage.py +0 -0
  454. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/Deploy.py +0 -0
  455. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/DeployBundles.py +0 -0
  456. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/EnsureRecordTypes.py +0 -0
  457. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/GetInstalledPackages.py +0 -0
  458. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/ListCommunities.py +0 -0
  459. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/ListCommunityTemplates.py +0 -0
  460. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/PublishCommunity.py +0 -0
  461. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/RetrievePackaged.py +0 -0
  462. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/RetrieveReportsAndDashboards.py +0 -0
  463. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/RetrieveUnpackaged.py +0 -0
  464. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/SOQLQuery.py +0 -0
  465. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/UninstallLocal.py +0 -0
  466. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/UninstallLocalBundles.py +0 -0
  467. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/UninstallLocalNamespacedBundles.py +0 -0
  468. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/UninstallPackage.py +0 -0
  469. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/UninstallPackaged.py +0 -0
  470. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/UpdateAdminProfile.py +0 -0
  471. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/__init__.py +0 -0
  472. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/activate_flow.py +0 -0
  473. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/composite.py +0 -0
  474. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/create_permission_sets.py +0 -0
  475. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/custom_settings.py +0 -0
  476. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/custom_settings_wait.py +0 -0
  477. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/enable_prediction.py +0 -0
  478. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/insert_record.py +0 -0
  479. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/install_package_version.py +0 -0
  480. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/license_preflights.py +0 -0
  481. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/network_member_group.py +0 -0
  482. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/package_upload.py +0 -0
  483. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/profiles.py +0 -0
  484. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/promote_package_version.py +0 -0
  485. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/sourcetracking.py +0 -0
  486. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/__init__.py +0 -0
  487. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_CreateCommunity.py +0 -0
  488. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_CreatePackage.py +0 -0
  489. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_Deploy.py +0 -0
  490. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_DeployBundles.py +0 -0
  491. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_EnsureRecordTypes.py +0 -0
  492. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_ListCommunities.py +0 -0
  493. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_ListCommunityTemplates.py +0 -0
  494. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_PackageUpload.py +0 -0
  495. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_ProfileGrantAllAccess.py +0 -0
  496. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_PublishCommunity.py +0 -0
  497. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_RetrievePackaged.py +0 -0
  498. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_RetrieveReportsAndDashboards.py +0 -0
  499. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_RetrieveUnpackaged.py +0 -0
  500. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_SOQLQuery.py +0 -0
  501. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_UninstallLocal.py +0 -0
  502. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_UninstallLocalBundles.py +0 -0
  503. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_UninstallLocalNamespacedBundles.py +0 -0
  504. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_UninstallPackage.py +0 -0
  505. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_UninstallPackaged.py +0 -0
  506. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_UninstallPackagedIncremental.py +0 -0
  507. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_activate_flow.py +0 -0
  508. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_base_tasks.py +0 -0
  509. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_composite.py +0 -0
  510. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_create_permission_sets.py +0 -0
  511. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_custom_settings.py +0 -0
  512. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_custom_settings_wait.py +0 -0
  513. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_enable_prediction.py +0 -0
  514. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_insert_record.py +0 -0
  515. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_install_package_version.py +0 -0
  516. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_network_member_group.py +0 -0
  517. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_profiles.py +0 -0
  518. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_sourcetracking.py +0 -0
  519. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_trigger_handlers.py +0 -0
  520. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/test_update_dependencies.py +0 -0
  521. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/tests/util.py +0 -0
  522. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/trigger_handlers.py +0 -0
  523. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/uninstall_packaged_incremental.py +0 -0
  524. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/update_dependencies.py +0 -0
  525. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/update_profile.py +0 -0
  526. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/users/permsets.py +0 -0
  527. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/users/photos.py +0 -0
  528. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/users/tests/photo.mock.txt +0 -0
  529. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/users/tests/test_permsets.py +0 -0
  530. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/salesforce/users/tests/test_photos.py +0 -0
  531. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/sfdx.py +0 -0
  532. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/tests/__init__.py +0 -0
  533. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/tests/conftest.py +0 -0
  534. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/tests/test_command.py +0 -0
  535. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/tests/test_connectedapp.py +0 -0
  536. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/tests/test_create_package_version.py +0 -0
  537. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/tests/test_datadictionary.py +0 -0
  538. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/tests/test_dx_convert_from.py +0 -0
  539. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/tests/test_metadeploy.py +0 -0
  540. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/tests/test_metaxml.py +0 -0
  541. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/tests/test_promote_package_version.py +0 -0
  542. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/tests/test_pushfails.py +0 -0
  543. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/tests/test_salesforce.py +0 -0
  544. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/tests/test_sfdx.py +0 -0
  545. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/tests/test_util.py +0 -0
  546. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/util.py +0 -0
  547. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/vlocity/exceptions.py +0 -0
  548. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/vlocity/tests/test_vlocity.py +0 -0
  549. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tasks/vlocity/vlocity.py +0 -0
  550. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tests/__init__.py +0 -0
  551. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tests/pytest_plugins/pytest_sf_orgconnect.py +0 -0
  552. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tests/pytest_plugins/pytest_sf_vcr.py +0 -0
  553. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tests/pytest_plugins/pytest_sf_vcr_serializer.py +0 -0
  554. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tests/pytest_plugins/pytest_typeguard.py +0 -0
  555. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tests/pytest_plugins/test_vcr_string_compressor.py +0 -0
  556. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tests/pytest_plugins/vcr_string_compressor.py +0 -0
  557. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tests/test_entry_points.py +0 -0
  558. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tests/test_integration_infrastructure.py +0 -0
  559. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tests/test_main.py +0 -0
  560. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tests/test_schema.py +0 -0
  561. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tests/test_utils.py +0 -0
  562. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tests/test_vcr_serializer.py +0 -0
  563. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/tests/util.py +0 -0
  564. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/__init__.py +0 -0
  565. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/classutils.py +0 -0
  566. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/collections.py +0 -0
  567. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/deprecation.py +0 -0
  568. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/fileutils.py +0 -0
  569. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/git.py +0 -0
  570. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/http/multi_request.py +0 -0
  571. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/http/requests_utils.py +0 -0
  572. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/http/tests/test_multi_request.py +0 -0
  573. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/iterators.py +0 -0
  574. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/logging.py +0 -0
  575. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/parallel/task_worker_queues/parallel_worker.py +0 -0
  576. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/parallel/task_worker_queues/parallel_worker_queue.py +0 -0
  577. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/parallel/task_worker_queues/tests/test_parallel_worker.py +0 -0
  578. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/salesforce/count_sobjects.py +0 -0
  579. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/salesforce/tests/test_count_sobjects.py +0 -0
  580. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/tests/test_fileutils.py +0 -0
  581. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/tests/test_git.py +0 -0
  582. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/tests/test_logging.py +0 -0
  583. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/tests/test_org_schema.py +0 -0
  584. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/tests/test_org_schema_models.py +0 -0
  585. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/tests/test_waiting.py +0 -0
  586. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/waiting.py +0 -0
  587. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/xml/__init__.py +0 -0
  588. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/xml/metadata_tree.py +0 -0
  589. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/xml/robot_xml.py +0 -0
  590. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/xml/salesforce_encoding.py +0 -0
  591. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/xml/test/test_metadata_tree.py +0 -0
  592. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/xml/test/test_salesforce_encoding.py +0 -0
  593. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/yaml/cumulusci_yml.py +0 -0
  594. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/yaml/model_parser.py +0 -0
  595. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/yaml/safer_loader.py +0 -0
  596. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/yaml/tests/bad_cci.yml +0 -0
  597. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/yaml/tests/test_cumulusci_yml.py +0 -0
  598. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/yaml/tests/test_model_parser.py +0 -0
  599. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/yaml/tests/test_safer_loader.py +0 -0
  600. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci/utils/ziputils.py +0 -0
  601. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci.egg-info/dependency_links.txt +0 -0
  602. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci.egg-info/entry_points.txt +0 -0
  603. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci.egg-info/not-zip-safe +0 -0
  604. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/cumulusci.egg-info/top_level.txt +0 -0
  605. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/Makefile +0 -0
  606. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/diagram/img/image1.png +0 -0
  607. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/diagram/img/image12.png +0 -0
  608. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/diagram/img/image15.png +0 -0
  609. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/diagram/img/image17.png +0 -0
  610. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/diagram/img/image3.png +0 -0
  611. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/cci_service_list.png +0 -0
  612. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/cumulus_ci_workflow.png +0 -0
  613. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/env-var.png +0 -0
  614. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/env-var2.png +0 -0
  615. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/github-action-manual-trigger.png +0 -0
  616. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/github-commit_status_error.png +0 -0
  617. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/github-commit_status_pass.png +0 -0
  618. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/github-creating_a_uat_release.png +0 -0
  619. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/github-environment-packaging.png +0 -0
  620. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/github-organization-secret.png +0 -0
  621. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/github-repository-secret.png +0 -0
  622. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/github_checks.png +0 -0
  623. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/github_personal_access_token_scopes.png +0 -0
  624. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/github_secrets.png +0 -0
  625. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/github_workflow.png +0 -0
  626. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/locate_elements_screenshot.png +0 -0
  627. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/pipx.png +0 -0
  628. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/robot_log_screenshot.png +0 -0
  629. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/robot_toggled_results_screenshot.png +0 -0
  630. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/salesforce-org-process.png +0 -0
  631. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/service-list.png +0 -0
  632. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/skipping_task.png +0 -0
  633. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/windows_python.png +0 -0
  634. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/images/windows_python_success.png +0 -0
  635. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/docs/make.bat +0 -0
  636. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/pyproject.toml +0 -0
  637. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/setup.cfg +0 -0
  638. {cumulusci-3.65.0.dev1 → cumulusci-3.66.0.dev1}/setup.py +0 -0
@@ -2,6 +2,14 @@
2
2
  History
3
3
  =======
4
4
 
5
+ 3.65.0 (2022-09-16)
6
+ -------------------
7
+
8
+ Changes 🎉
9
+ ~~~~~~~~~~
10
+
11
+ * Improve logging and add error handling for Vlocity tasks by @prescod in (#3357)
12
+
5
13
  3.64.0 (2022-08-18)
6
14
  -------------------
7
15
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cumulusci
3
- Version: 3.65.0.dev1
3
+ Version: 3.66.0.dev1
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,6 +66,14 @@ Description: =========
66
66
  History
67
67
  =======
68
68
 
69
+ 3.65.0 (2022-09-16)
70
+ -------------------
71
+
72
+ Changes 🎉
73
+ ~~~~~~~~~~
74
+
75
+ * Improve logging and add error handling for Vlocity tasks by @prescod in (#3357)
76
+
69
77
  3.64.0 (2022-08-18)
70
78
  -------------------
71
79
 
@@ -183,8 +183,24 @@ def display_release_notes_link(latest_version: str) -> None:
183
183
  )
184
184
 
185
185
 
186
+ def version_info_wrapper(
187
+ ctx: click.Context, param: click.Parameter, value: bool
188
+ ) -> None:
189
+ if not value:
190
+ return
191
+ show_version_info()
192
+ ctx.exit()
193
+
194
+
186
195
  @click.group("main", help="")
187
- @click.version_option(show_version_info, message="")
196
+ @click.option( # based on https://click.palletsprojects.com/en/8.1.x/options/#callbacks-and-eager-options
197
+ "--version",
198
+ is_flag=True,
199
+ expose_value=False,
200
+ is_eager=True,
201
+ help="Show the version and exit.",
202
+ callback=version_info_wrapper,
203
+ )
188
204
  def cli():
189
205
  """Top-level `click` command group."""
190
206
 
@@ -514,3 +514,28 @@ def mock_validate_debug(value):
514
514
  assert bool(self.debug_mode) == bool(value)
515
515
 
516
516
  return _run_task
517
+
518
+
519
+ @mock.patch("cumulusci.cli.cci.tee_stdout_stderr")
520
+ @mock.patch("cumulusci.cli.cci.get_tempfile_logger")
521
+ @mock.patch("cumulusci.cli.cci.init_logger")
522
+ @mock.patch("cumulusci.cli.cci.check_latest_version")
523
+ @mock.patch("cumulusci.cli.cci.CliRuntime")
524
+ @mock.patch("cumulusci.cli.cci.show_version_info")
525
+ def test_dash_dash_version(
526
+ show_version_info,
527
+ CliRuntime,
528
+ check_latest_version,
529
+ init_logger,
530
+ get_tempfile_logger,
531
+ tee,
532
+ ):
533
+ get_tempfile_logger.return_value = mock.Mock(), "tempfile.log"
534
+ cci.main(["cci", "--help"])
535
+ assert len(show_version_info.mock_calls) == 0
536
+
537
+ cci.main(["cci", "version"])
538
+ assert len(show_version_info.mock_calls) == 1
539
+
540
+ cci.main(["cci", "--version"])
541
+ assert len(show_version_info.mock_calls) == 2
@@ -552,6 +552,10 @@ tasks:
552
552
  class_path: cumulusci.tasks.metadata_etl.SetDuplicateRuleStatus
553
553
  options:
554
554
  namespace_inject: $project_config.project__package__namespace
555
+ set_object_settings:
556
+ description: Enable and disable object level settings on standard and custom objects
557
+ class_path: cumulusci.tasks.metadata_etl.SetObjectSettings
558
+ group: Metadata Transformations
555
559
  set_organization_wide_defaults:
556
560
  group: Metadata Transformations
557
561
  description: Sets the Organization-Wide Defaults for specific sObjects, and waits for sharing recalculation to complete.
@@ -134,17 +134,25 @@ Open Test Browser Firefox
134
134
  [Documentation] Opens a Firefox browser window and navigates to the org
135
135
  ... This keyword isn't normally called directly by a test. It is used
136
136
  ... by the `Open Test Browser` keyword.
137
+ ...
138
+ ... The firefox profile is set to accept all cookies.
137
139
 
138
140
  [Arguments] ${login_url} ${alias}=${NONE}
139
141
  Open Browser ${login_url} firefox alias=${alias}
142
+ # http://kb.mozillazine.org/Network.cookie.cookieBehavior
143
+ ... ff_profile_dir=set_preference("network.cookie.cookieBehavior", 0)
140
144
 
141
145
  Open Test Browser Headless Firefox
142
146
  [Documentation] Opens the firefox browser in headless mode
143
147
  ... This keyword isn't normally called directly by a test. It is used
144
148
  ... by the `Open Test Browser` keyword.
149
+ ...
150
+ ... The firefox profile is set to accept all cookies.
145
151
 
146
152
  [Arguments] ${login_url} ${alias}=${NONE}
147
153
  Open Browser ${login_url} headlessfirefox alias=${alias}
154
+ # http://kb.mozillazine.org/Network.cookie.cookieBehavior
155
+ ... ff_profile_dir=set_preference("network.cookie.cookieBehavior", 0)
148
156
 
149
157
  Get Chrome Options
150
158
  [Documentation]
@@ -4,7 +4,10 @@ from Browser import SupportedBrowsers
4
4
 
5
5
  from cumulusci.robotframework.base_library import BaseLibrary
6
6
  from cumulusci.robotframework.faker_mixin import FakerMixin
7
- from cumulusci.robotframework.utils import WAIT_FOR_AURA_SCRIPT
7
+ from cumulusci.robotframework.utils import (
8
+ WAIT_FOR_AURA_SCRIPT,
9
+ capture_screenshot_on_error,
10
+ )
8
11
 
9
12
 
10
13
  class SalesforcePlaywright(FakerMixin, BaseLibrary):
@@ -88,10 +91,6 @@ class SalesforcePlaywright(FakerMixin, BaseLibrary):
88
91
  else self.cumulusci.login_url()
89
92
  )
90
93
 
91
- # browser's (or robot's?) automatic type conversion doesn't
92
- # seem to work when calling the function directly, so we have
93
- # to pass the enum rather than string representation of the
94
- # browser. _sigh_
95
94
  if record_video:
96
95
  # ugh. the "dir" value must be non-empty, and will be treated as
97
96
  # a folder name under the browser/video folder. using "../video"
@@ -106,10 +105,10 @@ class SalesforcePlaywright(FakerMixin, BaseLibrary):
106
105
  )
107
106
  page_details = self.browser.new_page(login_url)
108
107
 
109
- self.browser.wait_until_network_is_idle()
110
-
108
+ self.wait_until_loading_is_complete()
111
109
  return browser_id, context_id, page_details
112
110
 
111
+ @capture_screenshot_on_error
113
112
  def wait_until_loading_is_complete(self, locator=None):
114
113
  """Wait for a lightning page to load.
115
114
 
@@ -127,14 +126,14 @@ class SalesforcePlaywright(FakerMixin, BaseLibrary):
127
126
  if locator is None
128
127
  else locator
129
128
  )
129
+ self.browser.get_element(locator)
130
+ self.browser.execute_javascript(function=WAIT_FOR_AURA_SCRIPT)
131
+
132
+ # this seems to fail once in a while for an unknown reason, so we'll
133
+ # try twice. This seems to be more effective than calling the
134
+ # function once and waiting 30 seconds.
130
135
  try:
131
- self.browser.get_element(locator)
132
- self.browser.execute_javascript(function=WAIT_FOR_AURA_SCRIPT)
133
- self.browser.wait_until_network_is_idle()
134
-
135
- except Exception:
136
- try:
137
- self.browser.take_screenshot()
138
- except Exception as e:
139
- self.builtin.warn("unable to capture screenshot: {}".format(str(e)))
140
- raise
136
+ self.browser.wait_until_network_is_idle("15 seconds")
137
+ except Exception as e:
138
+ self.builtin.log(f"caught error waiting for idle: {e}", "WARN")
139
+ self.browser.wait_until_network_is_idle("15 seconds")
@@ -194,18 +194,16 @@ class LightningLookupHandler(BaseFormHandler):
194
194
  tags = ["lightning-lookup", "lightning-grouped-combobox"]
195
195
 
196
196
  def set(self, value):
197
- wait = 5
197
+ wait = 10
198
198
  # I wonder if I should/could anchor this to the element
199
199
  # instead of searching the whole document?
200
- value_locator = f'//div[@role="listbox"]//*[.="{value}"]'
200
+ value_locator = f'//lightning-base-combobox-formatted-text[@title="{value}"]'
201
201
  self.element.click()
202
202
  self.input_element.send_keys(value)
203
203
  try:
204
204
  self.selenium.wait_until_element_is_visible(value_locator, wait)
205
205
  self.selenium.click_element(value_locator)
206
206
  except Exception:
207
- # *sigh* this still fails randomly even though
208
- # I can see the dadgum item in the dropdown.
209
207
  raise TimeoutException(
210
208
  f"Lookup value '{value}' for '{self.locator}' not found after {wait} seconds"
211
209
  )
@@ -124,9 +124,10 @@ Non-lightning based form - radiobutton
124
124
  [Documentation] Verify we can set a plain non-lightning radiobutton
125
125
 
126
126
  [Setup] Run keywords
127
- ... Skip if "firefox" in $browser
128
- ... AND Go to My Email Settings
129
- ... AND Select frame //div[@class="setupcontent"]//iframe
127
+ ... Go to My Email Settings
128
+ ... AND Select frame //div[@class="setupcontent"]//iframe
129
+ ... AND Select radio button use_external_email 1
130
+ ... AND Radio button should be set to use_external_email 1
130
131
  [Teardown] Unselect frame
131
132
 
132
133
  # The settings page is just about the only page I could find
@@ -134,9 +135,6 @@ Non-lightning based form - radiobutton
134
135
  # Thankfully, I can use built-in keywords to validate that
135
136
  # the radiobuttons have actually bet set.
136
137
 
137
- # make sure it is set to 1
138
- Select radio button use_external_email 1
139
-
140
138
  # then try to use our keyword to set it
141
139
  Input form data
142
140
  ... Send through Salesforce selected
@@ -14,7 +14,13 @@ Create Test Data
14
14
  [Documentation]
15
15
  ... Create contacts used by tests in this suite
16
16
 
17
- # First, delete all existing contacts
17
+ # Delete all cases, in case they are holding on to some contacts
18
+ ${records}= Salesforce Query Case
19
+ FOR ${record} IN @{records}
20
+ Salesforce Delete Case ${record['Id']}
21
+ END
22
+
23
+ # Next, delete all existing contacts
18
24
  ${records}= Salesforce Query Contact
19
25
  FOR ${record} IN @{records}
20
26
  Salesforce Delete Contact ${record['Id']}
@@ -38,7 +38,6 @@ Navigate To The Object Manager page For Specified Object
38
38
  Create Custom Lookup Field Using Object Manager
39
39
  [Documentation] To test the ability of creating a custom lookup field using object manager and verify field got created
40
40
 
41
- Skip if "firefox" in $browser
42
41
  Create Custom Field In Object Manager
43
42
  ... Object=Contact
44
43
  ... Field_Type=Lookup
@@ -52,7 +51,6 @@ Create Custom Lookup Field Using Object Manager
52
51
  Create Custom Text Field Using Object Manager
53
52
  [Documentation] To test the ability of creating a custom text field using object manager and verify field got created
54
53
 
55
- Skip if "firefox" in $browser
56
54
  Create Custom Field In Object Manager
57
55
  ... Object=Contact
58
56
  ... Field_Type=Text
@@ -66,7 +64,6 @@ Create Custom Text Field Using Object Manager
66
64
  Create Custom Currency Field Using Object Manager
67
65
  [Documentation] To test the ability of creating a custom currency field and verify field got created
68
66
 
69
- Skip if "firefox" in $browser
70
67
  Create Custom Field In Object Manager
71
68
  ... Object=Account
72
69
  ... Field_Type=Currency
@@ -17,7 +17,7 @@ Go to user profile
17
17
 
18
18
  Go to contacts home
19
19
  Click button:has-text("App Launcher")
20
- Fill text input[placeholder='Search apps and items...'] Contacts
20
+ Type text input[placeholder='Search apps and items...'] Contacts
21
21
  Click one-app-launcher-menu-item:has-text("Contacts")
22
22
 
23
23
  Wait until network is idle
@@ -6,11 +6,21 @@ from unittest import mock
6
6
  import cumulusci.robotframework.utils as robot_utils
7
7
  from cumulusci.utils import touch
8
8
 
9
+ mock_SeleniumLibrary = mock.Mock()
10
+
11
+
12
+ class MockBuiltIn:
13
+ get_library_instance = mock.Mock(
14
+ return_value={"SeleniumLibrary": mock_SeleniumLibrary}
15
+ )
16
+
17
+
18
+ robot_utils.BuiltIn = MockBuiltIn
19
+
9
20
 
10
21
  class TestRobotframeworkUtils:
11
22
  def setup_method(self):
12
- robot_utils.BuiltIn = mock.Mock(name="BuiltIn")
13
- self.mock_selib = robot_utils.BuiltIn().get_library_instance("SeleniumLibrary")
23
+ mock_SeleniumLibrary.reset_mock()
14
24
 
15
25
  def test_screenshot_decorator_fail(self):
16
26
  """Verify that the decorator will capture a screenshot on keyword failure"""
@@ -23,7 +33,7 @@ class TestRobotframeworkUtils:
23
33
  example_function()
24
34
  except Exception:
25
35
  pass
26
- self.mock_selib.failure_occurred.assert_called_once()
36
+ mock_SeleniumLibrary.capture_page_screenshot.assert_called_once()
27
37
 
28
38
  def test_screenshot_decorator_pass(self):
29
39
  """Verify that decorator does NOT capture screenshot on keyword success"""
@@ -33,7 +43,8 @@ class TestRobotframeworkUtils:
33
43
  return True
34
44
 
35
45
  example_function()
36
- self.mock_selib.failure_occurred.assert_not_called()
46
+
47
+ mock_SeleniumLibrary.capture_page_screenshot.assert_not_called()
37
48
 
38
49
 
39
50
  class TestGetLocatorModule:
@@ -95,7 +95,7 @@ class RetryingSeleniumLibraryMixin(object):
95
95
  result = orig_execute(driver_command, params)
96
96
  except Exception:
97
97
  if driver_command != Command.SCREENSHOT:
98
- self.selenium.capture_page_screenshot()
98
+ safe_screenshot()
99
99
  if self.debug:
100
100
  self.selenium.log_source()
101
101
  raise
@@ -212,17 +212,17 @@ def selenium_retry(target=None, retry=True):
212
212
  def capture_screenshot_on_error(func):
213
213
  """Decorator for capturing a screenshot if a keyword throws an error
214
214
 
215
- The name is slightly misleading. While it was designed to capture a
216
- screenshot on error, it actually ties in to the same feature in
217
- SeleniumLibrary.
215
+ This decorator will work for both SeleniumLibrary and Browser.
218
216
 
219
- SeleniumLibrary lets you define any keyword to be run on error,
220
- though I doubt we would ever use it for anything other than to
221
- capture screenshots. However, if you do configure SeleniumLibrary
222
- to do something other than (or in addition to) capturing a
223
- screenshot, any keyword that uses this decorator will behave just
224
- like a SeleniumLibrary keyword.
217
+ If a screenshot cannot be taken for any reason, the screenshot error
218
+ will be logged before the original exception is re-raised.
225
219
 
220
+ For keywords using the Browser library, this will call the keyword
221
+ "Take screenshot".
222
+
223
+ For keywords using SeleniumLibrary, this decorator will call whatever
224
+ keyword SeleniumLibrary is configured to call on failure. Normally
225
+ that will be "Capture page screenshot".
226
226
  """
227
227
 
228
228
  @functools.wraps(func)
@@ -230,13 +230,28 @@ def capture_screenshot_on_error(func):
230
230
  try:
231
231
  func(*args, **kwargs)
232
232
  except Exception:
233
- selib = BuiltIn().get_library_instance("SeleniumLibrary")
234
- selib.failure_occurred()
233
+ safe_screenshot()
235
234
  raise
236
235
 
237
236
  return wrapper
238
237
 
239
238
 
239
+ def safe_screenshot():
240
+ """Take a screenshot, but log and then ignore errors if the screenshot fails
241
+
242
+ This function should work for both selenium and browser (playwright) libraries
243
+ """
244
+
245
+ libs = BuiltIn().get_library_instance(all=True)
246
+ try:
247
+ if "Browser" in libs:
248
+ libs["Browser"].take_screenshot()
249
+ elif "SeleniumLibrary" in libs:
250
+ libs["SeleniumLibrary"].capture_page_screenshot()
251
+ except Exception as e:
252
+ BuiltIn().log(f"unable to capture screenshot: {e}")
253
+
254
+
240
255
  def get_locator_module_name(version):
241
256
  """Return module name of locator file for the specified version
242
257
 
@@ -10,6 +10,10 @@ actionPlanTemplates:
10
10
  - type: ActionPlanTemplate
11
11
  class: MetadataFilenameParser
12
12
  extension: apt
13
+ aiApplicationConfigs:
14
+ - type: AIApplicationConfig
15
+ class: MetadataFilenameParser
16
+ extension: aiapplicationconfig
13
17
  analyticSnapshots:
14
18
  - type: AnalyticSnapshot
15
19
  class: MetadataFilenameParser
@@ -8,6 +8,7 @@ from cumulusci.tasks.metadata_etl.base import (
8
8
  )
9
9
  from cumulusci.tasks.metadata_etl.duplicate_rules import SetDuplicateRuleStatus
10
10
  from cumulusci.tasks.metadata_etl.layouts import AddRelatedLists
11
+ from cumulusci.tasks.metadata_etl.objects import SetObjectSettings
11
12
  from cumulusci.tasks.metadata_etl.permissions import AddPermissionSetPermissions
12
13
  from cumulusci.tasks.metadata_etl.value_sets import AddValueSetEntries
13
14
  from cumulusci.tasks.metadata_etl.sharing import SetOrgWideDefaults
@@ -20,6 +21,7 @@ flake8 = (
20
21
  AddRelatedLists,
21
22
  AddPermissionSetPermissions,
22
23
  AddValueSetEntries,
24
+ SetObjectSettings,
23
25
  SetOrgWideDefaults,
24
26
  MetadataOperation,
25
27
  SetDuplicateRuleStatus,
@@ -0,0 +1,68 @@
1
+ from cumulusci.core.exceptions import TaskOptionsError
2
+ from cumulusci.core.utils import process_list_arg
3
+ from cumulusci.tasks.metadata_etl import MetadataSingleEntityTransformTask
4
+ from cumulusci.utils.xml.metadata_tree import MetadataElement
5
+
6
+ OBJ_SETTINGS = [
7
+ "Activities",
8
+ "BulkApi",
9
+ "Feeds",
10
+ "History",
11
+ "Licensing",
12
+ "Reports",
13
+ "Search",
14
+ "Sharing",
15
+ "StreamingApi",
16
+ ]
17
+ OBJ_SETTINGS_STR = ", ".join(OBJ_SETTINGS)
18
+
19
+
20
+ class SetObjectSettings(MetadataSingleEntityTransformTask):
21
+ entity = "CustomObject"
22
+ task_options = {
23
+ "enable": {
24
+ "description": f"Array of object settings to enable. Uses the setting name. Available values: {OBJ_SETTINGS_STR}"
25
+ },
26
+ "disable": {
27
+ "description": f"Array of object settings to disable. Uses the setting name. Available values: {OBJ_SETTINGS_STR}"
28
+ },
29
+ **MetadataSingleEntityTransformTask.task_options,
30
+ }
31
+
32
+ def _init_options(self, kwargs):
33
+ super()._init_options(kwargs)
34
+ if not self.options.get("enable") and not self.options.get("disable"):
35
+ raise TaskOptionsError(
36
+ "You must provide values for either 'enable' or 'disable'"
37
+ )
38
+ self.options["enable"] = self._process_settings(self.options.get("enable"))
39
+ self.options["disable"] = self._process_settings(self.options.get("disable"))
40
+
41
+ def _process_settings(self, settings):
42
+ settings = process_list_arg(settings)
43
+ if settings is None:
44
+ settings = []
45
+ invalid = []
46
+ for setting in settings:
47
+ if setting not in OBJ_SETTINGS:
48
+ invalid.append(setting)
49
+ if invalid:
50
+ invalid_settings = ", ".join(invalid)
51
+ raise TaskOptionsError(
52
+ f"Invalid settings: {invalid_settings}. Valid settings are: {OBJ_SETTINGS_STR}"
53
+ )
54
+ return settings
55
+
56
+ def _transform_entity(self, metadata: MetadataElement, api_name: str):
57
+ for setting in self.options["enable"]:
58
+ self._apply_setting(metadata, setting, True)
59
+ for setting in self.options["disable"]:
60
+ self._apply_setting(metadata, setting, False)
61
+ return metadata
62
+
63
+ def _apply_setting(self, metadata: MetadataElement, setting: str, enable: bool):
64
+ name = f"enable{setting}"
65
+ elem = metadata.find(name)
66
+ if elem is None:
67
+ elem = metadata.append(name)
68
+ elem.text = "true" if enable else "false"