Reject internal package version drift, dependency cycles, and runtime-to-integration reverse dependencies before launching the external UPM consumer validation.
32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
# UPM Consumer Validation
|
|
|
|
`Validate-UpmConsumer.ps1` verifies the package graph from outside the main Unity
|
|
project. It performs five checks:
|
|
|
|
1. Every dependency on another local `com.cneicy.*` package must use that
|
|
package's current `package.json` version.
|
|
2. The local package graph must be acyclic.
|
|
3. A normal package must not depend on a `*-integration-*` package. Integration
|
|
packages may depend on each other, and starter packages may aggregate them.
|
|
4. A temporary Unity project is created under `Temp/UpmConsumerValidation`, all
|
|
local packages are installed through `file:` UPM dependencies, package tests
|
|
are enabled, and Unity must load every package and asmdef.
|
|
5. The same temporary UPM consumer project runs all package EditMode tests.
|
|
|
|
Run with the Unity version declared by this repository:
|
|
|
|
```powershell
|
|
./Tools/UpmConsumerValidation/Validate-UpmConsumer.ps1
|
|
```
|
|
|
|
Run only the package graph checks without starting Unity:
|
|
|
|
```powershell
|
|
./Tools/UpmConsumerValidation/Validate-UpmConsumer.ps1 -GraphOnly
|
|
```
|
|
|
|
Use `-UnityEditorPath` when the matching editor is not installed in a standard
|
|
location. Pass `-KeepProject` to retain the temporary project, reports, and Unity logs for
|
|
investigation. `-SkipTests` is only for a quick package-resolution diagnostic and is not the
|
|
release validation path.
|