Make EveUnity CultLib dependencies explicit
This commit is contained in:
parent
46de0bd309
commit
5bf4d0f665
8 changed files with 168 additions and 16 deletions
|
|
@ -1625,21 +1625,48 @@
|
|||
"packageId": "GameCult.Caching",
|
||||
"packageManager": "nuget",
|
||||
"ownerRepo": "CultLib",
|
||||
"resolutionMode": "Unity precompiled reference during EveUnity incubation."
|
||||
"resolutionMode": "Unity precompiled reference during EveUnity incubation.",
|
||||
"dependencyContract": {
|
||||
"sourceAuthority": "CultLib",
|
||||
"packageSource": "nuget",
|
||||
"packageId": "GameCult.Caching",
|
||||
"assemblyName": "GameCult.Caching.dll",
|
||||
"versionPolicy": "CultLib-owned package version stream.",
|
||||
"unityResolution": "EveUnity consumes this as a Unity precompiled reference during incubation.",
|
||||
"handoffRequirement": "EveUnity split must resolve this through CultLib's NuGet/package feed or a documented Unity import without vendoring CultLib ownership into Eve."
|
||||
}
|
||||
},
|
||||
{
|
||||
"assemblyName": "GameCult.Mesh.dll",
|
||||
"packageId": "GameCult.Mesh",
|
||||
"packageManager": "nuget",
|
||||
"ownerRepo": "CultLib",
|
||||
"resolutionMode": "Unity precompiled reference during EveUnity incubation."
|
||||
"resolutionMode": "Unity precompiled reference during EveUnity incubation.",
|
||||
"dependencyContract": {
|
||||
"sourceAuthority": "CultLib",
|
||||
"packageSource": "nuget",
|
||||
"packageId": "GameCult.Mesh",
|
||||
"assemblyName": "GameCult.Mesh.dll",
|
||||
"versionPolicy": "CultLib-owned package version stream.",
|
||||
"unityResolution": "EveUnity consumes this as a Unity precompiled reference during incubation.",
|
||||
"handoffRequirement": "EveUnity split must resolve this through CultLib's NuGet/package feed or a documented Unity import without vendoring CultLib ownership into Eve."
|
||||
}
|
||||
},
|
||||
{
|
||||
"assemblyName": "MessagePack.Annotations.dll",
|
||||
"packageId": "MessagePack.Annotations",
|
||||
"packageManager": "nuget",
|
||||
"ownerRepo": "CultLib",
|
||||
"resolutionMode": "Unity precompiled reference during EveUnity incubation."
|
||||
"resolutionMode": "Unity precompiled reference during EveUnity incubation.",
|
||||
"dependencyContract": {
|
||||
"sourceAuthority": "CultLib",
|
||||
"packageSource": "nuget",
|
||||
"packageId": "MessagePack.Annotations",
|
||||
"assemblyName": "MessagePack.Annotations.dll",
|
||||
"versionPolicy": "CultLib-owned transitive package version stream.",
|
||||
"unityResolution": "EveUnity consumes this as a Unity precompiled reference during incubation.",
|
||||
"handoffRequirement": "EveUnity split must resolve this through CultLib's NuGet/package feed or a documented Unity import without vendoring CultLib ownership into Eve."
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1574,7 +1574,20 @@ function compareTestContract(expected, actual, label) {
|
|||
expected.managedAssemblyDependencies || [],
|
||||
actual.managedAssemblyDependencies || [],
|
||||
`${label}.managedAssemblyDependencies`,
|
||||
["assemblyName", "packageId", "packageManager", "ownerRepo", "resolutionMode"],
|
||||
[
|
||||
"assemblyName",
|
||||
"packageId",
|
||||
"packageManager",
|
||||
"ownerRepo",
|
||||
"resolutionMode",
|
||||
"dependencyContract.sourceAuthority",
|
||||
"dependencyContract.packageSource",
|
||||
"dependencyContract.packageId",
|
||||
"dependencyContract.assemblyName",
|
||||
"dependencyContract.versionPolicy",
|
||||
"dependencyContract.unityResolution",
|
||||
"dependencyContract.handoffRequirement",
|
||||
],
|
||||
));
|
||||
return errors;
|
||||
}
|
||||
|
|
@ -1615,14 +1628,20 @@ function compareDependencyRecords(expectedRecords, actualRecords, label, keys) {
|
|||
continue;
|
||||
}
|
||||
for (const key of keys) {
|
||||
if ((expected[key] || "") !== (actual[key] || "")) {
|
||||
errors.push(`${label}:${expected[identityKey]}.${key}:expected ${expected[key] || ""} got ${actual[key] || ""}`);
|
||||
const expectedValue = getByPath(expected, key) || "";
|
||||
const actualValue = getByPath(actual, key) || "";
|
||||
if (expectedValue !== actualValue) {
|
||||
errors.push(`${label}:${expected[identityKey]}.${key}:expected ${expectedValue} got ${actualValue}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
return errors;
|
||||
}
|
||||
|
||||
function getByPath(record, dottedPath) {
|
||||
return dottedPath.split(".").reduce((current, segment) => current?.[segment], record);
|
||||
}
|
||||
|
||||
function comparePluginCapabilityClaims(expectedPlugins, actualPlugins, label) {
|
||||
const errors = [];
|
||||
const actual = new Map(actualPlugins.map(plugin => [plugin.pluginId, new Set(plugin.capabilities || [])]));
|
||||
|
|
|
|||
Loading…
Reference in a new issue