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.
This commit is contained in:
@@ -1,14 +1,17 @@
|
||||
# UPM Consumer Validation
|
||||
|
||||
`Validate-UpmConsumer.ps1` verifies the package graph from outside the main Unity
|
||||
project. It performs three checks:
|
||||
project. It performs five checks:
|
||||
|
||||
1. Every dependency on another local `com.cneicy.*` package must use that
|
||||
package's current `package.json` version.
|
||||
2. A temporary Unity project is created under `Temp/UpmConsumerValidation`, all
|
||||
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.
|
||||
3. The same temporary UPM consumer project runs all package EditMode tests.
|
||||
5. The same temporary UPM consumer project runs all package EditMode tests.
|
||||
|
||||
Run with the Unity version declared by this repository:
|
||||
|
||||
@@ -16,6 +19,12 @@ Run with the Unity version declared by this repository:
|
||||
./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
|
||||
|
||||
Reference in New Issue
Block a user