Rasagar/Library/PackageCache/com.unity.package-validation-suite/Documentation~/manifest_validation_error.md
2024-08-26 23:07:20 +03:00

5.1 KiB

Manifest Validation Errors

Manifest validations attempt to detect issues created by an incorrect manifest setup, as well as gate publishing of packages that do not conform to Unity standards.

Manifest not available. Not validating manifest contents

The validated package does not seem to contain a package.json file.

version needs to be a valid Semver

The value of the version field in the package.json file does not contain a valid Semver value. A valid Semver value follows the format of x.y.z[-tag], with the -tag section being optional. At Unity, we have specific uses for the -tag section, rendering the use of Semver a bit more restricted:

Examples of valid Unity Semver in Lifecycle V1:

  • 0.0.1
  • 1.0.0
  • 1.0.0-preview
  • 1.0.0-preview.1

Examples of valid Unity Semver in Lifecycle V2:

  • 0.0.1
  • 1.0.0
  • 1.0.0-exp.1
  • 1.0.0-exp-feature.1
  • 1.0.0-pre.1
  • 1.0.0-rc.1

dependency needs to be a valid Semver

In package.json, the specified dependency does not have a valid Semver value. For more information on valid Semver values please refer to version needs to be a valid Semver

Package dependency [packageID] is not published in production

The specified dependency does not exist in the production registry.

name needs to start with one of these approved company names

The name value in package.json needs to start with one of the approved namespaces for Unity packages.

Current approved list:

  • com.unity.
  • com.autodesk.
  • com.havok.
  • com.ptc.

name is not a valid name

The name value in package.json does not conform to Unity requirements. Unity requires that a package name meets the following requirements:

  • Only lowercase letters and numbers
  • No whitespaces
  • No special characters other than -, . or _

This is validated through the following regular expression: ^[a-z0-9][a-z0-9-._]{0,213}$

name cannot contain capital letters

The name value in package.json can only contain lowercase letters. For additional requirements of the name field, refer to "name" is not a valid name

name cannot end with

The name value in package.json cannot end with .plugin, .framework or .bundle. This is because of Unity's magic folders and will transform your package into something your probably do not want. For additional requirements of the name field, refer to "name" is not a valid name

displayName must be set

The displayName field in package.json must have a value

displayName is too long

The displayName field in package.json is too long

displayName cannot have any special characters

The displayName field in package.json can contain only the following characters:

  • Letters
  • Numbers
  • White spaces

This is validated through the following regular expression: ^[a-zA-Z0-9 ]+$

description is too short

The description field is too short. This field needs to contain relevant information about the package since it is presented in the UI to the user.

unity is invalid

The unity field is an invalid value. This field indicates the lowest Unity version the package is compatible with. The expected format is . (e.g 2018.4). If omitted, the package is considered compatible with all Unity versions. If you want to specify a minimum Unity release version, please use a combination of unity and unityRelease fields, for example:

  • unity: 2018.4
  • unityRelease: 0b4

unityRelease is invalid

The unityRelease field is an invalid value. This field indicates the specific release of Unity that the package is compatible with. The expected format is (e.g. 0b4). If the unity field is omitted, this field is ignored. If you want to specify a minimum Unity release version, please use a combination of unity and unityRelease fields, for example:

  • unity: 2018.4
  • unityRelease: 0b4

unityRelease without unity

The unityRelease field is included, while the unity field is not present. Add the unity field or remove the unityRelease field.

for a published package there must be a repository.url field

For packages that are published to the public registry, a repository.url field needs to exist in package.json to make it easier to identify where it came from

for a published package there must be a repository.revision field

For packages that are published to the public registry, a repository.revision field needs to exist in package.json to make it easier to identify on what specific commit a package was published

A Unity package must not have an author field

Normal packages can contain an author field, but packages authored by Unity must not contain one. This way, we can display the same name for every one of our packages.

author is invalid

The author field can be either a string with the name of the author or an object { name, email, url }, where name is mandatory. Example: "author": "John Snow" or "author": { "name": "Usagi Tsukino", "email": "usagi@example.com", "url": "https://www.rabbitonthemoon.com" }

author is mandatory

The author field is required in your package manifest (package.json). Packages that are NOT authored by Unity require an author field.