Skip to content

Releases: SFDO-Tooling/CumulusCI

2.4.2

24 Apr 14:35
177b930
Compare
Choose a tag to compare
  • The purgeOnDelete flag for the deploy task will now automatically be set to false when
    deploying metadata to production orgs (previously deployment would fail on production orgs
    if this flag was true).
  • The installation documentation now recommends using pipx to install CumulusCI on Windows,
    so that you don't have to set up a virtualenv manually.

2.4.1

09 Apr 16:09
120f7a1
Compare
Choose a tag to compare

Changes:

  • Updated the default Salesforce Metadata API version to 45.0
  • The scratch org definition files generated by cci project init now use orgPreferenceSettings instead of the deprecated orgPreferences.
  • The metadeploy_publish task now defaults to describing tasks based on Deploy as "metadata" steps instead of "other".

Issues Fixed:

  • Fixed a couple problems with generating passwords for new scratch orgs:

    • A project's predefined scratch org configs now default to set_password: True (which was already the case for orgs created explicitly using cci org scratch).
    • A scratch org config's set_password flag is now retained when recreating an expired org. (Fixes #670)
  • Fixed the logic for finding the most recent GitHub release so that it now only considers tags that start with the project's git prefix_release.

  • Fixed the install_prod_no_config flow. The deploy_post task was not injecting namespace tokens correctly.

  • Fixed the connected_app task to work with version 7 of the sfdx CLI. (Fixes #1013)

  • Robot Framework: Fixed the Populate Field keyword to work around intermittent problems clearing existing field values.

2.2.0

21 Nov 17:51
79f4eed
Compare
Choose a tag to compare

Changes:

  • Tasks can now be placed in groups for the task list! Just specify a group when defining the task in YAML.

  • By popular request, there is now an org import command to import an org from the SFDX keychain to the CumulusCI keychain. It takes two arguments: the SFDX username or alias, and the org name.

  • Robot Framework:

    • The Populate Field keyword now clears an existing value using keystrokes to make sure that change events are fired.
    • Added a Get Namespace Prefix keyword to the CumulusCI library to get the namespace prefix for a package.
    • Fixed a bug that broke opening a browser after using the Run Task keyword.
  • Documentation updates:

    • The readme now includes a link to the full documentation.
    • The instructions for installing CumulusCI on macOS have been simplified and now recommend using the official Python installer from python.org instead of Homebrew. (Homebrew should still work fine, but is no longer necessary.) We also now suggest creating a virtualenv using venv rather than pyenv since the former is included with Python. It's fine to continue using pyenv if you want.
    • Give more useful links for how to set up SFDX.
    • Updated robot library docs.
  • Internal refactoring:

    • Removed dependency on HiYaPyCo for YAML loading, which would not report which file failed to load in the event of a YAML parse error.
    • We now consistently load YAML in the same manner throughout the entire library, which will work with all supported Python versions.
    • Simplified the Python API for setting up a CumulusCI runtime. Begone, YamlGlobalConfig and YamlProjectConfig. Our Python API is not yet documented, but we're working on it. In the meantime, if you were relying on running CCI from within Python, you can now just use BaseGlobalConfig (and its get_project_config member) to bootstrap CCI.
    • BaseProjectConfig has shrugged off some methods that just delegated to the keychain.
    • BaseGlobalConfig has shrugged off some unimplemented methods, and BaseGlobalConfig.get_project_config is now deprecated in favor of using a runtime.
    • Introducing... 🥁CumulusCIRuntime! In order to alleviate the complexities of getting CumulusCI tasks/flows running from within a Python application, CumulusCIRuntime encapsulates a lot of the details and wiring between Keychain, GlobalConfig, and ProjectConfig. Usage docs are barely included.
    • CliConfig has been renamed to CliRuntime and now inherits from CumulusCIRuntime. It is still accessible as CliConfig.
    • Upgraded dependencies.
  • Contributor improvement: The contributor docs now explain how to install pre-commit hooks to make sure our linters have run before you commit.

Issues Closed:

  • #674: cci org import <username> <org_name>
  • #877: CumulusCI should be able to connect to any DX alias and/or understand dx auth files

2.1.1

23 Oct 20:53
56290af
Compare
Choose a tag to compare

Changes:

  • Our robotframework library for Salesforce got a number of improvements:
    • New keywords:
      • Click Header Field Link: Clicks a link in a record header
      • Load Related List: Scrolls to a related list and waits for it to load
      • Click Related List Button: Clicks a button in the header of a related list
      • Click Related Item Link: Clicks the main link for an item in a related list
      • Click Related Item Popup Link: Clicks a link in the popup menu for an item in a related list
    • Updated to robotframework-seleniumlibrary 3.2.0 which includes a Scroll Element Into View keyword.
    • Wait Until Loading Is Complete now waits for the main body of the page to render
    • Populate Lookup Field now tries several times in case there's an indexing delay
    • Added a -o verbose True option to the robot task which logs each keyword as it runs.
    • We now ignore errors while running the script that waits for XHRs to complete (it can fail if the page reloads before the script finishes).
  • Popup notifications upon completion of a flow or task now work on Linux too, if you have the notify-send command from libnotify. On Ubuntu, install the notify-osd package.

Issues Closed:

  • #827 Bulk data load breaks in Python 2
  • #832 pip install cumulusci gets the wrong version of urllib3

2.1.1b1

17 Oct 15:18
37539e5
Compare
Choose a tag to compare
2.1.1b1 Pre-release
Pre-release
  • uninstall_packaged_incremental task: Added ignore option to specify components to skip trying to delete even if they are present in the org but not in the local source.

2.1.0

16 Oct 19:02
e27d99b
Compare
Choose a tag to compare

Changes

  • Fixed the cci project init command, which was failing because it wanted
    the project to already exist! Fixes #816. In addition, other commands
    will now function without an active project or keychain when it possible
    to do so. (For example, try cci version which now works when you're
    not in a project directory.)
  • update_dependencies task:
    • Added support for installing private github repositories as dependencies.
      Thanks to Anthony Backhouse (@1handclapping) for the patch. Fixes #793
    • Added a dependencies option to override the project dependencies.
  • execute_apex task:
    • Print more useful error messages when there are Apex exceptions.
  • robot task:
    • Our logic for automatically retrying failed selenium commands has been
      encapsulated into the cumulusci.robotframework.utils.selenium_retry
      decorator which can be applied to a robot library class for increased
      stability.
    • There is now an option to pause and enter the Python debugger
      after a keyword fails. Run with -o pdb True.
    • Revised keywords and locators to support the Winter '19 release of Salesforce
      and improve stability.
    • The Salesforce.robot file now includes the OperatingSystem and XML
      libraries from Robot Framework by default. These libraries are helpful in
      building integration tests such as modifying and deploying a PageLayout
      to include a field needed in Suite Setup of an integration test.
  • Revised installation instructions for Windows. Thanks Matthew Blanski (@Auchtor).
  • Internal change: Use a thread-local variable instead of a global to track the current running task.

2.1.0b1

08 Oct 14:56
79d944e
Compare
Choose a tag to compare
2.1.0b1 Pre-release
Pre-release
  • It's happening! Hot on the heels of the last release, CumulusCI is making the jump to the modern era by adding support for Python 3! (Specifically, Python 3.6 and 3.7.) Don't worry, we'll also continue to support Python 2 for the time being. Because this is a bit more wide-reaching change than normal, we're releasing a beta first. To install the beta you'll need to explicitly request its version: pip install cumulusci==2.1.0b1.
    If you already have CumulusCI, after the update it will continue to run under your Python 2 interpreter. If you want to switch to the Python 3 interpreter (which is not yet required), we recommend deleting
    your Python virtualenv and starting over with the instructions in the tutorial. If you want to keep your Python 2-based virtualenv around just in case, follow those instructions but name the new virtualenv cci-py3 instead of cci.
  • There are also some big changes to the bulk data tasks. Did you know CumulusCI has bulk data tasks? They are not configured by default, because we need to finish documenting them. But we'll list the changes in case someone is already relying on them:
    • Fixed connection resets by downloading an entire result file before processing.
    • Improved performance by processing batches in parallel, avoiding the SQLAlchemy ORM, storing inserted Ids in separate tables, and doing lookups using SQL joins rather than a separate query for each row.
    • If you're using a postgres database for local storage, performance gets even better by taking advantage of postgres' COPY command to load CSV directly.
    • Added a hardDelete option for bulk deletes.
    • Added a start_step option for bulk loads which can be used to resume loading after an error.
  • The push_failure_report task will now by default hide failures that occurred due to the "Package Uninstalled" or "Salesforce Subscription Expired" errors, which are generally benign.
  • Fixed the check for newer CumulusCI versions to work around an issue with old setuptools.
  • Contributor change: We switched CumulusCI's own tests to run using pytest.
  • Internal change: We switched to the cryptography library for handling keychain encryption.

v2.0.13

02 Oct 18:21
4975b1e
Compare
Choose a tag to compare
  • Happy Spooky October! It's unlucky release 2.0.13, with some scary-cool improvements. Just to show you how ramped up our RelEng team is now, this release had TWENTY THREE pull requests in 12 days! From all four of your friendly SFDO Release Engineering committers. Thanks so much for continuing to use CCI for all your Salesforce automation needs.
  • NEW FLOW: ci_beta_dependencies installs the latest beta of project dependencies and run tests. Includes task error when running against non-scratch orgs.
  • NEW TASK: ReportPushFailures pulls a list of Package Push Upgrade Request failures after a push attempt, including grouping by important factors.
  • Issue a terminal "Bell" sound and attempt to display a macOS notification when a commandline task or flow completes.
  • Cleaned up python exception and error handling across the board, so that we can provide you, the user, with only the most relevant information. Try using CCI without setting your CUMULUSCI_KEY and see a simplified error message.
  • Fixed the utils for processing namespaces in package zip files to handle non-ASCII characters
  • The CONTRIBUTING.rst docs and Makefile have been updated to show how we release updates of CCI.
  • Skip beta releases when checking for a newer cumulusci version
  • When using the strip_namespace option on deployments, we now log which files had changes made before deploying.
  • Going Out: the SFDXDeploy and SFDXJsonPollingTasks have been removed, as they didn't work.
  • Going Out: Use the safe_load() method when loading YAML instead of the naive load(). If you relied on executing code in your CCI YAML file parsing, that will no longer work.

2.0.12

20 Sep 13:50
7579417
Compare
Choose a tag to compare
  • Fixed apexdoc URL
  • Fixed update_admin_profile to set any existing record type defaults to false before setting new defaults.
  • Fixed deployment of -meta.xml files containing non-ASCII characters.
  • Updated the robot selector for "Click Modal Button" to work for modals opened by a Quick Action.

2.0.9

10 Sep 15:13
db75514
Compare
Choose a tag to compare
  • Make robot commands use new lightning URLs
  • Remove unused filter_name arg from Go to Record Home robot keyword.
  • Fix metadata map for Settings.