Release Config
Release configuration is a fundamental setup that outlines the organisation of packages within a project, streamlining across different lifecycle of your project, such as validating, building, deploying/release of artifacts. In flxbl projects, a release config is used to define the concept of a domain/subdomains. This configuration is instrumental when using sfp commands, as it allows for selective operations on specified packages defined by a configuration. By employing a release configuration, teams can efficiently manage a mono repository of packages across various teams.
---
releaseName: core
pool: core_pool
includeOnlyArtifacts:
- src-env-specific-pre
- src-env-specific-alias-pre
- core-crm
- telephony-service
excludePackageDependencies:
- Genesys Cloud for Salesforce
- Marketing Cloud
releasedefinitionProperties:
changelog:
workItemFilters:
- BRO-[0-9]{3,4}
workItemUrl: https://bro.atlassian.net/browse
limit: 30A release config is validated against its schema when loaded. A config that fails validation aborts the command with the list of validation errors.
The table below lists the options that are currently available for release configuration
releaseName
Yes
String
Name of the release config, in flxbl project, this name is used as the name of the domain
pool
No
String
Name of the scratch org or sandbox pool associated with this release config during validation
excludeArtifacts
No
Array
An array of artifacts that need to be excluded while creating the release definition. Cannot be combined with includeOnlyArtifacts
includeOnlyArtifacts
No
Array
An array of artifacts that should only be included while creating the release definition. Cannot be combined with excludeArtifacts
dependencyOn
No
Array
An array of packages that denotes the dependency this configuration has. The dependencies mentioned will be used for synchronization in review sandboxes. Ignored when dependencyOnDomains is set
dependencyOnDomains
No
Array
Names of other release configs (domains) this domain depends on. Every package of the listed domains — and of the domains they depend on, resolved recursively — is treated as a dependency of this domain. Takes precedence over dependencyOn. See Cross-domain dependencies
excludeAllPackageDependencies
No
Boolean
When true, no package dependencies are carried into the generated release definition
excludePackageDependencies
No
Array
Exclude the mentioned package dependencies from the release definition. Cannot be combined with includeOnlyPackageDependencies
includeOnlyPackageDependencies
No
Array
Include only the mentioned package dependencies from the release definition. Cannot be combined with excludePackageDependencies
packageDependencies
No
Object
Explicit external package dependencies (package name → a 04t subscriber package version id or a four-part version number such as 1.4.4.LATEST) copied into the generated release definition. Kept in declaration order — release installs them sequentially, so list prerequisites first. An entry overrides a discovered dependency of the same name.
releasedefinitionProperties
No
Object
Properties of release definition that should be added to the generated release definition. See below
Cross-domain dependencies (dependencyOnDomains)
dependencyOnDomains declares a domain's dependencies as other release configs, referenced by their releaseName, instead of listing individual packages with dependencyOn.
Resolution is recursive: a listed domain's own dependencyOnDomains are followed, and every package of every reachable domain becomes a dependency of this one. Packages are ordered deepest dependency first and de-duplicated. The resolved packages are used wherever domain dependencies apply — validation, review sandbox synchronization, and pool preparation, where the pooled orgs also install the dependency domains' packages.
When dependencyOnDomains is set, dependencyOn is ignored. Resolution fails when a listed domain does not exist or when the domain graph contains a cycle.
Release definition properties
A release configuration also can contain additional options that can be used by certain sfp commands to generate release definitions. These properties in a release definiton alters the behaviour of deployment of artifacts during a release
releasedefinitionProperties.skipIfAlreadyInstalled
No
boolean
Skip installation of artifact if it's already installed in target org
releasedefinitionProperties.skipArtifactUpdate
No
boolean
When true, a release does not update the installed-artifact records in the target org after deployment; the org's record of installed versions is left unchanged
releasedefinitionProperties.baselineOrg
No
string
The org used to decide whether to skip installation of an artifact. Requires skipIfAlreadyInstalled to be true. Defaults to the target org when not provided
releasedefinitionProperties.promotePackagesBeforeDeploymentToOrg
No
string
Promote packages before they are installed into an org that matches alias of the org
releasedefinitionProperties.changelog.workItemFilters
Yes, when changelog is set
array
An array of regular expression used to identify work items in your commit messages
releasedefinitionProperties.changelog.workItemUrl
No
string
The generic URL of work items, to which to append work item codes. Allows easy redirection to user stories by clicking on the work-item link in the changelog.
releasedefinitionProperties.changelog.limit
No
integer
Limit the number of releases to display in the changelog markdown
releasedefinitionProperties.changelog.showAllArtifacts
No
boolean
Whether to show artifacts that haven't changed between releases
Last updated
Was this helpful?