Newer Version Available

This content describes an older version of this product. View Latest

Build and Release Your App

When you finish writing your code, the next step is to deploy it. Salesforce DX offers different deployment options based on your role and needs as a customer, system integrator, or independent software vendor (ISV) partner.
To learn about the benefits of package-based deployment approach, review these Trailhead modules:

Based on your adoption readiness, review this table for your recommended options:

Adoption Readiness Customers and non-ISV Partners ISV Partners
Ready to adopt a package-based development model Unlocked package

An unlocked package (beta) is for customers who want to organize metadata into a package and deploy the metadata (via packages) to different orgs. Unlocked packages were previously called developer-controlled packages.

An unlocked package offers a super-set of capabilities compared to an unmanaged package. Therefore, unmanaged packages aren’t listed in this table.

Note

For more information, see Unlocked Packages and Second-Generation Managed Packages.

First-Generation(1GP) managed package

If you are an ISV that develops apps and lists them on App Exchange, Salesforce recommends managed packages. Second-Generation (2GP) managed packages is in beta, and many ISVs are testing them in their internal development stages. However, we recommend that you continue using 1GP managed packages for customer distribution until 2GP is generally available. 2GP doesn’t yet include certain key parity features with managed packages, such as push upgrades, LMA, ability to list on AppExchange, and patch versions.

For more information on 1GP managed packages, see First-Generation Managed Packages. For more information on 2GP managed packages, see Unlocked Packages and Second-Generation Managed Packages

Not ready for a package-based development model Change sets or Metadata API, using mdapi:deploy via CLI

For more information, see Build and Release Your App with Metadata API.

N/A

In Spring ’18, we ran a pilot on locked packages that was withdrawn and removed in Summer ’18. For more information, see Summer '18 Release Notes: Locked Packages Pilot Is Suspended.

Note