Build and release tools for Salesforce developers
Project description
===============================
CumulusCI
===============================
.. image:: https://img.shields.io/pypi/v/cumulusci.svg
:target: https://pypi.python.org/pypi/cumulusci
.. image:: https://readthedocs.org/projects/cumulusci/badge/?version=latest
:target: https://cumulusci.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://pyup.io/repos/github/SalesforceFoundation/CumulusCI/shield.svg
:target: https://pyup.io/repos/github/SalesforceFoundation/CumulusCI/
:alt: Updates
CumulusCI is a command line tool belt and set of reusable Python classes useful in the development and release process of building a Salesforce Managed Package application.
Key Features
------------
* Out of the box, CumulusCI provides a complete best practice development and release process based on the processes used by Salesforce.org to build and release managed packages to thousands of users
* Flexible and pluggable system for running tasks (single actions) and flows (sequences of tasks)
* OAuth based org keychain allowing easy connection to Salesforce orgs and stored in local files using AES encryption
Requirements
------------
* Python 2.7.x
* stdbuf - for passing through stdout from Ant
* Ant - for using some task commands
Installation
------------
* pip install cumulusci
Quick Start
-----------
This section provide a brief example of the commands you'd use to start a new project once you have CumulusCI installed
$ cd <Your_Local_Repo>
$ cumulusci2 project init
project_name: MyProject
$ cat cumulusci.yml
project:
name: MyProject
$ cumulusci2 org config_connected_app
client_id: 12345890
client_secret:
$ cumulusci2 org connect dev
*** Opens a browser at the Salesforce login prompt to complete OAuth grant
$ cumulusci2 org list
dev
$ cumulusci2 org info dev
*** Displays the OAuth configuration info for the org named "dev"
$ cumulusci2 org browser dev
*** Opens a browser tab to the org using OAuth to bypass login
$ cumulusci2 org connect --sandbox test
*** Opens a browser at the Salesforce login prompt to complete OAuth grant
$ cumulusci2 org list
dev
test
$ cumulusci2 task list
*** List all available tasks
deploy: Deploys the src directory to the target Salesforce org
$ cumulusci2 task run --org dev deploy
*** Runs the "deploy" task against the "dev" org
$ cumulusci2 flow list
*** List all available flows
deploy_dev_org: Runs a complete deployment against a dev org including dependencies but not running tests
$ cumulusci2 flow run --org test deploy_dev_org
*** Runs the "dev_org" flow against the "test" org
=======
History
=======
2.0.0-alpha10 (2016-10-28)
------------------
* More pure Python tasks to replace ant targets:
* create_ee_src
* retrieve_packaged
* retrieve_src
* revert_ee_src
* uninstall_packaged_incremental
* update_admin_profile
* New flow:
* unmanaged_ee: Deploys unmanaged code to an EE org
* New cumulusci.utils
* CUMULUSCI_PATH: The absolute path to the root of CumulusCI
* findReplaceRegex: Recursive regex based search/replace for files
* zip_subfolder: Accepts a zipfile and path, returns a zipfile with path as root
* Fix bug where repo_name was not being properly handled if it origin ended in .git
2.0.0-alpha9 (2016-10-27)
------------------
* Switch to using `plaintable` for printing text tables in the following CLI commands:
* cumulusci2 org list
* cumulusci2 task list
* cumulusci2 task info
* cumulusci2 flow list
* Easier project set up: `cumulusci2 project init` now prompts for all project values using the global default values
* More pure Python Metadata API tasks:
* create_package
* install_package
* uninstall_managed
* uninstall_packaged
* uninstall_pre
* uninstall_post
* uninstall_post_managed
* New tasks to interact with the new PackageUploadRequest object in the Tooling API
* upload_beta
* upload_production
* Python task to replace deployUnpackagedPost ant target with support for replacing namespace prefix in filenames and file contents
* deploy_post
* deploy_post_managed
* Python tasks to replace createManagedSrc and revertManagedSrc ant targets
* create_managed_src
* revert_managed_src
2.0.0-alpha8 (2016-10-26)
------------------
* New tasks for push upgrading packages
* push_all: Pushes a package version to all available subscriber orgs
* ex: cumulusci2 task run --org packaging -o version 1.1 push_all
* push_qa: Pushes a package version to all org ids in the file push/orgs_qa.txt in the repo
* ex: cumulusci2 task run --org packaging -o version 1.1 push_qa
* push_sandbox: Pushes a package version to all available sandbox subscriber orgs
* ex: cumulusci2 task run --org packaging -o version 1.1 push_sandbox
* push_trial: Pushes a package version to all org ids in the file push/orgs_trial.txt in the repo
* ex: cumulusci2 task run --org packaging -o version 1.1 push_trial
* Configurable push tasks in cumulusci.tasks.push.tasks:
* SchedulePushOrgList: uses a file with one OrgID per line as the target list
* SchedulePushOrgQuery: queries PackageSubscribers to select orgs for the target list
* Additional push tasks can be built by subclassing cumulusci.tasks.push.tasks.BaseSalesforcePushTask
2.0.0-alpha7 (2016-10-25)
------------------
* New commands for connecting to other services
* cumulusci2 project connect_apextestsdb: Stores ApexTestDB auth configuration in the keychain for use by tasks that require ApexTestsDB access
* cumulusci2 project connect_github: Stores Github auth configuration in the keychain for use by tasks that require Github access
* cumulusci2 project connect_mrbelvedere: Stores mrbelvedere auth configuration in the keychain for use by tasks that require access to mrbelvedere
* cumulusci2 project show_apextestsdb: Shows the configured ApexTestsDB auth info
* cumulusci2 project show_github: Shows the configured Github auth info
* cumulusci2 project show_mrbelvedere: Shows the configured mrbelvedere auth info
* Github Tasks
* The new BaseGithubTask wraps the github3.py API library to allow writing tasks targetting Github
* The following new Github tasks are implemented on top of BaseGithubTask:
* github_clone_tag: Clones one git tag to another via the Github API
* github_master_to_feature: Merges the HEAD commit on master to all open feature branches via the Github API
* github_release: Creates a Release via the Github API
* github_release_notes: Generates release notes by parsing merged Github pull request bodies between two tags
* BaseTask now enforces required task_options raising TaskOptionError if required options are missing
* Restructured the project: heading in cumulusci.yml
2.0.0-alpha6 (2016-10-24)
------------------
* Moved the build and ci directories back to the root so 2.0 is backwards compatible with 1.0
* Allow override of keychain class via CUMULUSCI_KEYCHAIN_CLASS env var
* New keychain class cumulusci.core.keychain.EnvironmentProjectKeychain for storing org credentials as json in environment variables
* Tasks now support the salesforce_task option for requiring a Salesforce org
* The new BaseSalesforceToolingApi task wraps simple-salesforce for building tasks that interact with the Tooling API
* cumulusci org default <name>
* Set a default org for tasks and flows
* No longer require passing org name in task run and flow run
* --unset option flag unsets current default
* cumulusci org list shows a * next to the default org
* BaseAntTask split out into AntTask and SalesforceAntTask
* cumulusci.tasks.metadata.package.UpdatePackageXml:
* Pure python based package.xml generation controlled by metadata_map.yml for mapping in new types
* Wired into the update_package_xml task instead of the old ant target
* 130 unit tests and counting, and our test suite now exceeds 1 second!
2.0.0-alpha5 (2016-10-21)
------------------
* Update README
2.0.0-alpha4 (2016-10-21)
------------------
* Fix imports in tasks/ant.py
2.0.0-alpha3 (2016-10-21)
------------------
* Added yaml files to the MANIFEST.in for inclusion in the egg
* Fixed keychain import in cumulusci.yml
2.0.0-alpha2 (2016-10-21)
------------------
* Added additional python package requirements to setup.py for automatic installation of dependencies
2.0.0-alpha1 (2016-10-21)
------------------
* First release on PyPI.
CumulusCI
===============================
.. image:: https://img.shields.io/pypi/v/cumulusci.svg
:target: https://pypi.python.org/pypi/cumulusci
.. image:: https://readthedocs.org/projects/cumulusci/badge/?version=latest
:target: https://cumulusci.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://pyup.io/repos/github/SalesforceFoundation/CumulusCI/shield.svg
:target: https://pyup.io/repos/github/SalesforceFoundation/CumulusCI/
:alt: Updates
CumulusCI is a command line tool belt and set of reusable Python classes useful in the development and release process of building a Salesforce Managed Package application.
Key Features
------------
* Out of the box, CumulusCI provides a complete best practice development and release process based on the processes used by Salesforce.org to build and release managed packages to thousands of users
* Flexible and pluggable system for running tasks (single actions) and flows (sequences of tasks)
* OAuth based org keychain allowing easy connection to Salesforce orgs and stored in local files using AES encryption
Requirements
------------
* Python 2.7.x
* stdbuf - for passing through stdout from Ant
* Ant - for using some task commands
Installation
------------
* pip install cumulusci
Quick Start
-----------
This section provide a brief example of the commands you'd use to start a new project once you have CumulusCI installed
$ cd <Your_Local_Repo>
$ cumulusci2 project init
project_name: MyProject
$ cat cumulusci.yml
project:
name: MyProject
$ cumulusci2 org config_connected_app
client_id: 12345890
client_secret:
$ cumulusci2 org connect dev
*** Opens a browser at the Salesforce login prompt to complete OAuth grant
$ cumulusci2 org list
dev
$ cumulusci2 org info dev
*** Displays the OAuth configuration info for the org named "dev"
$ cumulusci2 org browser dev
*** Opens a browser tab to the org using OAuth to bypass login
$ cumulusci2 org connect --sandbox test
*** Opens a browser at the Salesforce login prompt to complete OAuth grant
$ cumulusci2 org list
dev
test
$ cumulusci2 task list
*** List all available tasks
deploy: Deploys the src directory to the target Salesforce org
$ cumulusci2 task run --org dev deploy
*** Runs the "deploy" task against the "dev" org
$ cumulusci2 flow list
*** List all available flows
deploy_dev_org: Runs a complete deployment against a dev org including dependencies but not running tests
$ cumulusci2 flow run --org test deploy_dev_org
*** Runs the "dev_org" flow against the "test" org
=======
History
=======
2.0.0-alpha10 (2016-10-28)
------------------
* More pure Python tasks to replace ant targets:
* create_ee_src
* retrieve_packaged
* retrieve_src
* revert_ee_src
* uninstall_packaged_incremental
* update_admin_profile
* New flow:
* unmanaged_ee: Deploys unmanaged code to an EE org
* New cumulusci.utils
* CUMULUSCI_PATH: The absolute path to the root of CumulusCI
* findReplaceRegex: Recursive regex based search/replace for files
* zip_subfolder: Accepts a zipfile and path, returns a zipfile with path as root
* Fix bug where repo_name was not being properly handled if it origin ended in .git
2.0.0-alpha9 (2016-10-27)
------------------
* Switch to using `plaintable` for printing text tables in the following CLI commands:
* cumulusci2 org list
* cumulusci2 task list
* cumulusci2 task info
* cumulusci2 flow list
* Easier project set up: `cumulusci2 project init` now prompts for all project values using the global default values
* More pure Python Metadata API tasks:
* create_package
* install_package
* uninstall_managed
* uninstall_packaged
* uninstall_pre
* uninstall_post
* uninstall_post_managed
* New tasks to interact with the new PackageUploadRequest object in the Tooling API
* upload_beta
* upload_production
* Python task to replace deployUnpackagedPost ant target with support for replacing namespace prefix in filenames and file contents
* deploy_post
* deploy_post_managed
* Python tasks to replace createManagedSrc and revertManagedSrc ant targets
* create_managed_src
* revert_managed_src
2.0.0-alpha8 (2016-10-26)
------------------
* New tasks for push upgrading packages
* push_all: Pushes a package version to all available subscriber orgs
* ex: cumulusci2 task run --org packaging -o version 1.1 push_all
* push_qa: Pushes a package version to all org ids in the file push/orgs_qa.txt in the repo
* ex: cumulusci2 task run --org packaging -o version 1.1 push_qa
* push_sandbox: Pushes a package version to all available sandbox subscriber orgs
* ex: cumulusci2 task run --org packaging -o version 1.1 push_sandbox
* push_trial: Pushes a package version to all org ids in the file push/orgs_trial.txt in the repo
* ex: cumulusci2 task run --org packaging -o version 1.1 push_trial
* Configurable push tasks in cumulusci.tasks.push.tasks:
* SchedulePushOrgList: uses a file with one OrgID per line as the target list
* SchedulePushOrgQuery: queries PackageSubscribers to select orgs for the target list
* Additional push tasks can be built by subclassing cumulusci.tasks.push.tasks.BaseSalesforcePushTask
2.0.0-alpha7 (2016-10-25)
------------------
* New commands for connecting to other services
* cumulusci2 project connect_apextestsdb: Stores ApexTestDB auth configuration in the keychain for use by tasks that require ApexTestsDB access
* cumulusci2 project connect_github: Stores Github auth configuration in the keychain for use by tasks that require Github access
* cumulusci2 project connect_mrbelvedere: Stores mrbelvedere auth configuration in the keychain for use by tasks that require access to mrbelvedere
* cumulusci2 project show_apextestsdb: Shows the configured ApexTestsDB auth info
* cumulusci2 project show_github: Shows the configured Github auth info
* cumulusci2 project show_mrbelvedere: Shows the configured mrbelvedere auth info
* Github Tasks
* The new BaseGithubTask wraps the github3.py API library to allow writing tasks targetting Github
* The following new Github tasks are implemented on top of BaseGithubTask:
* github_clone_tag: Clones one git tag to another via the Github API
* github_master_to_feature: Merges the HEAD commit on master to all open feature branches via the Github API
* github_release: Creates a Release via the Github API
* github_release_notes: Generates release notes by parsing merged Github pull request bodies between two tags
* BaseTask now enforces required task_options raising TaskOptionError if required options are missing
* Restructured the project: heading in cumulusci.yml
2.0.0-alpha6 (2016-10-24)
------------------
* Moved the build and ci directories back to the root so 2.0 is backwards compatible with 1.0
* Allow override of keychain class via CUMULUSCI_KEYCHAIN_CLASS env var
* New keychain class cumulusci.core.keychain.EnvironmentProjectKeychain for storing org credentials as json in environment variables
* Tasks now support the salesforce_task option for requiring a Salesforce org
* The new BaseSalesforceToolingApi task wraps simple-salesforce for building tasks that interact with the Tooling API
* cumulusci org default <name>
* Set a default org for tasks and flows
* No longer require passing org name in task run and flow run
* --unset option flag unsets current default
* cumulusci org list shows a * next to the default org
* BaseAntTask split out into AntTask and SalesforceAntTask
* cumulusci.tasks.metadata.package.UpdatePackageXml:
* Pure python based package.xml generation controlled by metadata_map.yml for mapping in new types
* Wired into the update_package_xml task instead of the old ant target
* 130 unit tests and counting, and our test suite now exceeds 1 second!
2.0.0-alpha5 (2016-10-21)
------------------
* Update README
2.0.0-alpha4 (2016-10-21)
------------------
* Fix imports in tasks/ant.py
2.0.0-alpha3 (2016-10-21)
------------------
* Added yaml files to the MANIFEST.in for inclusion in the egg
* Fixed keychain import in cumulusci.yml
2.0.0-alpha2 (2016-10-21)
------------------
* Added additional python package requirements to setup.py for automatic installation of dependencies
2.0.0-alpha1 (2016-10-21)
------------------
* First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cumulusci-2.0.0a10.tar.gz
(18.6 MB
view details)
File details
Details for the file cumulusci-2.0.0a10.tar.gz
.
File metadata
- Download URL: cumulusci-2.0.0a10.tar.gz
- Upload date:
- Size: 18.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5179e14720c1c9194dfa689088e783a5f2ea955be2e9a98cf6c4335e8e96eaf |
|
MD5 | ce08188c174f8b9fbe97e3adee748c17 |
|
BLAKE2b-256 | 8f45f514b2ae678e34a648c2452a6694a4382ee93fef578632a3f8558c172d18 |