Skip to content

Phase 1 exit pilot: migrate five managed lib-* repositories to SDK-style #1797

Description

@danielmeza

Description

The implementation strategy defines the Phase 1 exit gate as a pilot of roughly five pure-managed lib-* repositories that build, pack, and test from the command line as SDK-style projects (cloned and converted with the migration tool, then opened as PRs from the org template). This gate has not been met: the only repository migrated so far is Samples, which is a useful proxy but is not a lib-* library repo and does not exercise the pack/publish path that the fleet depends on. Until a representative handful of real libraries migrate cleanly and build/pack/test from the CLI, the fleet campaign should not start.

How to solve the problem

Run the pilot end-to-end on about five representative, pure-managed lib-* repositories (leaf-first — base libraries before their dependents):

  • Clone and convert each with dotnet nano migrate (dry-run first, then apply), resolving any manual-review items.
  • Confirm each one builds, packs, and tests from the CLI (dotnet build / dotnet pack / dotnet test) against the published SDK.
  • Open a PR per repo from the org template (see the PR conventions), targeting the migration integration branch.
  • Capture any gaps the pilot surfaces (assembly-name to package-id mapping, CPM handling, CI changes) as feedback into the converter and the fleet tooling before scaling up.

Acceptance: about five lib-* repos are migrated to SDK-style, build/pack/test from the CLI with an empty (or genuinely non-default) manual-review list, and have PRs opened from the org template; the gaps found are recorded.

Describe alternatives you've considered

  • Treat the Samples migration as the Phase 1 exit. Rejected: Samples is not a lib-* library and does not validate the pack/publish path or the leaf-first dependency ordering the fleet relies on.
  • Skip the pilot and start the fleet directly. Rejected: a 100+ repo campaign without a validated pilot risks repeating the same defect across the whole fleet.

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