Releases: SFDO-Tooling/CumulusCI
3.11.0
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 newgenerate_and_load_from_yaml
task. -
Added two new preflight check tasks for use in MetaDeploy:
get_available_licenses
andget_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
andSet 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
Changes:
-
Added
custom_settings_value_wait
task to wait for a custom setting to have a particular value. -
The
metadeploy_publish
task now has alabels_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
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
andupdate_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
Critical changes:
-
The
update_admin_profile
task can now add field-level permissions for all packaged objects. This behavior is the default for projects withminimum_cumulusci_version
>= 3.9.0 that are not using thepackage_xml
option. Other projects can opt into it using theinclude_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 subclassedUpdateAdminProfile
orUpdateProfile
. -
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 thecommit
option to make sure it is in the right format. -
If there is an error from
sfdx
while using theretrieve_changes
task, it will now be logged.
3.8.0
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
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 aprofile_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
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 theuninstall_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 thefile_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 theOpen 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
andtask info
commands could show an errorAttributeError: '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
Changes:
- There is a new top level
cci error
command for interacting with errors in CumulusCI cci gist
is nowcci error gist
cci error info
displays the last 30 lines of a stacktrace from the previouscci
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
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 thecci shell
andcci org shell
commands. - Added support for up to two optional parameters in Apex anonymous via token substitution.
- The
EnsureRecordTypes
class is now exposed asensure_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
Issues closed:
-
Fixed an issue where errors running the
cci gist
command prompt the user to use thecci gist
command. -
Removed reference to
os.uname()
so thatcci gist
works on Windows. -
Fixed an issue where the
dx_pull
task causes an infinite loop to occur on Windows.