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 virtualenvcci-py3
instead ofcci
. - 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.