Skip to content

[Draft] feat: test Yarn v6#4063

Draft
Saadnajmi wants to merge 7 commits intomicrosoft:mainfrom
Saadnajmi:migrate-yarn-v6
Draft

[Draft] feat: test Yarn v6#4063
Saadnajmi wants to merge 7 commits intomicrosoft:mainfrom
Saadnajmi:migrate-yarn-v6

Conversation

@Saadnajmi
Copy link
Collaborator

Issues:

  • [] catalogs seems not to be supported yet, so we had to move off them in this branch

Description of changes

Let's see how this rust based Yarn goes..

Verification

(how the change was tested, including both manual and automated tests)

Before After
Screenshot or description before this change Screenshot or description with this change

Pull request checklist

This PR has considered (when applicable):

  • Automated Tests
  • Documentation and examples
  • Keyboard Accessibility
  • Voiceover
  • Internationalization and Right-to-left Layouts

@changeset-bot
Copy link

changeset-bot bot commented Mar 9, 2026

⚠️ No Changeset found

Latest commit: 701654e

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Saadnajmi and others added 2 commits March 9, 2026 15:50
- Switch packageManager from yarn@4.13.0 to yarn@6.0.0-rc.15
- Change nodeLinker from pnpm to node-modules (PnP not ready for this repo)
- Remove yarnPath (Yarn Switch manages the binary instead)
- Remove preinstall script (node not in PATH in Yarn v6 subprocesses)
- Add @typescript/native-preview: latest to devDependencies
- Add resolutions for packages with invalid ^0.x semver
- Add .mise.toml for managing node and yarn versions
- Update getCatalog.ts to handle yarn config failures gracefully
- Regenerate yarn.lock with Yarn v6

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Yarn v6 is distributed via Yarn Switch (not Corepack/npm), so CI
environments need it installed before running yarn commands.

- Add composite setup-toolchain action that wraps the upstream action
  and installs Yarn Switch, handling Linux/macOS vs Windows differences
- Update pr.yml to use the local composite action in all jobs, replacing
  the separate setup-toolchain + Install Yarn Switch steps
- Replace corepack enable with Yarn Switch in check-changesets job
- Add Yarn Switch installation to Azure Pipelines publish workflow

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Saadnajmi and others added 5 commits March 9, 2026 16:44
…immutable

- Use bash shell for Yarn Switch install on Windows (pwsh can't run bash scripts)
- Add skipLibCheck to apps/E2E/tsconfig.json to suppress TS1540 in @wdio/globals
- Remove --immutable from check-changesets yarn install (lockfile may differ between local and CI builds of rc.15)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Yarn v6 (zpm) ships built-in workspace profile support, so the
@rnx-kit/yarn-plugin-dynamic-extensions plugin is no longer needed.

- Remove the plugin and its dynamic.extensions.mjs implementation
- Add a `default` workspaceProfile in .yarnrc.yml that injects
  typescript, @typescript/native-preview, eslint, oxfmt, jest,
  and @types/* into every workspace automatically
- Update depcheck to use a static list of profile-injected deps
  instead of reading them from the dynamic extensions module

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Yarn v6 (zpm) has a built-in task runner with topology and parallelism
support, making Lage redundant.

- Delete lage.config.mjs; the taskfile (already committed) replaces it
- Update root package.json scripts to use `yarn tasks run <task>`
- Update CI pipelines (.ado, .github) to use the new commands
- Remove lage from scripts/package.json and the catalog

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
tsgo (@typescript/native-preview) requires an explicit --rootDir src
to emit output flat into lib/ instead of lib/src/. Without it, the
output path includes the source subdirectory, breaking package exports
and causing downstream packages to fall through to the raw .ts sources.

- Add --rootDir src to build-core and build-cjs scripts in all library
  packages (automated via fluentui-scripts lint-package --fix)
- Centralise the fix in buildConfig.ts so newly generated scripts
  always include --rootDir src
- Add declaration: false to apps/E2E/tsconfig.json to suppress a
  non-portable ChainablePromiseElement type error from the pnpm store
- Remove build-core/build-cjs from apps/tester-core (RN app, not a
  pre-compiled library)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant