Description
After the Phase 1 pilot, the remaining lib-* fleet (100+ repositories, plus aggregate repos like nanoFramework.IoT.Device) needs to be migrated to SDK-style in bulk. This is the Phase 4 campaign: clone, convert, build/pack/test, and open a PR per repository, in leaf-first dependency order, deprecating (not deleting) the legacy project flavor as repos move over. The migration tooling for this exists (dotnet nano migrate and the fleet command), but the campaign itself — actually running it across the fleet and shepherding the PRs to merge — is not tracked.
How to solve the problem
Execute the fleet migration as a managed campaign, leaf-first:
- Use
dotnet nano clone + dotnet nano migrate fleet to clone and convert each repository on a branch, with a dry-run pass and report reviewed before applying.
- Build, pack, and test each converted repo from the CLI against the published SDK; resolve manual-review items.
- Open a PR per repo from the org template using the fleet auto-PR renderer, leaf-first (do not open a dependent repo's PR before its dependencies merge/publish).
- Sequence by dependency layer, publishing each layer's SDK-style packages before migrating its dependents, so dependents restore against published SDK-style packages.
This depends on: the Phase 1 pilot completing, the fleet CI / pipeline rewriter, and the fleet auto-PR renderer.
Acceptance: the lib-* fleet is migrated to SDK-style with per-repo PRs opened (and merging) in leaf-first order, packages republished against netnano1.0, and the legacy project system deprecated while kept supported during the transition.
Describe alternatives you've considered
- Migrate repositories ad hoc as maintainers get to them. Workable but slow and inconsistent across 100+ repos; a coordinated leaf-first campaign avoids dependency-order breakage.
- A single mega-PR across repos. Not possible — these are separate repositories; each needs its own PR.
Additional context
Description
After the Phase 1 pilot, the remaining
lib-*fleet (100+ repositories, plus aggregate repos likenanoFramework.IoT.Device) needs to be migrated to SDK-style in bulk. This is the Phase 4 campaign: clone, convert, build/pack/test, and open a PR per repository, in leaf-first dependency order, deprecating (not deleting) the legacy project flavor as repos move over. The migration tooling for this exists (dotnet nano migrateand thefleetcommand), but the campaign itself — actually running it across the fleet and shepherding the PRs to merge — is not tracked.How to solve the problem
Execute the fleet migration as a managed campaign, leaf-first:
dotnet nano clone+dotnet nano migrate fleetto clone and convert each repository on a branch, with a dry-run pass and report reviewed before applying.This depends on: the Phase 1 pilot completing, the fleet CI / pipeline rewriter, and the fleet auto-PR renderer.
Acceptance: the
lib-*fleet is migrated to SDK-style with per-repo PRs opened (and merging) in leaf-first order, packages republished againstnetnano1.0, and the legacy project system deprecated while kept supported during the transition.Describe alternatives you've considered
Additional context
lib-*pilot, the fleet CI/pipeline rewriter (Add a fleet CI / Azure Pipelines template rewriter to the migration tool #1792), and the fleet auto-PR renderer (Add a fleet auto-PR renderer for bulk library migration #1793).