The Release Process
In an sfp-powered project, releasing involves orchestrating the deployment of multiple artifacts (built packages) to target environments in a controlled, repeatable manner. The release process ensures consistency, traceability, and reliability across your Salesforce environments.
Release Definition
A YAML file that specifies:
Which artifacts (packages and versions) to deploy
The release name and configuration
Deployment behavior (skip if installed, promotion settings)
Changelog generation settings
Release Commands
sfp provides several commands for managing releases:
Deploy artifacts to an org
Production deployments, environment updates
sfp releasedefinition:generate
Create release definition from artifacts
Automated release preparation
Apply release to a branch
Hotfixes, branch synchronization
Generate release changelog
Documentation, compliance
Release Workflow
Unexpected error with integration mermaid: Integration is not installed on this space
1. Build and Publish Phase
After code is merged to your main branch:
2. Release Definition Generation
Create a release definition for your target environment:
3. Deployment Phase
Deploy the release to your target environment:
4. Post-Release Activities
After a successful release:
Release vs Install
sfp provides two deployment commands with different use cases:
Installs artifacts from a local directory
Used for development and testing
Direct, simple deployment
Fetches artifacts from a registry
Uses release definitions for consistency
Handles complex multi-artifact deployments
Release Strategies
Progressive Deployment
Deploy through environments progressively:
Hotfix Strategy
For urgent production fixes:
Rollback Strategy
Prepare for potential rollbacks:
Domain-Based Release Configuration
sfp uses Release Configs to organize packages by domain. These configs define which packages belong to a domain and control various aspects of the release process:
Key points about release configs:
They define domains (logical groupings of packages), not environments
Packages must be explicitly listed in includeOnlyArtifacts
The same domain configuration is used across all environments (dev, uat, prod)
They control validation pools, changelog generation, and deployment behavior
The release definition generated from these configs determines which versions of packages are deployed to each environment.