Skip to content

Releases: SFDO-Tooling/CumulusCI

3.13.1

09 Jun 13:09
8eb7e92
Compare
Choose a tag to compare

Issues closed:

  • Fixed a bug with "after:" steps in the load_dataset task.
  • Fixed a bug with record types in the extract_dataset task.

3.13.0

04 Jun 19:57
68cb576
Compare
Choose a tag to compare

Changes:

  • A new metadata ETL task, add_picklist_entries, safely adds picklist values to an existing custom field.

  • Added the cci org prune command to automatically remove all expired scratch orgs from the CumulusCI keychain.

  • Improvements to the cci org shell command:

    • Better inline help
    • New query and describe functions
  • Scratch org creation will now wait up to 120 minutes for the org to be created to avoid timeouts with more complex org shapes.

  • The generate_data_dictionary task now has more features for complex projects. By default, the task will walk through all project dependencies and include them in the generated data dictionaries. Other non-dependency projects can be included with the additional_dependencies option. The output format has been extensively improved.

  • The run_tests task supports a new option, required_org_code_coverage_percent. If set, the task will fail if aggregate code coverage in the org is less than the configured value. Code coverage verification is available only in unmanaged builds.

  • The install_managed and update_dependencies tasks now accept a security_type option to specify whether the package should be installed for all users or for admins only.

  • when expressions can now use the has_minimum_package_version method to check if a package is installed with a sufficient version. For example: when: org_config.has_minimum_package_version("namespace", "1.0")

  • Robot Framework:

    • Added a new keyword in the modal page objects, Select dropdown value. This keyword will be available whenever you use the Wait for modal keyword to pull in a modal page object.

Issues closed:

  • Limited the variables available in global scope for the cci shell command.

  • Tasks based on BaseSalesforceApiTask which use the Bulk API now default to using the project's API version rather than 40.0.

  • Bulk data tasks:

    • The extract_dataset task no longer converts to snake_case when picking a name for lookup columns.
    • Improved error message when trying to use the load_dataset command with an incorrect record type.
    • Fixed a bug with the generate_mapping_file option.

3.12.2

07 May 20:22
ad6f903
Compare
Choose a tag to compare

Changes:

  • Added a task, set_duplicate_rule_status, which allows selective activation and deactivation of Duplicate Rules.

  • The create_community task now retries multiple times if there's an error.

  • The generate_data_dictionary task now supports multi-select picklist fields and will indicate the related object for lookup fields.

  • The update_package_xml task now supports the NavigationMenu metadata type.

Issued closed:

  • In the Salesforce library for Robot Framework, fixed locators for the actions ribbon and app launcher button in Summer '20.

  • Fixed the load_dataset task so that steps which don't explicitly specify a bulk_mode will inherit the option specified at the task level.

  • Fixed error handling if an exception occurs within one of the cci error commands.

  • Fixed error handling if the Metadata API returns a response that is marked as done but also contains an errorMessage.

3.12.1

27 Apr 20:23
65e0a62
Compare
Choose a tag to compare

Fixed a problem building the Homebrew formula for installing CumulusCI 3.12.0.

3.12.0

27 Apr 19:19
c98c412
Compare
Choose a tag to compare

Changes:

  • We've removed the prompt that users see when trying to use a scratch org that has expired, and now automatically recreate the scratch org.

  • The load_dataset task now automatically avoids creating Bulk API batches larger than the 10 million character limit.

  • Robot Framework:

    • When opening an org in the browser, the Salesforce library now attempts to detect if the org was created using the Classic UI and automatically switch to Lightning Experience.

    • The Salesforce library now has preliminary support for Summer '20 preview orgs.

  • CumulusCI now directs simple-salesforce to return results as normal Python dicts instead of OrderedDicts. This should have minimal impact since normal dicts are ordered in the versions of Python that CumulusCI supports, but we mention it for the sake of completeness.

