Types of Packaging
The following pages help you understand the correct packaging technique depending on the metadata/functionality
A short summary of various package types are provided below
Features | Unlocked Packages | Org Dependent Unlocked Packages | Source Packages | Data Packages | Diff Packages |
---|---|---|---|---|---|
Dependency Validation | Occurs during package creation | Occurs during package installation | Occurs during package installation | N/A | Occurs during package installation |
Dependency Declaration | Yes | Yes (supported by sfpowerscripts) | Yes | Yes | Yes (supported by sfpowerscripts) |
Requires dependency to be resolved during creation | Yes | No | No | N/A | No |
Supported Metadata Types | N/A | ||||
Code Coverage Requirement | Package should have 75% code coverage or more | Not enforced by Salesforce, sfpowerscripts by default checks for 75% code coverage | Each apex class should have a coverage of 75% or above for optimal deployment, otherwise the entire coverage of the org will be utilized for deployment | N/A | Each apex class that's part of the delta between the current version and the baseline needs a test class and requires a coverage of 75%. |
Component Lifecycle | Automated | Automated | Explicit, utilize destructiveManifest or manual deletion | N/A | Explicit, utilize destructiveManifest or manual deletion |
Component Lock | Yes, only one package can own the component | Yes, only one package can own the component | No | N/A | No |
Version Management | Salesforce enforced versioning; Promotion required to deploy to prod | Salesforce enforced versioning; Promotion required to deploy to prod | sfpowerscripts enforced versioning | sfpowerscripts enforced versioning | sfpowerscripts enforced versioning |