Rasagar/Library/PackageCache/com.unity.package-validation-suite/Documentation~/manifest_validation_error.md

114 lines
5.1 KiB
Markdown
Raw Normal View History

2024-08-26 13:07:20 -07:00
# 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](#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"-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](#"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 <MAJOR>.<MINOR> (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 <UPDATE><RELEASE> (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.