cumulusci-plus 5.0.15__tar.gz → 5.0.16__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.
Potentially problematic release.
This version of cumulusci-plus might be problematic. Click here for more details.
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/PKG-INFO +4 -4
- cumulusci_plus-5.0.16/cumulusci/__about__.py +1 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/cci.py +41 -5
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/dependencies/tests/test_dependencies.py +2 -5
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cumulusci.yml +4 -0
- cumulusci_plus-5.0.16/cumulusci/tasks/utility/env_management.py +157 -0
- cumulusci_plus-5.0.16/cumulusci/tasks/utility/tests/test_env_management.py +220 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/docs/history.md +66 -54
- cumulusci_plus-5.0.15/cumulusci/__about__.py +0 -1
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/.gitignore +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/AUTHORS.rst +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/LICENSE +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/README.md +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/__main__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/error.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/flow.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/logger.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/org.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/plan.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/project.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/robot.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/runtime.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/service.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/task.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/test_cci.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/test_error.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/test_flow.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/test_logger.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/test_org.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/test_plan.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/test_project.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/test_robot.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/test_runtime.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/test_service.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/test_task.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/test_ui.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/test_utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/tests/utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/ui.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/cli/utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/conftest.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/BaseConfig.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/BaseTaskFlowConfig.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/OrgConfig.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/ScratchOrgConfig.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/base_config.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/base_task_flow_config.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/marketing_cloud_service_config.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/oauth2_service_config.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/org_config.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/project_config.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/scratch_org_config.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/sfdx_org_config.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/tests/_test_config_backwards_compatibility.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/tests/test_config.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/tests/test_config_expensive.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/tests/test_config_util.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/universal_config.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/config/util.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/datasets.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/debug.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/dependencies/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/dependencies/base.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/dependencies/dependencies.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/dependencies/github.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/dependencies/github_resolvers.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/dependencies/resolvers.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/dependencies/tests/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/dependencies/tests/conftest.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/dependencies/tests/test_github.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/dependencies/tests/test_resolvers.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/dependencies/utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/enums.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/exceptions.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/flowrunner.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/github.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/keychain/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/keychain/base_project_keychain.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/keychain/encrypted_file_project_keychain.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/keychain/environment_project_keychain.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/keychain/serialization.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/keychain/subprocess_keychain.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/keychain/tests/conftest.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/keychain/tests/test_base_project_keychain.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/keychain/tests/test_encrypted_file_project_keychain.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/metadeploy/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/metadeploy/api.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/metadeploy/plans.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/metadeploy/tests/test_api.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/runtime.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/sfdx.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/source/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/source/github.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/source/local_folder.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/source_transforms/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/source_transforms/tests/test_transforms.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/source_transforms/transforms.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tasks.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/template_utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/cassettes/TestDatasetsE2E.test_datasets_e2e.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/cassettes/TestDatasetsE2E.test_datasets_extract_standard_objects.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/cassettes/TestDatasetsE2E.test_datasets_read_explicit_extract_declaration.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/fake_remote_repo/cumulusci.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/fake_remote_repo/tasks/directory/example_2.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/fake_remote_repo/tasks/example.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/fake_remote_repo_2/cumulusci.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/fake_remote_repo_2/tasks/example_3.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/test_datasets_e2e.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/test_exceptions.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/test_flowrunner.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/test_github.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/test_sfdx.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/test_source.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/test_tasks.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/test_utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/test_utils_merge_config.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/test_versions.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/untrusted_repo_child/cumulusci.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/untrusted_repo_child/tasks/untrusted_child.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/untrusted_repo_parent/cumulusci.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/untrusted_repo_parent/tasks/untrusted_parent.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/tests/yaml/global.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/core/versions.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/files/admin_profile.xml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/files/delete_excludes.txt +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/files/templates/project/README.md +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/files/templates/project/cumulusci.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/files/templates/project/dot-gitignore +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/files/templates/project/mapping.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/files/templates/project/scratch_def.json +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/oauth/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/oauth/client.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/oauth/exceptions.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/oauth/salesforce.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/oauth/tests/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/oauth/tests/cassettes/test_get_device_code.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/oauth/tests/cassettes/test_get_device_oauth_token.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/oauth/tests/test_client.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/oauth/tests/test_salesforce.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/plugins/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/plugins/plugin_base.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/plugins/plugin_loader.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/CumulusCI.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/CumulusCI.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/Performance.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/Salesforce.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/Salesforce.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/SalesforceAPI.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/SalesforcePlaywright.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/SalesforcePlaywright.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/base_library.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/faker_mixin.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/form_handlers.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/javascript/cci_init.js +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/javascript/cumulusci.js +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/locator_manager.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/locators_56.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/locators_57.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/pageobjects/BasePageObjects.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/pageobjects/ObjectManagerPageObject.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/pageobjects/PageObjectLibrary.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/pageobjects/PageObjects.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/pageobjects/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/pageobjects/baseobjects.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/perftests/short/collection_perf.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/CustomObjectTestPage.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/FooTestPage.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/cumulusci/base.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/cumulusci/bulkdata.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/cumulusci/communities.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/cumulusci/datagen.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/TestLibraryA.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/TestLibraryB.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/TestListener.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/api.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/browsers.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/classic.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/create_contact.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/faker.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/forms.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/label_locator.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/labels.html +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/locators.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/pageobjects/base_pageobjects.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/pageobjects/example_page_object.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/pageobjects/listing_page.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/pageobjects/objectmanager.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/pageobjects/pageobjects.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/performance.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/playwright/javascript_keywords.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/playwright/open_test_browser.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/playwright/playwright.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/playwright/ui.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/populate.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/test_testlistener.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/salesforce/ui.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/test_cumulusci_library.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/test_locator_manager.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/test_pageobjects.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/test_performance.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/test_salesforce.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/test_salesforce_locators.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/test_template_util.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/tests/test_utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/robotframework/utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/exceptions.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/filterable_objects.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/mc_soap_envelopes.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/metadata.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/org_schema.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/org_schema_models.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/package_install.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/package_zip.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/rest_deploy.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/retrieve_profile_api.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/soap_envelopes.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/tests/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/tests/metadata_test_strings.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/tests/test_metadata.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/tests/test_package_install.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/tests/test_package_zip.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/tests/test_rest_deploy.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/tests/test_retrieve_profile_api.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/tests/test_utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/salesforce_api/utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/schema/cumulusci.jsonschema.json +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/apex/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/apex/anon.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/apex/batch.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/apex/testrunner.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/apex/tests/cassettes/ManualEditTestApexIntegrationTests.test_run_tests__integration_test.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/apex/tests/test_apex_tasks.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/base_source_control_task.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/base_generate_data_task.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/dates.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/delete.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/extract.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/extract_dataset_utils/calculate_dependencies.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/extract_dataset_utils/extract_yml.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/extract_dataset_utils/hardcoded_default_declarations.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/extract_dataset_utils/synthesize_extract_declarations.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/extract_dataset_utils/tests/test_extract_yml.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/extract_dataset_utils/tests/test_synthesize_extract_declarations.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/factory_utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate_and_load_data.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate_and_load_data_from_yaml.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate_from_yaml.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate_mapping.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate_mapping_utils/dependency_map.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate_mapping_utils/extract_mapping_file_generator.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate_mapping_utils/generate_mapping_from_declarations.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate_mapping_utils/load_mapping_file_generator.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate_mapping_utils/mapping_generator_post_processes.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate_mapping_utils/mapping_transforms.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_generate_extract_mapping_from_declarations.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_generate_load_mapping_from_declarations.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_mapping_generator_post_processes.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/generate_mapping_utils/tests/test_mapping_transforms.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/load.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/mapping_parser.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/query_transformers.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/select_utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/snowfakery.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/snowfakery_utils/queue_manager.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/snowfakery_utils/snowfakery_run_until.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/snowfakery_utils/snowfakery_working_directory.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/snowfakery_utils/subtask_configurator.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/step.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestSelect.test_select_random_strategy.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestSelect.test_select_similarity_annoy_strategy.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestSelect.test_select_similarity_select_and_insert_strategy.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestSelect.test_select_similarity_select_and_insert_strategy_bulk.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestSelect.test_select_similarity_strategy.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestSelect.test_select_standard_strategy.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestSnowfakery.test_run_until_records_in_org__multiple_needed.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestSnowfakery.test_run_until_records_in_org__none_needed.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestSnowfakery.test_run_until_records_in_org__one_needed.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestSnowfakery.test_snowfakery_query_salesforce.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestUpdatesIntegrationTests.test_updates_task.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestUpsert.test_simple_upsert__rest.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestUpsert.test_upsert__rest.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestUpsert.test_upsert_complex_external_id_field__rest.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestUpsert.test_upsert_complex_external_id_field_rest__duplicate_error.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/cassettes/TestUpsert.test_upsert_complex_fields__bulk.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/dummy_data_factory.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/integration_test_utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping-oid.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_after.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_poly.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_poly_incomplete.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_poly_wrong.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_select.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_select_invalid_strategy.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_select_invalid_threshold__invalid_number.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_select_invalid_threshold__invalid_strategy.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_select_invalid_threshold__non_float.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_select_missing_priority_fields.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_select_no_priority_fields.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_simple.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_v1.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_v2.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_v3.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mapping_vanilla_sf.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/mock_data_factory_without_mapping.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/person_accounts.sql +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/person_accounts.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/person_accounts_minimal.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/recordtypes.sql +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/recordtypes.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/recordtypes_2.sql +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/recordtypes_2.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/recordtypes_with_ispersontype.sql +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/recordtypes_with_ispersontype.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/child/child2.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/child.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/gen_npsp_standard_objects.recipe.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/include_parent.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/npsp_standard_objects_macros.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/options.recipe.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/query_snowfakery.recipe.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/sf_standard_object_macros.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery.load.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery.recipe.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_2.load.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels.load.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels.recipe.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/simple_snowfakery_channels_2.load.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/unique_values.recipe.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/upsert.recipe.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/upsert_2.recipe.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/snowfakery/upsert_before.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_base_generate_data_tasks.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_dates.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_delete.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_extract.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_factory_utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_generate_and_load.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_generate_from_snowfakery_task.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_generatemapping.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_load.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_mapping_parser.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_query_db__joins_self_lookups.sql +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_query_db__joins_self_lookups.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_query_db_joins_lookups.sql +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_query_db_joins_lookups.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_query_db_joins_lookups_select.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_select.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_select_utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_snowfakery.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_step.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_updates.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_upsert.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/test_utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/testdata.db +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/testdata.sql +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/update_describe.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/update_person_accounts.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/tests/utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/update_data.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/upsert_utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/bulkdata/utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/command.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/connectedapp.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/create_package_version.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/datadictionary.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/dx_convert_from.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/github/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/github/base.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/github/commit_status.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/github/merge.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/github/publish.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/github/pull_request.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/github/release.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/github/release_report.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/github/tag.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/github/tests/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/github/tests/test_util.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/github/tests/test_vcs_migration.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/github/tests/util_github_api.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/github/util.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/api.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/base.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/deploy.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/get_user_info.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/mc_constants.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/tests/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/tests/conftest.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/tests/expected-payload.json +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/tests/test-mc-pkg.zip +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/tests/test_api.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/tests/test_api_soap_envelopes.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/tests/test_base.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/tests/test_deploy.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/tests/test_get_user_info.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/marketing_cloud/tests/validation-response.json +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/ee_src.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/managed_src.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/metadata_map.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/modify.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/package.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/tests/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/.hidden/.keep +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/destructiveChanges.xml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/package.xml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/package_install_uninstall.xml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/tests/package_metadata/namespaced_report_folder/reports/namespace__TestFolder/TestReport.report +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/tests/sample_package.xml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/tests/test_ee_src.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/tests/test_managed_src.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/tests/test_modify.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata/tests/test_package.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/base.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/duplicate_rules.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/field_sets.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/help_text.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/layouts.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/objects.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/permissions.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/picklists.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/remote_site_settings.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/sharing.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/tests/test_base.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/tests/test_duplicate_rules.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/tests/test_field_sets.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/tests/test_help_text.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/tests/test_ip_ranges.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/tests/test_layouts.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/tests/test_objects.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/tests/test_permissions.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/tests/test_picklists.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/tests/test_remote_site_settings.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/tests/test_sharing.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/tests/test_value_sets.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadata_etl/value_sets.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metadeploy.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/metaxml.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/dataset_load.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/licenses.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/packages.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/permsets.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/recordtypes.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/retrieve_tasks.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/settings.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/sobjects.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/tests/test_dataset_load.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/tests/test_licenses.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/tests/test_packages.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/tests/test_permset_preflights.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/tests/test_recordtypes.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/tests/test_retrieve_tasks.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/tests/test_settings.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/preflight/tests/test_sobjects.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/push/README.md +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/push/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/push/push_api.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/push/pushfails.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/push/tasks.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/push/tests/conftest.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/push/tests/test_push_api.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/push/tests/test_push_tasks.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/README.md +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/exceptions.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/generator.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/parser.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/provider.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/task.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/tests/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/tests/change_notes/full/example1.md +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/tests/change_notes/multi/1.txt +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/tests/change_notes/multi/2.txt +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/tests/change_notes/multi/3.txt +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/tests/change_notes/single/1.txt +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/tests/test_generator.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/tests/test_parser.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/tests/test_provider.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/tests/test_task.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/release_notes/tests/utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/debugger/DebugListener.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/debugger/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/debugger/model.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/debugger/ui.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/libdoc.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/robotframework.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/stylesheet.css +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/template.html +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/tests/TestLibrary.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/tests/TestPageObjects.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/tests/TestResource.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/tests/failing_tests.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/tests/performance.robot +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/tests/test_browser_proxies.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/tests/test_debugger.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/tests/test_robot_parallel.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/robotframework/tests/test_robotframework.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/BaseRetrieveMetadata.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/BaseSalesforceApiTask.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/BaseSalesforceMetadataApiTask.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/BaseSalesforceTask.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/BaseUninstallMetadata.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/CreateCommunity.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/CreatePackage.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/Deploy.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/DeployBundles.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/DescribeMetadataTypes.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/EnsureRecordTypes.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/GetInstalledPackages.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/ListCommunities.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/ListCommunityTemplates.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/PublishCommunity.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/RetrievePackaged.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/RetrieveReportsAndDashboards.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/RetrieveUnpackaged.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/SOQLQuery.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/UninstallLocal.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/UninstallLocalBundles.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/UninstallLocalNamespacedBundles.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/UninstallPackage.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/UninstallPackaged.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/UpdateAdminProfile.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/activate_flow.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/check_components.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/composite.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/create_permission_sets.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/custom_settings.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/custom_settings_wait.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/enable_prediction.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/insert_record.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/install_package_version.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/license_preflights.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/network_member_group.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/nonsourcetracking.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/org_settings.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/package_upload.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/profiles.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/promote_package_version.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/retrieve_profile.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/salesforce_files.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/sourcetracking.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_CreateCommunity.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_CreatePackage.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_Deploy.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_DeployBundles.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_EnsureRecordTypes.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_ListCommunities.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_ListCommunityTemplates.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_PackageUpload.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_ProfileGrantAllAccess.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_PublishCommunity.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_RetrievePackaged.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_RetrieveReportsAndDashboards.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_RetrieveUnpackaged.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_SOQLQuery.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_UninstallLocal.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_UninstallLocalBundles.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_UninstallLocalNamespacedBundles.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_UninstallPackage.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_UninstallPackaged.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_UninstallPackagedIncremental.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_activate_flow.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_base_tasks.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_check_components.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_composite.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_create_permission_sets.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_custom_settings.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_custom_settings_wait.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_describemetadatatypes.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_enable_prediction.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_insert_record.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_install_package_version.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_network_member_group.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_nonsourcetracking.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_org_settings.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_profiles.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_retrieve_profile.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_salesforce_files.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_sourcetracking.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_trigger_handlers.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/test_update_dependencies.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/tests/util.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/trigger_handlers.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/uninstall_packaged_incremental.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/update_dependencies.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/update_profile.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/users/permsets.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/users/photos.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/users/tests/photo.mock.txt +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/users/tests/test_permsets.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/salesforce/users/tests/test_photos.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/sample_data/capture_sample_data.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/sample_data/load_sample_data.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/sample_data/test_capture_sample_data.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/sample_data/test_load_sample_data.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/sfdx.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/tests/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/tests/conftest.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/tests/test_command.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/tests/test_connectedapp.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/tests/test_create_package_version.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/tests/test_datadictionary.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/tests/test_dx_convert_from.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/tests/test_metadeploy.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/tests/test_metaxml.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/tests/test_promote_package_version.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/tests/test_pushfails.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/tests/test_salesforce.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/tests/test_sfdx.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/tests/test_util.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/util.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/commit_status.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/create_commit_status.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/download_extract.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/merge.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/publish.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/pull_request.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/release.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/release_report.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/tag.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/tests/github/test_commit_status.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/tests/github/test_download_extract.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/tests/github/test_merge.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/tests/github/test_publish.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/tests/github/test_pull_request.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/tests/github/test_release.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/tests/github/test_release_report.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vcs/tests/github/test_tag.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vlocity/exceptions.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vlocity/tests/test_vlocity.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tasks/vlocity/vlocity.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/cassettes/GET_sobjects_Account_PersonAccount_describe.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/cassettes/TestIntegrationInfrastructure.test_integration_tests.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/pytest_plugins/pytest_sf_orgconnect.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/pytest_plugins/pytest_sf_vcr.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/pytest_plugins/pytest_sf_vcr_serializer.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/pytest_plugins/pytest_typeguard.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/pytest_plugins/test_vcr_string_compressor.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/pytest_plugins/vcr_string_compressor.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/shared_cassettes/GET_sobjects_Account_describe.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/shared_cassettes/GET_sobjects_Case_describe.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/shared_cassettes/GET_sobjects_Contact_describe.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/shared_cassettes/GET_sobjects_Custom__c_describe.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/shared_cassettes/GET_sobjects_Event_describe.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/shared_cassettes/GET_sobjects_Global_describe.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/shared_cassettes/GET_sobjects_Lead_describe.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/shared_cassettes/GET_sobjects_OpportunityContactRole_describe.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/shared_cassettes/GET_sobjects_Opportunity_describe.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/shared_cassettes/GET_sobjects_Organization.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/shared_cassettes/vcr_string_templates/batchInfoList_xml.tpl +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/shared_cassettes/vcr_string_templates/batchInfo_xml.tpl +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/shared_cassettes/vcr_string_templates/jobInfo_insert_xml.tpl +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/shared_cassettes/vcr_string_templates/jobInfo_upsert_xml.tpl +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/test_entry_points.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/test_integration_infrastructure.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/test_main.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/test_schema.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/test_utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/test_vcr_serializer.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/uncompressed_cassette.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/tests/util.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/classutils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/collections.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/deprecation.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/encryption.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/fileutils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/git.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/http/multi_request.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/http/requests_utils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/http/tests/cassettes/ManualEditTestCompositeParallelSalesforce.test_http_headers.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/http/tests/cassettes/TestCompositeParallelSalesforce.test_composite_parallel_salesforce.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/http/tests/cassettes/TestCompositeParallelSalesforce.test_errors.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/http/tests/cassettes/TestCompositeParallelSalesforce.test_reference_ids.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/http/tests/test_multi_request.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/iterators.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/logging.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/metaprogramming.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/options.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/parallel/queries_in_parallel/run_queries_in_parallel.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/parallel/queries_in_parallel/tests/test_run_queries_in_parallel.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/parallel/task_worker_queues/parallel_worker.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/parallel/task_worker_queues/parallel_worker_queue.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/parallel/task_worker_queues/tests/test_parallel_worker.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/salesforce/count_sobjects.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/salesforce/soql.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/salesforce/tests/cassettes/ManualEdit_TestCountSObjects.test_count_sobjects__network_errors.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/salesforce/tests/cassettes/TestCountSObjects.test_count_sobjects__errors.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/salesforce/tests/cassettes/TestCountSObjects.test_count_sobjects_simple.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/salesforce/tests/test_count_sobjects.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/salesforce/tests/test_soql.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/tests/cassettes/ManualEditTestDescribeOrg.test_minimal_schema.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/tests/cassettes/ManualEdit_test_describe_to_sql.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/tests/test_fileutils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/tests/test_git.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/tests/test_logging.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/tests/test_option_parsing.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/tests/test_org_schema.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/tests/test_org_schema_models.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/tests/test_waiting.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/version_strings.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/waiting.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/xml/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/xml/metadata_tree.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/xml/robot_xml.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/xml/salesforce_encoding.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/xml/test/test_metadata_tree.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/xml/test/test_salesforce_encoding.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/yaml/cumulusci_yml.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/yaml/model_parser.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/yaml/safer_loader.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/yaml/tests/bad_cci.yml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/yaml/tests/cassettes/TestCumulusciYml.test_validate_url__with_errors.yaml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/yaml/tests/test_cumulusci_yml.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/yaml/tests/test_model_parser.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/yaml/tests/test_safer_loader.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/utils/ziputils.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/base.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/bootstrap.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/github/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/github/adapter.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/github/release_notes/generator.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/github/release_notes/parser.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/github/release_notes/provider.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/github/service.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/github/tests/test_adapter.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/github/tests/test_service.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/models.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/tests/conftest.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/tests/dummy_service.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/tests/test_vcs_base.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/tests/test_vcs_bootstrap.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/utils/__init__.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/cumulusci/vcs/vcs_source.py +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/docs/adrs/README.md +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/docs/diagram/README.md +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/pyproject.toml +0 -0
- {cumulusci_plus-5.0.15 → cumulusci_plus-5.0.16}/robot/CumulusCI/javascript/README.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cumulusci-plus
|
|
3
|
-
Version: 5.0.
|
|
3
|
+
Version: 5.0.16
|
|
4
4
|
Summary: Build and release tools for Salesforce developers
|
|
5
5
|
Project-URL: Homepage, https://github.com/jorgesolebur/CumulusCI
|
|
6
6
|
Project-URL: Changelog, https://cumulusci.readthedocs.io/en/stable/history.html
|
|
@@ -127,7 +127,7 @@ license](https://github.com/SFDO-Tooling/CumulusCI/blob/main/LICENSE)
|
|
|
127
127
|
and is not covered by the Salesforce Master Subscription Agreement.
|
|
128
128
|
|
|
129
129
|
<!-- Changelog -->
|
|
130
|
-
## v5.0.
|
|
130
|
+
## v5.0.16 (2025-08-20)
|
|
131
131
|
|
|
132
132
|
<!-- Release notes generated using configuration in .github/release.yml at main -->
|
|
133
133
|
|
|
@@ -135,6 +135,6 @@ and is not covered by the Salesforce Master Subscription Agreement.
|
|
|
135
135
|
|
|
136
136
|
### Changes
|
|
137
137
|
|
|
138
|
-
- Add
|
|
138
|
+
- Add configure_env task and fix failing test classes. by [@rupeshjSFDC](https://github.com/rupeshjSFDC) in [#57](https://github.com/jorgesolebur/CumulusCI/pull/57)
|
|
139
139
|
|
|
140
|
-
**Full Changelog**: https://github.com/jorgesolebur/CumulusCI/compare/v5.0.
|
|
140
|
+
**Full Changelog**: https://github.com/jorgesolebur/CumulusCI/compare/v5.0.15...v5.0.16
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "5.0.16"
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import code
|
|
2
2
|
import contextlib
|
|
3
|
+
import os
|
|
3
4
|
import pdb
|
|
4
5
|
import runpy
|
|
5
6
|
import signal
|
|
@@ -79,8 +80,33 @@ def _cleanup_on_signal(signum):
|
|
|
79
80
|
except Exception as e:
|
|
80
81
|
console.print(f"[red]Error during cleanup: {e}[/red]")
|
|
81
82
|
|
|
82
|
-
#
|
|
83
|
-
|
|
83
|
+
# Terminate child processes in the process group
|
|
84
|
+
try:
|
|
85
|
+
console.print("[yellow]Terminating child processes...[/yellow]")
|
|
86
|
+
|
|
87
|
+
# Temporarily ignore the signal to prevent recursion
|
|
88
|
+
old_handler = signal.signal(signum, signal.SIG_IGN)
|
|
89
|
+
|
|
90
|
+
try:
|
|
91
|
+
# Only use process group termination on Unix systems
|
|
92
|
+
if hasattr(os, "getpgrp") and hasattr(os, "killpg"):
|
|
93
|
+
pgrp = os.getpgrp()
|
|
94
|
+
# Send signal to all processes in the group except ourselves
|
|
95
|
+
os.killpg(pgrp, signum)
|
|
96
|
+
else:
|
|
97
|
+
# On Windows, we can't use process groups, so just log the attempt
|
|
98
|
+
console.print(
|
|
99
|
+
"[yellow]Process group termination not supported on this platform[/yellow]"
|
|
100
|
+
)
|
|
101
|
+
finally:
|
|
102
|
+
# Restore the original signal handler
|
|
103
|
+
signal.signal(signum, old_handler)
|
|
104
|
+
|
|
105
|
+
except ProcessLookupError:
|
|
106
|
+
# Process group may not exist or may already be terminated
|
|
107
|
+
pass
|
|
108
|
+
except Exception as e:
|
|
109
|
+
console.print(f"[red]Warning: Error terminating child processes: {e}[/red]")
|
|
84
110
|
|
|
85
111
|
# Exit with appropriate failure code
|
|
86
112
|
exit_code = 143 if signum == signal.SIGTERM else 130 # Standard exit codes
|
|
@@ -104,8 +130,15 @@ def main(args=None):
|
|
|
104
130
|
"""
|
|
105
131
|
global _exit_stack
|
|
106
132
|
|
|
107
|
-
#
|
|
108
|
-
#
|
|
133
|
+
# Create a new process group so we can terminate all child processes
|
|
134
|
+
# when we receive a termination signal
|
|
135
|
+
try:
|
|
136
|
+
if hasattr(os, "setpgrp"):
|
|
137
|
+
# On Unix systems, create a new process group
|
|
138
|
+
os.setpgrp()
|
|
139
|
+
except Exception:
|
|
140
|
+
# On Windows or if setpgrp fails, continue without process group
|
|
141
|
+
pass
|
|
109
142
|
|
|
110
143
|
# Set up signal handlers for graceful termination
|
|
111
144
|
signal.signal(signal.SIGTERM, _signal_handler)
|
|
@@ -152,7 +185,10 @@ def main(args=None):
|
|
|
152
185
|
try:
|
|
153
186
|
cli(args[1:], standalone_mode=False, obj=runtime)
|
|
154
187
|
except click.Abort: # Keyboard interrupt
|
|
155
|
-
|
|
188
|
+
if _exit_stack:
|
|
189
|
+
_exit_stack.close()
|
|
190
|
+
Console(stderr=True).print("[yellow]Aborted![/yellow]")
|
|
191
|
+
sys.exit(1)
|
|
156
192
|
except Exception as e:
|
|
157
193
|
if debug:
|
|
158
194
|
console = Console()
|
|
@@ -1018,6 +1018,7 @@ class TestUnmanagedVcsDependencyFlow:
|
|
|
1018
1018
|
# Setup flow config mock
|
|
1019
1019
|
mock_flow_config = mock.Mock()
|
|
1020
1020
|
mock_project_config.get_flow.return_value = mock_flow_config
|
|
1021
|
+
mock_project_config.list_tasks.return_value = []
|
|
1021
1022
|
|
|
1022
1023
|
# Setup coordinator mock
|
|
1023
1024
|
mock_coordinator_instance = mock.Mock()
|
|
@@ -1076,11 +1077,7 @@ class TestUnmanagedVcsDependencyFlow:
|
|
|
1076
1077
|
assert args[0] == mock_project_config
|
|
1077
1078
|
assert args[1] == mock_flow_config
|
|
1078
1079
|
assert kwargs["name"] == "install_deps"
|
|
1079
|
-
assert kwargs["options"] == {
|
|
1080
|
-
"unmanaged": True, # _get_unmanaged should return True for empty installed_packages
|
|
1081
|
-
"namespace_inject": "test_ns",
|
|
1082
|
-
"namespace_strip": "old_ns",
|
|
1083
|
-
}
|
|
1080
|
+
assert kwargs["options"] == {}
|
|
1084
1081
|
assert kwargs["skip"] is None
|
|
1085
1082
|
assert isinstance(kwargs["callbacks"], type(flow_dep.callback_class()))
|
|
1086
1083
|
|
|
@@ -749,6 +749,10 @@ tasks:
|
|
|
749
749
|
options:
|
|
750
750
|
level: info
|
|
751
751
|
group: Utilities
|
|
752
|
+
configure_env:
|
|
753
|
+
description: Get or set environment variables.
|
|
754
|
+
class_path: cumulusci.tasks.utility.env_management.EnvManagement
|
|
755
|
+
group: Utilities
|
|
752
756
|
download_extract:
|
|
753
757
|
description: Downloads files and folders from a VCS repository.
|
|
754
758
|
class_path: cumulusci.tasks.vcs.download_extract.DownloadExtract
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import os
|
|
3
|
+
from datetime import date
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import Any, List, Optional
|
|
6
|
+
|
|
7
|
+
from pydantic import BaseModel, validator
|
|
8
|
+
|
|
9
|
+
from cumulusci.core.config import BaseProjectConfig, OrgConfig, TaskConfig
|
|
10
|
+
from cumulusci.core.tasks import BaseTask
|
|
11
|
+
from cumulusci.utils.options import CCIOptions, Field
|
|
12
|
+
from cumulusci.vcs.bootstrap import get_repo_from_url
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class EnvManagementOption(CCIOptions):
|
|
16
|
+
name: str = Field(
|
|
17
|
+
...,
|
|
18
|
+
description="The name of the environment variable to get the value from the environment",
|
|
19
|
+
)
|
|
20
|
+
default: Any = Field(
|
|
21
|
+
default=None,
|
|
22
|
+
description="The default value of the environment variable. Defaults to None",
|
|
23
|
+
)
|
|
24
|
+
datatype: str = Field(
|
|
25
|
+
default="string",
|
|
26
|
+
description="The datatype of the environment variable. Defaults to string. Valid values are string, bool, int, float, date, list, dict, path, directory, filename, vcs_branch",
|
|
27
|
+
)
|
|
28
|
+
set: bool = Field(
|
|
29
|
+
default=False,
|
|
30
|
+
description="If True, sets the value of the environment variable if it is not already set. Defaults to False",
|
|
31
|
+
)
|
|
32
|
+
url: str = Field(
|
|
33
|
+
default="",
|
|
34
|
+
description="The url of the repository to get the branch value from, Applicable only for vcs_branch datatype. Defaults to empty string",
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
@validator("datatype")
|
|
38
|
+
def validate_datatype(cls, v):
|
|
39
|
+
if v not in [
|
|
40
|
+
"string",
|
|
41
|
+
"bool",
|
|
42
|
+
"int",
|
|
43
|
+
"float",
|
|
44
|
+
"date",
|
|
45
|
+
"list",
|
|
46
|
+
"dict",
|
|
47
|
+
"path",
|
|
48
|
+
"directory",
|
|
49
|
+
"filename",
|
|
50
|
+
"vcs_branch",
|
|
51
|
+
]:
|
|
52
|
+
raise ValueError(f"Invalid datatype: {v}")
|
|
53
|
+
return v
|
|
54
|
+
|
|
55
|
+
def formated_value(
|
|
56
|
+
self,
|
|
57
|
+
project_config: Optional[BaseProjectConfig],
|
|
58
|
+
org_config: Optional[OrgConfig],
|
|
59
|
+
) -> tuple[Any, str]:
|
|
60
|
+
value = os.getenv(self.name, self.default)
|
|
61
|
+
datatype = self.datatype or "string"
|
|
62
|
+
|
|
63
|
+
try:
|
|
64
|
+
match datatype:
|
|
65
|
+
case "string":
|
|
66
|
+
return str(value), str(value)
|
|
67
|
+
case "bool":
|
|
68
|
+
v = DummyValidatorModel(b=value).b
|
|
69
|
+
return v, str(v)
|
|
70
|
+
case "int":
|
|
71
|
+
v = DummyValidatorModel(i=value).i
|
|
72
|
+
return v, str(v)
|
|
73
|
+
case "float":
|
|
74
|
+
v = DummyValidatorModel(f=value).f
|
|
75
|
+
return v, str(v)
|
|
76
|
+
case "date":
|
|
77
|
+
v = DummyValidatorModel(d=date.fromisoformat(str(value))).d
|
|
78
|
+
return v, str(v)
|
|
79
|
+
case "list":
|
|
80
|
+
v = value if isinstance(value, list) else value.split(",")
|
|
81
|
+
return v, str(v)
|
|
82
|
+
case "dict":
|
|
83
|
+
v = value if isinstance(value, dict) else json.loads(str(value))
|
|
84
|
+
return v, str(v)
|
|
85
|
+
case "path":
|
|
86
|
+
v = Path(str(value))
|
|
87
|
+
return v.absolute(), str(v.absolute())
|
|
88
|
+
case "directory":
|
|
89
|
+
v = Path(str(value)).parent.absolute()
|
|
90
|
+
return v, str(v.absolute())
|
|
91
|
+
case "filename":
|
|
92
|
+
v = Path(str(value)).name
|
|
93
|
+
return v, str(v)
|
|
94
|
+
case "vcs_branch":
|
|
95
|
+
task_config = TaskConfig({"options": {"url": self.url}})
|
|
96
|
+
task = VcsRemoteBranch(project_config, task_config, org_config)
|
|
97
|
+
result = task()
|
|
98
|
+
return result["remote_branch"], str(result["remote_branch"])
|
|
99
|
+
case _:
|
|
100
|
+
raise ValueError(f"Invalid datatype: {datatype}")
|
|
101
|
+
except Exception as e:
|
|
102
|
+
raise ValueError(
|
|
103
|
+
f"Formatting Error: {value} for datatype: {datatype} - {e}"
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
class DummyValidatorModel(BaseModel):
|
|
108
|
+
b: Optional[bool]
|
|
109
|
+
i: Optional[int]
|
|
110
|
+
f: Optional[float]
|
|
111
|
+
d: Optional[date]
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
class EnvManagement(BaseTask):
|
|
115
|
+
class Options(CCIOptions):
|
|
116
|
+
envs: List[EnvManagementOption] = Field(
|
|
117
|
+
default=[],
|
|
118
|
+
description="A list of environment variables definitions.",
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
parsed_options: Options
|
|
122
|
+
|
|
123
|
+
def _run_task(self):
|
|
124
|
+
self.return_values = {}
|
|
125
|
+
|
|
126
|
+
for env_option in self.parsed_options.envs:
|
|
127
|
+
self.return_values[env_option.name], str_value = env_option.formated_value(
|
|
128
|
+
self.project_config, self.org_config
|
|
129
|
+
)
|
|
130
|
+
if env_option.set and env_option.name not in os.environ:
|
|
131
|
+
os.environ[env_option.name] = str_value
|
|
132
|
+
|
|
133
|
+
return self.return_values
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
class VcsRemoteBranch(BaseTask):
|
|
137
|
+
class Options(CCIOptions):
|
|
138
|
+
url: str = Field(
|
|
139
|
+
...,
|
|
140
|
+
description="Gets if the remote branch name exist with the same name in the remote repository.",
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
parsed_options: Options
|
|
144
|
+
|
|
145
|
+
def _run_task(self):
|
|
146
|
+
self.return_values = {}
|
|
147
|
+
# Get current branch name.
|
|
148
|
+
local_branch = self.project_config.repo_branch
|
|
149
|
+
repo = get_repo_from_url(self.project_config, self.parsed_options.url)
|
|
150
|
+
|
|
151
|
+
try:
|
|
152
|
+
branch = repo.branch(local_branch)
|
|
153
|
+
self.return_values["remote_branch"] = branch.name
|
|
154
|
+
except Exception:
|
|
155
|
+
self.return_values["remote_branch"] = repo.default_branch
|
|
156
|
+
|
|
157
|
+
return self.return_values
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import unittest
|
|
3
|
+
from datetime import date
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from unittest.mock import Mock, patch
|
|
6
|
+
|
|
7
|
+
from cumulusci.core.config import TaskConfig
|
|
8
|
+
from cumulusci.tasks.utility.env_management import (
|
|
9
|
+
EnvManagement,
|
|
10
|
+
EnvManagementOption,
|
|
11
|
+
VcsRemoteBranch,
|
|
12
|
+
)
|
|
13
|
+
from cumulusci.tests.util import create_project_config
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class TestVcsRemoteBranch(unittest.TestCase):
|
|
17
|
+
def test_run_task_branch_exists(self):
|
|
18
|
+
project_config = create_project_config()
|
|
19
|
+
project_config.repo_info["branch"] = "feature/branch-1"
|
|
20
|
+
task_config = TaskConfig(
|
|
21
|
+
{"options": {"url": "https://github.com/TestOwner/TestRepo"}}
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
with patch(
|
|
25
|
+
"cumulusci.tasks.utility.env_management.get_repo_from_url"
|
|
26
|
+
) as get_repo_mock:
|
|
27
|
+
repo_mock = Mock()
|
|
28
|
+
branch_mock = Mock()
|
|
29
|
+
branch_mock.name = "feature/branch-1"
|
|
30
|
+
repo_mock.branch.return_value = branch_mock
|
|
31
|
+
get_repo_mock.return_value = repo_mock
|
|
32
|
+
|
|
33
|
+
task = VcsRemoteBranch(project_config, task_config)
|
|
34
|
+
task()
|
|
35
|
+
self.assertEqual(task.return_values["remote_branch"], "feature/branch-1")
|
|
36
|
+
repo_mock.branch.assert_called_once_with("feature/branch-1")
|
|
37
|
+
|
|
38
|
+
def test_run_task_branch_not_exist(self):
|
|
39
|
+
project_config = create_project_config()
|
|
40
|
+
project_config.repo_info["branch"] = "feature/branch-1"
|
|
41
|
+
task_config = TaskConfig(
|
|
42
|
+
{"options": {"url": "https://github.com/TestOwner/TestRepo"}}
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
with patch(
|
|
46
|
+
"cumulusci.tasks.utility.env_management.get_repo_from_url"
|
|
47
|
+
) as get_repo_mock:
|
|
48
|
+
repo_mock = Mock()
|
|
49
|
+
repo_mock.branch.side_effect = Exception("Branch not found")
|
|
50
|
+
repo_mock.default_branch = "main"
|
|
51
|
+
get_repo_mock.return_value = repo_mock
|
|
52
|
+
|
|
53
|
+
task = VcsRemoteBranch(project_config, task_config)
|
|
54
|
+
task()
|
|
55
|
+
self.assertEqual(task.return_values["remote_branch"], "main")
|
|
56
|
+
repo_mock.branch.assert_called_once_with("feature/branch-1")
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
class TestEnvManagement(unittest.TestCase):
|
|
60
|
+
@classmethod
|
|
61
|
+
def setUpClass(cls):
|
|
62
|
+
cls.project_config = create_project_config()
|
|
63
|
+
cls.org_config = Mock()
|
|
64
|
+
|
|
65
|
+
def test_init_options(self):
|
|
66
|
+
task_config = TaskConfig(
|
|
67
|
+
{
|
|
68
|
+
"options": {
|
|
69
|
+
"envs": [
|
|
70
|
+
{"name": "MY_VAR", "default": "default_val"},
|
|
71
|
+
{"name": "MY_BOOL", "datatype": "bool", "default": "true"},
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
)
|
|
76
|
+
task = EnvManagement(self.project_config, task_config)
|
|
77
|
+
self.assertEqual(len(task.parsed_options.envs), 2)
|
|
78
|
+
self.assertIsInstance(task.parsed_options.envs[0], EnvManagementOption)
|
|
79
|
+
|
|
80
|
+
@patch.dict(os.environ, {}, clear=True)
|
|
81
|
+
def test_run_task_get_values(self):
|
|
82
|
+
os.environ["MY_VAR"] = "env_val"
|
|
83
|
+
os.environ["MY_INT"] = "123"
|
|
84
|
+
os.environ["MY_DATE"] = "2023-10-26"
|
|
85
|
+
os.environ["MY_LIST"] = "a,b,c"
|
|
86
|
+
|
|
87
|
+
task_config = TaskConfig(
|
|
88
|
+
{
|
|
89
|
+
"options": {
|
|
90
|
+
"envs": [
|
|
91
|
+
{"name": "MY_VAR"},
|
|
92
|
+
{"name": "MY_INT", "datatype": "int"},
|
|
93
|
+
{"name": "MY_DATE", "datatype": "date"},
|
|
94
|
+
{"name": "MY_LIST", "datatype": "list"},
|
|
95
|
+
{"name": "NOT_SET", "default": "default_val"},
|
|
96
|
+
]
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
)
|
|
100
|
+
task = EnvManagement(self.project_config, task_config, self.org_config)
|
|
101
|
+
result = task()
|
|
102
|
+
|
|
103
|
+
self.assertEqual(
|
|
104
|
+
result,
|
|
105
|
+
{
|
|
106
|
+
"MY_VAR": "env_val",
|
|
107
|
+
"MY_INT": 123,
|
|
108
|
+
"MY_DATE": date(2023, 10, 26),
|
|
109
|
+
"MY_LIST": ["a", "b", "c"],
|
|
110
|
+
"NOT_SET": "default_val",
|
|
111
|
+
},
|
|
112
|
+
)
|
|
113
|
+
self.assertNotIn("NOT_SET", os.environ)
|
|
114
|
+
|
|
115
|
+
@patch.dict(os.environ, {}, clear=True)
|
|
116
|
+
def test_run_task_set_values(self):
|
|
117
|
+
os.environ["EXISTING_VAR"] = "original_value"
|
|
118
|
+
task_config = TaskConfig(
|
|
119
|
+
{
|
|
120
|
+
"options": {
|
|
121
|
+
"envs": [
|
|
122
|
+
{"name": "NEW_VAR", "default": "new_value", "set": True},
|
|
123
|
+
{
|
|
124
|
+
"name": "EXISTING_VAR",
|
|
125
|
+
"default": "new_default",
|
|
126
|
+
"set": True,
|
|
127
|
+
},
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
)
|
|
132
|
+
task = EnvManagement(self.project_config, task_config, self.org_config)
|
|
133
|
+
task()
|
|
134
|
+
|
|
135
|
+
self.assertEqual(os.environ.get("NEW_VAR"), "new_value")
|
|
136
|
+
self.assertEqual(os.environ.get("EXISTING_VAR"), "original_value")
|
|
137
|
+
|
|
138
|
+
def test_datatype_validation(self):
|
|
139
|
+
with self.assertRaises(ValueError):
|
|
140
|
+
EnvManagementOption(name="test", datatype="invalid")
|
|
141
|
+
|
|
142
|
+
@patch.dict(os.environ, {}, clear=True)
|
|
143
|
+
def _test_datatype_conversion(self, datatype, env_value, expected_value):
|
|
144
|
+
os.environ["TEST_VAR"] = str(env_value)
|
|
145
|
+
task_config = TaskConfig(
|
|
146
|
+
{"options": {"envs": [{"name": "TEST_VAR", "datatype": datatype}]}}
|
|
147
|
+
)
|
|
148
|
+
task = EnvManagement(self.project_config, task_config, self.org_config)
|
|
149
|
+
result = task()
|
|
150
|
+
self.assertEqual(result["TEST_VAR"], expected_value)
|
|
151
|
+
|
|
152
|
+
def test_datatypes(self):
|
|
153
|
+
test_cases = [
|
|
154
|
+
("string", "hello", "hello"),
|
|
155
|
+
("bool", "true", True),
|
|
156
|
+
("bool", "0", False),
|
|
157
|
+
("int", "42", 42),
|
|
158
|
+
("float", "3.14", 3.14),
|
|
159
|
+
("date", "2024-01-01", date(2024, 1, 1)),
|
|
160
|
+
("list", "one,two", ["one", "two"]),
|
|
161
|
+
("dict", '{"key": "value"}', {"key": "value"}),
|
|
162
|
+
("path", "/tmp/test", Path("/tmp/test").absolute()),
|
|
163
|
+
("directory", "/tmp/test/file.txt", Path("/tmp/test").absolute()),
|
|
164
|
+
("filename", "/tmp/test/file.txt", "file.txt"),
|
|
165
|
+
]
|
|
166
|
+
for datatype, env_value, expected_value in test_cases:
|
|
167
|
+
with self.subTest(datatype=datatype):
|
|
168
|
+
self._test_datatype_conversion(datatype, env_value, expected_value)
|
|
169
|
+
|
|
170
|
+
def test_formatting_error(self):
|
|
171
|
+
os.environ["TEST_VAR"] = "not-an-int"
|
|
172
|
+
task_config = TaskConfig(
|
|
173
|
+
{"options": {"envs": [{"name": "TEST_VAR", "datatype": "int"}]}}
|
|
174
|
+
)
|
|
175
|
+
task = EnvManagement(self.project_config, task_config, self.org_config)
|
|
176
|
+
with self.assertRaises(ValueError):
|
|
177
|
+
task()
|
|
178
|
+
|
|
179
|
+
@patch("cumulusci.tasks.utility.env_management.VcsRemoteBranch")
|
|
180
|
+
def test_vcs_branch_datatype(self, vcs_mock):
|
|
181
|
+
os.environ["TEST_VAR"] = "" # vcs_branch doesn't use env var
|
|
182
|
+
|
|
183
|
+
vcs_instance_mock = vcs_mock.return_value
|
|
184
|
+
vcs_instance_mock.return_value = {"remote_branch": "my-feature-branch"}
|
|
185
|
+
|
|
186
|
+
task_config = TaskConfig(
|
|
187
|
+
{
|
|
188
|
+
"options": {
|
|
189
|
+
"envs": [
|
|
190
|
+
{
|
|
191
|
+
"name": "VCS_BRANCH",
|
|
192
|
+
"datatype": "vcs_branch",
|
|
193
|
+
"url": "https://github.com/TestOwner/TestRepo",
|
|
194
|
+
}
|
|
195
|
+
]
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
)
|
|
199
|
+
task = EnvManagement(self.project_config, task_config, self.org_config)
|
|
200
|
+
result = task()
|
|
201
|
+
|
|
202
|
+
self.assertEqual(result["VCS_BRANCH"], "my-feature-branch")
|
|
203
|
+
vcs_mock.assert_called_once()
|
|
204
|
+
|
|
205
|
+
@patch.dict(os.environ, {}, clear=True)
|
|
206
|
+
def test_run_task_with_default_types(self):
|
|
207
|
+
task_config = TaskConfig(
|
|
208
|
+
{
|
|
209
|
+
"options": {
|
|
210
|
+
"envs": [
|
|
211
|
+
{"name": "MY_LIST", "datatype": "list", "default": ["a", "b"]},
|
|
212
|
+
{"name": "MY_DICT", "datatype": "dict", "default": {"x": 1}},
|
|
213
|
+
]
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
)
|
|
217
|
+
task = EnvManagement(self.project_config, task_config, self.org_config)
|
|
218
|
+
result = task()
|
|
219
|
+
self.assertEqual(result["MY_LIST"], ["a", "b"])
|
|
220
|
+
self.assertEqual(result["MY_DICT"], {"x": 1})
|