Newer Version Available

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

Planning the Release of Managed Packages

Releasing an AppExchange package is similar to releasing any other program in software development. You may want to roll it out in iterations to ensure each component functions as planned. You may even have beta testers who have offered to install an early version of your package and provide feedback.

Once you release a package by publishing it on AppExchange, anyone can install it. So, plan your release carefully. Review the states defined below to familiarize yourself with the release process. Salesforce automatically applies the appropriate state to your package and components depending on the upload settings you choose and where it is in the release process.

State Description
Unmanaged The package has not been converted into a managed package or the component has not been added to a managed package. Note that a component that is “Managed - Beta” can become “Unmanaged” if it is removed from a managed package. All packages are unmanaged unless otherwise indicated by one of the managed icons below.
Managed - Beta Managed - Beta The package or component was created in the current Salesforce organization and is managed, but it is not released because of one of these reasons:
  • It has not been uploaded.
  • It has been uploaded with Managed - Beta option selected. This option prevents it from being published, publicly available on AppExchange. The developer can still edit any component but the installer may not be able to depending on which components were packaged.

Don’t install a Managed - Beta package over a Managed - Released package. If you do, the package is no longer upgradeable and your only option is to uninstall and reinstall it.

Note

Managed - Released Managed - Released The package or component was created in the current Salesforce organization and is managed. It is also uploaded with the Managed - Released option selected, indicating that it can be published on AppExchange and is publicly available. Note that once you have moved a package to this state, some properties of the components are no longer editable for both the developer and installer.

This type of release is considered a major release.

Patch If you need to provide a minor upgrade to a managed package, consider creating a patch instead of a new major release. A patch enables a developer to change the functionality of existing components in a managed package, while ensuring that subscribers experience no visible changes to the package.

This type of release is considered a patch release.

Managed - Installed Managed - Installed The package or component was installed from another Salesforce organization but is managed.

A developer can refine the functionality in a managed package over time, uploading and releasing new versions as the requirements evolve. This might involve redesigning some of the components in the managed package. Developers can delete some, but not all, types of components in a Managed - Released package when upgrading it. For details, see Delete Components in Managed Packages.