Skip to content

Releases: SFDO-Tooling/CumulusCI

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.

3.7.0

20 Feb 17:26
e1f3647
Compare
Choose a tag to compare

Changes:

  • Added a framework for building tasks that extract, transform, and load metadata from a Salesforce org.
    The initial set of tasks include:

    • add_standard_value_set_entries to add entries to a StandardValueSet.
    • add_page_layout_related_lists to add Related Lists to a Page Layout.
    • add_permission_set_perms to add field permissions and Apex class accesses to a Permission Set.
    • set_organization_wide_defaults to set the Organization-Wide Defaults for one or more objects
      and wait for the operation to complete.
  • Added a new task insert_record to insert a single sObject record via the REST API.

  • The update_admin_profile task now accepts a profile_name option, which defaults to Admin.
    This allows the task to be used to update other Profiles.
    (The task class has been renamed to UpdateProfile, but can still be used with the old name.)

  • Updated to use Metadata API version 48.0 as the default for new projects.

  • Robot Framework: Improved documentation for the API keywords in the Salesforce keyword library.

Issues closed:

  • Fixed the cci error info command. It was failing to load the log from the previous command.

  • Fixed a bug where some error messages were not displayed correctly.

  • Adjusted the Salesforce Robot Framework keyword library for better stability in Chrome 80.

  • Fixed a bug where using SFDXOrgTask to run an sfdx command on a non-scratch org would break
    with "Must pass a username and/or OAuth options when creating an AuthInfo instance."

  • Fixed a bug where an error while extracting the repository of a cross-project source
    could leave behind an incomplete copy of the codebase which would then be used by future commands.

3.6.0

06 Feb 17:34
c6996e0
Compare
Choose a tag to compare

Changes:

  • cci task info now has Command Syntax section and improved formatting of option information.

  • CumulusCI now displays a more helpful error message when it detects a network connection issue. (#1460)

  • We've added the option ignore_types to the uninstall_packaged_incremental task to allow all components of the specified metadata type to be ignored without having to explicitly list each one.

  • The FindReplace task now accepts a list of strings for the file_pattern option.

  • If the DeleteData task fails to delete some rows, this is now reported as an error.

  • Robot Framework: Added a new variable ${SELENIUM_SPEED} that is used to control the speed at which selenium runs when the Open Test Browser keyword is called.

Issues Closed:

  • Fixed an issue where existing scratch orgs could sometimes not be used in Windows.

  • Fixed a regression where flow info and task info commands could show an error AttributeError: 'NoneType' object has no attribute 'get_service' when trying to load tasks or flows from a cross-project source. (#1529)

  • Fixed an issue where certain HTTP errors while running the bulk data tasks were not reported.

3.5.4

30 Jan 20:46
8428ebf
Compare
Choose a tag to compare

Changes:

  • There is a new top level cci error command for interacting with errors in CumulusCI
  • cci gist is now cci error gist
  • cci error info displays the last 30 lines of a stacktrace from the previous cci command run (if present).
  • Changed the prompt users receive when encountering errors in cci.

Issues Closed:

  • Robot Framework: Reverted a change to the select_record_type keyword in the Salesforce library to work in both Winter '20 and Spring '20

3.5.3

23 Jan 22:29
53ad1c6
Compare
Choose a tag to compare

3.5.3 (2020-01-23)

Changes:

  • Added new features for running Python code (in a file or string) without brining up an interactive shell. You can now use --python and --script arguments for the cci shell and cci org shell commands.
  • Added support for up to two optional parameters in Apex anonymous via token substitution.
  • The EnsureRecordTypes class is now exposed as ensure_record_types and correctly supports the Case, Lead, and Solution sObjects (in addition to other standard objects).

Issues Closed:

  • Fixed a bug where the github_parent_pr_notes was attempting to post comments on issues related to child pull request change notes.
  • Fixed various Robot keyword issues that have been reported for Spring '20.

3.5.2

21 Jan 19:40
5c33c44
Compare
Choose a tag to compare

Issues closed:

  • Fixed an issue where errors running the cci gist command prompt the user to use the cci gist command.

  • Removed reference to os.uname() so that cci gist works on Windows.

  • Fixed an issue where the dx_pull task causes an infinite loop to occur on Windows.