Skip to content

[net11.0] Merge main into net11.0.#25502

Open
rolfbjarne wants to merge 12 commits into
net11.0from
dev/rolf/bump-main-in-net11.0-2026-05-22
Open

[net11.0] Merge main into net11.0.#25502
rolfbjarne wants to merge 12 commits into
net11.0from
dev/rolf/bump-main-in-net11.0-2026-05-22

Conversation

@rolfbjarne
Copy link
Copy Markdown
Member

No description provided.

rolfbjarne and others added 12 commits May 20, 2026 16:13
…25456)

Convert classic NUnit assertions to NUnit v4's constraint-based
Assert.That syntax across the monotouch-test project.

Also improve test failure diagnostics by:

- Swapping literal/actual argument order in Assert.That calls so that
  on failure NUnit reports 'Expected: <literal> But was: <actual>'
  instead of the confusing reverse

- Splitting compound boolean assertions (e.g. nalCount == 4 &&
  paramCount == 2) into individual constraint-based assertions that
  report each value independently on failure

- Converting Assert.That(x == y, Is.True) non-operator value checks
  to proper Assert.That(x, Is.EqualTo(y)) form

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
*.lscache files are produced by VSCode now: microsoft/vscode-dotnettools#2961

Also clean up a few old entries.
The mtouch tool is only ever invoked with `--runregistrar`, so a lot of code in the shared `tools/common/` files is never executed by mtouch. This PR removes ~520 lines of dead code.

## Changes

### Fully deleted (dead code with no callers anywhere):

- **Target.cs**: `GatherFrameworks` (91 lines), `ValidateAssembliesBeforeLink`
- **Application.cs**: `GetArchitectures`
- **Assembly.cs**: `ReadManifest`, `ParseAttributeWithDefault`
- **cache.cs**: `CompareDirectories`, `CompareAssemblies`, `AssemblyReader` class (~230 lines)
- **MachO.cs**: `GetNativeDependencies` + `native_dependencies` field, `SelectArchitectures` (was behind `#if MTOUCH` which is never defined)

### Guarded with `#if !LEGACY_TOOLS` (used by dotnet-linker but not mtouch):

- **Target.cs**: `AddAssembly`, `ExtractNativeLinkInfo`, `ComputeLinkerFlags`
- **Application.cs**: 19 methods/properties including `CreateCache`, `ParseCustomLinkFlags`, `ParseInterpreter`, `ValidateAbi`, `MonoGCParams`, `LibMonoLinkMode`, etc.
- **Driver.cs**: 16 methods including `ValidateXcode`, `FindTool`, `XcrunFind`, `RunClang`, `RunLipo`, `CreateDsym`, `RunStrip`, etc.

### Build infrastructure:

- Made mtouch build work without Xcode (it only runs the static registrar, which doesn't need Xcode)
- Added `--ignore-xcode` configure option

## Verification

- `make all install -C tools` ✅
- `make all install -C msbuild` ✅

🤖 Pull request created by Copilot

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The linker tests are now our longest-running tests (a bit over an hour), so
fan them out to run on separate bots on a per-platform basis to speed them
up.
)

Use the new PDictionary.OpenFile (throws on failure) and PDictionary.TryOpenFile (returns false on failure) APIs instead of the older PDictionary.FromFile which could return null.

- FromFile(...)! → OpenFile(...) for code expecting success
- try/catch { FromFile } with fallback → TryOpenFile where appropriate
- Removed dead null checks after OpenFile (it never returns null)

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
This pull request updates the following dependencies

## From https://github.com/dotnet/dotnet

- **Subscription**: [30303172-6f12-44a9-887a-ea8520fce068](https://maestro.dot.net/subscriptions?search=30303172-6f12-44a9-887a-ea8520fce068)
- **Build**: [20260427.13](https://dev.azure.com/dnceng/internal/_build/results?buildId=2961598) ([312133](https://maestro.dot.net/channel/9626/github:dotnet:dotnet/build/312133))
- **Date Produced**: April 27, 2026 11:33:19 PM UTC
- **Commit**: [7cd99d4e04536addfd185d632b239da7fbf352fb](dotnet/dotnet@7cd99d4)
- **Branch**: [release/10.0.3xx](https://github.com/dotnet/dotnet/tree/release/10.0.3xx)

- **Dependency Updates**:
  - From [10.0.0-beta.26216.121 to 10.0.0-beta.26227.113][5]
     - Microsoft.DotNet.Arcade.Sdk
     - Microsoft.DotNet.Build.Tasks.Feed
     - Microsoft.DotNet.SharedFramework.Sdk
  - From [10.0.300-preview.0.26216.121 to 10.0.300-preview.0.26227.113][5]
     - Microsoft.NET.Sdk
  - From [10.0.300-preview.26216.121 to 10.0.300][5]
     - Microsoft.TemplateEngine.Authoring.Tasks

[5]: dotnet/dotnet@e43cbe0...7cd99d4
Convert classic NUnit assertions (Assert.AreEqual, Assert.IsNotNull, Assert.IsTrue, etc.) to NUnit v4 constraint-based Assert.That syntax across all linker test files.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…rameworks. (#25490)

This simplifies some code, and also makes it easier to determine what to do with
some bindings we still have for some of these frameworks.

---------

Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
When users try to install sharpie on x64 Macs, they previously got a confusing 'DotnetToolSettings.xml was not found' error because the nupkg only contained an arm64 binary.

Fix this by including a small x64 native binary in the nupkg that prints a clear error message explaining that sharpie requires Apple Silicon and suggests using an arm64 Mac.

Fixes #25339

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Migrate all classic assertions (AreEqual, IsTrue, IsNull, etc.) to
Assert.That constraint syntax in tests/dotnet/UnitTests.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 22, 2026 07:15
@rolfbjarne rolfbjarne requested a review from mauroa as a code owner May 22, 2026 07:15
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [PR Build #d9703ff] Build passed (Detect API changes) ✅

Pipeline on Agent
Hash: d9703ff9b54b421475fe869f927f87be3132d6ff [PR build]

@github-actions
Copy link
Copy Markdown
Contributor


Warning

The push_to_pull_request_branch operation failed: Cannot push to pull request branch: patch modifies protected files (.github/skills/update-expected-app-size/SKILL.md). Add them to the allowed-files configuration field or set protected-files: fallback-to-issue to create a review issue instead.. The code changes were not applied.

Automated merge update

Merged main into net11.0 with the following conflict resolutions:

Resolved Conflicts

  1. Version files (eng/Version.Details.props, eng/Version.Details.xml)

    • Merged using semantic version comparison, keeping higher versions for each dependency
  2. NuGet.config

    • Merged all unique package sources from both branches
  3. MSBStrings.resx

    • Kept both error message E7170 from net11.0 and warning messages W7171-W7174 from main
  4. runtime/coreclr-bridge.m

    • Took main's simplified version (removed TrackedObjectInfo wrapper)
  5. Expected test size files (tests/dotnet/UnitTests/expected/*-size.txt)

    • Excluded from merge per policy (will be updated by CI)

All conflicts resolved automatically following the code-radiator merge policy.

Generated by Code Radiator · ● 26.6M ·

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.

4 participants