The checker reads each package's tag prefix, changelog and assemblies directory from scripts/release-packages.mjs and derives the release record from git tags. A first release is the absence of any older tag in a checkout that holds other tags; a malformed same-prefix tag, a checkout without tags and an unreadable repository refuse. The measured set is every managed assembly (CLI header in the PE bytes) tracked at the previous tag at any depth; an unbuilt one is a break, a built assembly with no namesake is an addition. Deleted with their branches, refusals and tests: --first-release, --api-new, --tag-prefix, --changelog, --api-baseline-path and the workflow first-release decision line. Any unknown option is now a usage error. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
25 lines
1.1 KiB
PowerShell
25 lines
1.1 KiB
PowerShell
# org.gamecult.caching.unity has no build step: it is pure C# editor source
|
|
# tagged directly from src/GameCult.Unity/Assets/Caching, unlike
|
|
# org.gamecult.cultlib and org.gamecult.cultmath which compile a DLL first.
|
|
# That means it has no existing script this repo's semver check can ride
|
|
# along with (docs/semver-policy.md, "Coverage gaps"). This script exists
|
|
# solely to be that gate: run it before tagging a caching-unity-v<version>
|
|
# release.
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
$repoRoot = Split-Path -Parent $PSScriptRoot
|
|
$packageRoot = Join-Path $repoRoot "src\GameCult.Unity\Assets\Caching"
|
|
$manifestPath = Join-Path $packageRoot "package.json"
|
|
|
|
$version = (Get-Content -LiteralPath $manifestPath -Raw | ConvertFrom-Json).version
|
|
|
|
& node (Join-Path $repoRoot "scripts\check-changelog-semver.mjs") `
|
|
--package "org.gamecult.caching.unity" `
|
|
--version $version `
|
|
--cwd $repoRoot
|
|
if ($LASTEXITCODE -ne 0) {
|
|
throw "org.gamecult.caching.unity failed the semver policy check (see docs/semver-policy.md)."
|
|
}
|
|
|
|
Write-Host "org.gamecult.caching.unity $version cleared the semver policy check."
|