novolis-governance / frank-migration-runbook.md
Frank.* migration runbook
Policies that keep the org coherent
dotnetgovernancenovolis
Extract/rebuild playbook for P0 libraries. Do not transfer git history.
Prerequisites
- frank-naming-and-structure.md signed off for the wave.
- Frank source available under
bootstrap/scratch/frank-eval/(or fresh shallow clone). - Target
novolis-*repo scaffolded withDirectory.Build.props,global.json, CI,release.yml.
Per-slice steps
- Open tracking issue on target repo (see frank-inventory.md).
- Branch
migrate/<frank-repo-short-name>. - Run migrate-frank-slice.ps1 or copy manually into
src//tests/. - Add/update
.csproj:PackageId,Version,ProjectReferenceto Novolis deps (neverFrank.*). - Update
Novolis.<Domain>.slnxand .novolis/packages.json on the repo. dotnet build/dotnet testlocally.- PR → CI green → preview release (trusted publishing on that repo).
- Registry entry in
novolis-registry/packages/. - Frank source README banner + archive when wave complete.
Pilot order
Novolis.Messaging.Channels(migration publish gate)Novolis.Messaging(PulseFlow)Novolis.Testing.*Novolis.Transports.*Novolis.Storage.*subsetNovolis.Security.*
Frank README banner (template)
> **Moved to Novolis:** This library is superseded by [`Novolis.<Package>`](https://github.com/Novolis-Platform/novolis-<domain>) on NuGet. This repository is archived; do not add features here.Registry entry (template)
Create novolis-registry/packages/<package-id-kebab>.json:
{
"id": "novolis.messaging.channels",
"name": "Novolis.Messaging.Channels",
"type": "nuget",
"version": "0.1.0-preview.1",
"repository": "https://github.com/Novolis-Platform/novolis-messaging",
"packageId": "Novolis.Messaging.Channels"
}Adjust fields to match package.schema.json.