# Supported package types

sfp cli supports operations on various types of packages within your repository. A short summary on the comparison between different package types is 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 sfp)                                                                                           | Yes                                                                                                                                                     | Yes                     | Yes (supported by sfp)                                                                                                                   |
| Requires dependency to be resolved during creation | Yes                                                                                                              | No                                                                                                               | No                                                                                                                                                      | N/A                     | No                                                                                                                                       |
| Supported Metadata Types                           | Unlocked Package Section in [Metadata Coverage Report](https://developer.salesforce.com/docs/metadata-coverage/) | Unlocked Package Section in [Metadata Coverage Report](https://developer.salesforce.com/docs/metadata-coverage/) | <p>Metadata API<br>Section in <a href="https://developer.salesforce.com/docs/metadata-coverage/">Metadata Coverage Report</a></p>                       | N/A                     | <p>Metadata API<br>Section in <a href="https://developer.salesforce.com/docs/metadata-coverage/">Metadata Coverage Report</a></p>        |
| Code Coverage Requirement                          | Package should have 75% code coverage or more                                                                    | Not enforced by Salesforce, sfp 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                                             | sfp enforced versioning                                                                                                                                 | sfp enforced versioning | sfp enforced versioning                                                                                                                  |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flxbl.io/flxbl/sfp/concepts/supported-package-types.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
