Skip to content

3.33.0

Compare
Choose a tag to compare
@codexmarcel codexmarcel released this 19 Apr 19:55
· 2798 commits to main since this release
18faa74

Critical Changes:

  • CumulusCI's dependency management modules have been rewritten. This grants new capabilities and removes some existing features. (#2456)
    • All package installations now perform retries if the package is not yet available.

    • Package installations are also retried on common row locking errors.

    • You can now obtain fine-grained control over how your projects resolve dependencies. It's much easier to control where your application uses beta managed packages and second-generation packages to satisfy dependencies.

    • You can now execute 2GP builds that use 2GPs from upstream feature branches matching your current branch, not just release branches.

    • The update_dependencies task no longer supports uninstalling managed packages in a persistent org as part of the dependency installation process.

    • The update_dependencies task no longer supports the allow_newer option, which is always True.

    • The install order of update_dependencies changes slightly where multiple levels of upstream dependency have unpackaged/pre metadata. Where previously one package's unpackaged/pre might be installed prior to its own upstream dependency, unpackaged/pre will now always be installed immediately prior to the repo's package.

    • Projects using unmanaged dependencies that reference GitHub subfolders will see a change in resolution behavior. Previously, a dependency specified like this:

      dependencies:
          - github: https://github.com/SalesforceFoundation/NPSP
            subfolder: unpackaged/config/trial
      

      would always deploy from the latest commit on the default branch. Now, this dependency will be resolved to a GitHub commit just like a dependency without a subfolder, selecting the latest beta or production release as determined by the chosen resolution strategy.

    • The project__dependencies section in cumulusci.yml no longer supports nested dependencies specified like this:

      dependencies:
          - namespace: "test"
            version: "1.0"
            dependencies:
              - namespace: "parent"
                version: "2.2"
      

      All dependencies should be listed in install order.

Changes:

  • CumulusCI now supports named services! This means you can configure multiple services of the same type under different names. If you run cci service list you will note that your existing global services will have the name global, and any project-specific services will have the name project_name. (#2499)
    • You must now specify both a service type and a service name when connecting a new service using cci service connect.
    • CumulusCI has a new command: cci service default. This command sets the default service for a given type.
    • CumulusCI has a new command: cci service rename. This command renames a given service.
    • CumulusCI has a new command: cci service remove. This command removes a given service.
  • A validator now checks cumulusci.yml and shows warnings about values that are not expected. (#1624)
  • Added a friendly error message when a GitHub repository cannot be found when set as a dependency or cross-project source. (#2535)
  • Task option command line arguments can now be specified with either an underscore or a dash: e.g. clean_meta_xml can be specified as either --clean_meta_xml or --clean-meta-xml or -o clean-meta-xml (#2504)
  • Adjustments to existing tasks:
    • The update_package_xml task now supports additional metadata types. (#2549)
    • The push_sandbox and push_all tasks now use the Bulk API to query for subscriber orgs. (#2338)
    • The push_sandbox and push_all tasks now default to including all orgs whose status is not Inactive, rather than only orgs with a status of Active. This means that sandboxes, scratch orgs, and Developer Edition orgs are included. (#2338)
    • The user_alias option for the assign_permission_sets, assign_permission_set_groups, and assign_permission_set_licenses tasks now accepts a list of user aliases, and can now create permission assignments for multiple users with a single task invocation. (#2483)
    • The command task now sets the return_values to a dictionary that contains the return code of the command that was run. (#2453)
  • Data generation with Snowfakery:
  • Robot Framework:
    • The run task keyword now includes all task output in the robot log instead of printing it to stdout. (#2453)
    • Documented the use of the options/options section of CumulusCI for the robot task. (#2536)
  • Changes for CumulusCI developers:
    • Tasks now get access to the --debug-mode option and can output debugging information conditional on it. (#2481)
    • cci org connect can now connect to orgs running in an internal build environment with a different port. (#2501, with thanks to @force2b)

Issues Closed:

  • The load_custom_settings task now resolves a relative settings_path correctly when used in a cross-project flow. (#2523)
  • Fixed the min_version option for the push_sandbox and push_all tasks to include the min_version and not only versions greater than it. (#2338)