Skip to content

Bulk-migrate the lib-* fleet to SDK-style and open pull requests #1798

Description

@danielmeza

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions