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