Skip to content

task: retire postguard-dotnet — release automation off, banner, transfer #39, archive #342

Description

@rubenhensen

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.0E4A.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:

  1. 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.
  2. Close any open PRs, including whatever release-please last opened.
  3. 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).
  4. Archive the repo.
  5. 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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    wayfinder:taskWayfinder ticket: manual work unblocking a decision, or execution under this map

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions