Files
cneicy 3e612b975a chore(validation): enforce package graph boundaries
Reject internal package version drift, dependency cycles, and runtime-to-integration reverse dependencies before launching the external UPM consumer validation.
2026-08-26 01:18:02 +08:00

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.