Re-convergence steps (PlexCleaner — .NET)
Upstream template change
ptr727/ProjectTemplate decoupled GitHub-release asset assembly from the per-target build jobs (ProjectTemplate #108, shipped in #109 / released via #110).
Before: the github-release job in build-release-task.yml downloaded release files by referencing specific build jobs (build-nugetlibrary, build-executable) by their artifact-id outputs. Subsetting or swapping targets meant editing that job.
Now: a target contributes files to the GitHub release by uploading a workflow artifact named release-asset-<branch>-<target>, and github-release collects them by pattern (release-asset-<branch>-*, merge-multiple) — it never names a build job. The release orchestration (tag the built commit, create the release, attach assets) is now reusable verbatim.
See the template's AGENTS.md → "Release Model" (the "Orchestration vs. build — the override seam" bullet) for the full contract.
To stay in sync, mirror these template edits:
- Pull the updated
build-release-task.yml, build-nugetlibrary-task.yml, and build-executable-task.yml.
- In each release-contributing leaf task, rename the uploaded artifact to
release-asset-<branch>-<target> (e.g. release-asset-<branch>-executable, release-asset-<branch>-nugetlibrary) and drop the now-unused artifact-id workflow outputs.
- Confirm
github-release downloads via pattern: release-asset-<branch>-* (merge-multiple: true) rather than per-job artifact-id.
No behavior change once renamed — same files land on the GitHub release. Note: subset targets by deleting the job + its github-release needs entry, not via enable_*: false (a skipped needs job skips the release job too).
Re-convergence steps (PlexCleaner — .NET)
Upstream template change
ptr727/ProjectTemplatedecoupled GitHub-release asset assembly from the per-target build jobs (ProjectTemplate #108, shipped in #109 / released via #110).Before: the
github-releasejob inbuild-release-task.ymldownloaded release files by referencing specific build jobs (build-nugetlibrary,build-executable) by theirartifact-idoutputs. Subsetting or swapping targets meant editing that job.Now: a target contributes files to the GitHub release by uploading a workflow artifact named
release-asset-<branch>-<target>, andgithub-releasecollects them by pattern (release-asset-<branch>-*,merge-multiple) — it never names a build job. The release orchestration (tag the built commit, create the release, attach assets) is now reusable verbatim.See the template's
AGENTS.md→ "Release Model" (the "Orchestration vs. build — the override seam" bullet) for the full contract.To stay in sync, mirror these template edits:
build-release-task.yml,build-nugetlibrary-task.yml, andbuild-executable-task.yml.release-asset-<branch>-<target>(e.g.release-asset-<branch>-executable,release-asset-<branch>-nugetlibrary) and drop the now-unusedartifact-idworkflow outputs.github-releasedownloads viapattern: release-asset-<branch>-*(merge-multiple: true) rather than per-jobartifact-id.No behavior change once renamed — same files land on the GitHub release. Note: subset targets by deleting the job + its
github-releaseneedsentry, not viaenable_*: false(a skippedneedsjob skips the release job too).