Version: 2020.2
Concepts
Dependency and resolution

Package states and lifecycle

After developing a package to the point where it is ready for Unity users to test it and provide feedback, a package enters the preview state. Packages in this state usually appear in the Unity Editor with the label and often use preview as part of their version.

Note:
In addition to the preview packages that are discoverable in the Package Manager window, there are some preview packages that are on Unity’s package registry server but don’t appear in the Unity Registry context. These packages are not discoverable in the Package Manager window because:

- They are considered to be somewhat experimental, and therefore too risky to use in production. Some of these packages require a lot of training and expertise and are therefore recommended only in specific circumstances.
- They are support packages, meaning that you shouldn’t use them on their own because they are designed to provide shared or additional functionality to existing packages.

Undiscoverable packages can still appear in the Package Manager window if they were previously installed in your project. However, they are hidden so that users don’t discover them by accident and use them without realizing the risks.

Unity’s release management only grants a package the verified status after it passes several testing stages and validation procedures, which also include checks for appropriate documentation, changelog, and license files. Packages in this state may appear in the Unity Editor with the label and never use preview as part of their version.

If the package developer introduces changing or breaking changes to a package (either by introducing a change that breaks an API or affects its usage), that package returns to the preview state and the Package Manager does not suggest the new preview package as a possible update for the verified version.

Package lifecycle with Unity Package Manager
Package lifecycle with Unity Package Manager

These states match where the package is in the development cycle:

State Description
In Development The package developer creates the package. Usually this corresponds to having the package embedded in the developer’s project.
Preview When the package is ready for testing, the Unity package developer makes sure there is some basic test coverage, and that the package passes testing with the package validation suite. The package also needs at least preliminary documentation, an updated changelog, and licensing before the Unity package developer can apply to publish the package on Unity’s official package registry.

At this point, the package is available for testing, so that any eligible Unity user can provide the developer with feedback. Most packages are available to any Unity users, although a few packages are limited to Unity IDs with specific entitlements.

Preview packages can go through many changes before they are ready to be verified for a specific version of Unity. At some point in the future, they might pass the verification requirements; however, they might also be deprecated instead. Because there is no guarantee for future support, you should not use preview packages in production. For a list of preview packages available for this version, see Preview packages.
Verified The package has undergone rigorous testing and has been verified to work safely with this specific version of Unity, and all other packages verified for the same version. This state is only for packages that Unity develops internally. Contact third-party package developers to ask about their specific processes.

When a package is verified for a version of Unity, Unity guarantees to support that verified package for the duration of that version of Unity, throughout the period of long-term support, and does not allow any major or minor updates (that is, changes that break or change an API). With each new version of Unity, each verified package must go through the verification process again before the Package Manager considers it verified.

To see a list of packages that are verified for this version of Unity, see Verified packages.

Note: Some packages are neither verified nor preview packages. In many cases, this is because a package was verified in a previous version of Unity but has not completed the verification process yet for the current version. For a few packages, they were published to the Unity Package Manager registry because they were considered safe to use, but were never verified. In both of these cases, these packages are safe to use in production.

The Package Manager window displays a tag that corresponds to some of these states.



  • Some advanced or support packages are no longer discoverable in the Package Manager window 2020.1 NewIn20201
Concepts
Dependency and resolution