Issued closed:

  • Fixed an issue where non-ASCII output caused an error when trying to write to the CumulusCI log
    in Windows. (#1619)

3.11.0

17 Apr 16:39
f97925d
Compare
Choose a tag to compare

Changes:

  • CumulusCI now includes Snowfakery,
    a tool for generating fake data. It can be used to generate and load data into an org
    via the new generate_and_load_from_yaml task.

  • Added two new preflight check tasks for use in MetaDeploy:
    get_available_licenses and get_available_permission_set_licenses.
    These tasks make available lists of the License Definition Keys for the org's licenses or PSLs.

  • The get_installed_packages task now logs its result.

  • Robot Framework: Added two new keywords (Get Fake Data and Set Faker Locale)
    and a global robot variable (${faker}) which can be used to generate fake data
    using the Faker library.

Issues closed:

  • Fixed an error when loading a dependency whose cumulusci.yml contains non-breaking spaces.

  • Fixed a PermissionError when running multiple concurrent CumulusCI commands in Windows. (#1477)

  • Show a more helpful error message if a keychain entry can't be loaded
    due to a change in the encryption key.

  • Fixed the org_settings task to use the API version of the org rather than the API version of the package.

  • In the Salesforce Robot Framework library, the Open App Launcher keyword now tries to detect
    and recover from an occasional situation where the app launcher fails to load.

3.10.0

02 Apr 14:21
5d8c0bc
Compare
Choose a tag to compare

Changes:

  • Added custom_settings_value_wait task to wait for a custom setting to have a particular value.

  • The metadeploy_publish task now has a labels_path option which specifies a folder to store translations. After publishing a plan, labels_en.json will be updated with the untranslated labels from the plan. Before publishing a plan, labels from other languages will be published to MetaDeploy.

Issues closed:

  • Fixed an issue where running subprocesses could hang if too much output was buffered.

3.9.1

25 Mar 20:18
a8531da
Compare
Choose a tag to compare

Issues closed:

  • The batch_apex_wait task will now detect aborted and failed jobs instead of waiting indefinitely.

  • Fixed reporting of errors from Robot Framework when it exits with a return code > 250.

  • Fixed an ImportError that could happen when importing the new metadata ETL tasks.

  • Fixed bugs in how the set_organization_wide_defaults and update_admin_profile tasks operated in namespaced scratch orgs.

  • Show a more helpful error message if CumulusCI can't find a project's repository or release on GitHub. (#1281)

  • Fixed the message shown for skipped steps in cci flow info.

  • Fixed a regression which accidentally removed support for the bulk_mode option in bulk data mappings.

3.9.0

16 Mar 21:17
fd25ae0
Compare
Choose a tag to compare

Critical changes:

  • The update_admin_profile task can now add field-level permissions for all packaged objects. This behavior is the default for projects with minimum_cumulusci_version >= 3.9.0 that are not using the package_xml option. Other projects can opt into it using the include_packaged_objects option.

    The Python class used for this task has been renamed to ProfileGrantAllAccess and refactored to use the Metadata ETL framework. This is a breaking change for custom tasks that subclassed UpdateAdminProfile or UpdateProfile.

  • Refactored how CumulusCI uses the Bulk API to load, extract, and delete data sets. These changes should have no functional impact, but projects that subclass CumulusCI's bulk data tasks should carefully review the changes.

Changes:

  • New projects created using cci project init will now get set up with scratch org settings to:

    • Use the Enhanced Profile Editor
    • Allow logging in as another user
    • not force relogin after Login-As
  • If cumulusci.yml contains non-breaking spaces in indentation, they will be automatically converted to normal spaces.

  • Bulk data tasks:

    • Added improved validation that mapping files are in the expected format.

    • When using the ignore_row_errors option, warnings will be suppressed after the 10th row with errors.

Issues closed:

  • The github_release task now validates the commit option to make sure it is in the right format.

  • If there is an error from sfdx while using the retrieve_changes task, it will now be logged.

3.8.0

28 Feb 19:36
8a43013
Compare
Choose a tag to compare

Changes:

  • The batch_apex_wait task can now wait for chained batch jobs, i.e. when one job starts another job of the same class.

  • The metadata ETL tasks that were added in cumulusci 3.7.0 have been refactored to use a new library, cumulusci.utils.xml.metadata_tree, which streamlines building Salesforce Metadata XML in Python. If you got an early start writing custom tasks using the metadata ETL task framework, you may need to adjust them
    to work with this library instead of lxml.

Issues closed:

  • Adjusted the run_tests task to avoid an error due to not being able to access the symbol table for managed Apex classes in Spring '20. Due to this limitation, CumulusCI now will not attempt to retry class-level concurrency failures when running Apex unit tests in a managed package. Such failures will be logged but will not cause a build failure.

  • Corrected a bug in storing preflight check results for MetaDeploy when multiple tasks have the same path.