Question
Once #256's fold has landed and E4A.PostGuard publishes from encryption4all/postguard, encryption4all/postguard-dotnet is a repo whose code lives elsewhere and whose publish path is dead. Retire it — the sixth and last repo in the consolidation family, after the four app repos and cryptify.
This is the #286→#294 split: #256 decides and folds, this ticket retires the source repo. It is blocked by #256 and must not start before the first E4A.PostGuard has published from postguard and been verified on nuget.org — archiving before the new publish path is proven would strand the package with no way to release a fix.
What the channel audit already says
Checked while deciding #256, so it does not need re-deriving:
- GitHub Releases: clean. All ten releases (
v0.1.0 … E4A.PostGuard-v0.6.0) carry zero assets, so nothing can pin one. Same verdict shape postguard-website got in #312's table — no assets ever existed, so no consumer can be frozen against one.
- NuGet is the only live channel, and
#256 step 4 moves it. E4A.PostGuard keeps its id, owner and registry; only the publishing repo changes.
- One open issue,
postguard-dotnet#39 (chore: update dependencies), to transfer.
- The published nupkgs carry
PackageProjectUrl/RepositoryUrl pointing at postguard-dotnet. Archived repos stay readable, so existing packages keep resolving; the csproj should point at postguard from the fold onward.
Order, from the rule in root CLAUDE.md
The rule was learned the hard way on cryptify (#294), where release automation re-opened a superseded release PR one minute after it was closed, because the job that creates it was still live:
- Retire the release automation and finalize the README banner in one PR. For this repo that is
delivery.yml's release-please and publish jobs, plus build.yml — all of it, since the code is gone. The banner points at postguard's pg-dotnet/. Get the banner right now: it is the last chance to correct the README, and cryptify's went read-only carrying a claim that had been false for two days.
- Close any open PRs, including whatever release-please last opened.
- Transfer
#39 into postguard (this repo — the code landed here, so this is the issue destination too, unlike the four app repos which went to postguard-js). Transfer before archiving: GitHub will not transfer an issue out of an archived repo, and recovering from the skip costs an unarchive → transfer → re-archive round trip. That skip stranded 62 issues across four repos (#282).
- Archive the repo.
- Delete the old trusted-publishing policy on nuget.org if
#256 step 4 has not already.
Done when
encryption4all/postguard-dotnet is archived with 0 open issues and 0 open PRs, a README banner pointing at postguard's pg-dotnet/, #39 living in postguard, and one trusted-publishing policy remaining for E4A.PostGuard — the one naming encryption4all/postguard. Old issue URLs redirect on their own; no link fixing needed.
Part of #247 (workstream F).
Question
Once
#256's fold has landed andE4A.PostGuardpublishes fromencryption4all/postguard,encryption4all/postguard-dotnetis a repo whose code lives elsewhere and whose publish path is dead. Retire it — the sixth and last repo in the consolidation family, after the four app repos andcryptify.This is the
#286→#294split:#256decides and folds, this ticket retires the source repo. It is blocked by#256and must not start before the firstE4A.PostGuardhas published frompostguardand been verified on nuget.org — archiving before the new publish path is proven would strand the package with no way to release a fix.What the channel audit already says
Checked while deciding
#256, so it does not need re-deriving:v0.1.0…E4A.PostGuard-v0.6.0) carry zero assets, so nothing can pin one. Same verdict shapepostguard-websitegot in #312's table — no assets ever existed, so no consumer can be frozen against one.#256step 4 moves it.E4A.PostGuardkeeps its id, owner and registry; only the publishing repo changes.postguard-dotnet#39(chore: update dependencies), to transfer.PackageProjectUrl/RepositoryUrlpointing atpostguard-dotnet. Archived repos stay readable, so existing packages keep resolving; the csproj should point atpostguardfrom the fold onward.Order, from the rule in root
CLAUDE.mdThe rule was learned the hard way on
cryptify(#294), where release automation re-opened a superseded release PR one minute after it was closed, because the job that creates it was still live:delivery.yml'srelease-pleaseandpublishjobs, plusbuild.yml— all of it, since the code is gone. The banner points atpostguard'spg-dotnet/. Get the banner right now: it is the last chance to correct the README, andcryptify's went read-only carrying a claim that had been false for two days.#39intopostguard(this repo — the code landed here, so this is the issue destination too, unlike the four app repos which went topostguard-js). Transfer before archiving: GitHub will not transfer an issue out of an archived repo, and recovering from the skip costs an unarchive → transfer → re-archive round trip. That skip stranded 62 issues across four repos (#282).#256step 4 has not already.Done when
encryption4all/postguard-dotnetis archived with 0 open issues and 0 open PRs, a README banner pointing atpostguard'spg-dotnet/,#39living inpostguard, and one trusted-publishing policy remaining forE4A.PostGuard— the one namingencryption4all/postguard. Old issue URLs redirect on their own; no link fixing needed.Part of #247 (workstream F).