Salesforce DX Developer Guide
Summer '26 (API version 67.0)
Spring '26 (API version 66.0)
Winter '26 (API version 65.0)
Summer '25 (API version 64.0)
Spring '25 (API version 63.0)
Winter '25 (API version 62.0)
Summer '24 (API version 61.0)
Spring '24 (API version 60.0)
Winter '24 (API version 59.0)
Summer '23 (API version 58.0)
Spring '23 (API version 57.0)
Winter '23 (API version 56.0)
Summer '22 (API version 55.0)
Spring '22 (API version 54.0)
Winter '22 (API version 53.0)
Summer '21 (API version 52.0)
Spring '21 (API version 51.0)
Winter '21 (API version 50.0)
Summer '20 (API version 49.0)
Spring '20 (API version 48.0)
Winter '20 (API version 47.0)
Summer '19 (API version 46.0)
Spring '19 (API version 45.0)
Winter '19 (API version 44.0)
Summer '18 (API version 43.0)
Spring '18 (API version 42.0)
Winter '18 (API version 41.0)
Summer '17 (API version 40.0)
Metadata Coverage
What’s a Package
Package-Based Development Model
Before You Create Unlocked Packages
Know Your Orgs
Create Org-Dependent Unlocked Packages
Workflow for Unlocked Packages
How We Handle Profile Settings in Unlocked Packages
Generate the Package
Code Coverage for Unlocked Packages
Release an Unlocked Package
Update a Package Version
Hard-Deleted Components in Unlocked Packages
Delete an Unlocked Package or Package Version
View Package Details
Push a Package Upgrade
Migrate Deprecated Metadata from Unlocked Packages
Uninstall a Package
Limitations for Salesforce DX
Newer Version Available
Create a Package
A package is a top-level container that holds important details about the app or
package: the package name, description, and associated namespace.
You supply the package details in the package descriptor section of your sfdx-project.json project configuration file.
-
Generate the Package
When you’re ready to test or share your package, use the force:package:create command to create a package. -
Generate a Package Version
A package version is a fixed snapshot of the package contents and related metadata. The package version lets you manage changes and track what’s different each time you release or deploy a specific set of changes. -
Code Coverage for Unlocked Packages
Before you can promote and release an unlocked package, the Apex code must meet a minimum 75% code coverage requirement. You can install package versions that don't meet code coverage requirements only in scratch orgs and sandboxes. -
Release an Unlocked Package
Each new package version is marked as beta when its created. As you develop your package, you may create several package versions before you create a version that is ready to be released and installed in production orgs. -
Update a Package Version
You can update most properties of a package version from the command line. For example, you can change the package version name or description. One important exception is that you can’t change the release status. -
Hard-Deleted Components in Unlocked Packages
When these components are removed from an unlocked package, they're hard deleted from the target install org during the package upgrade. -
Delete an Unlocked Package or Package Version
Use the force:package:version:delete and force:package:delete commands to delete packages and package versions that you no longer need. -
View Package Details
View the details of previously created packages and package versions from the command line.