Skip to content

[DRAFT] [net11.0] [tools] Add trimmable static registrar.#25105

Draft
rolfbjarne wants to merge 44 commits intonet11.0from
dev/rolf/trimmable-type-map-net11.0
Draft

[DRAFT] [net11.0] [tools] Add trimmable static registrar.#25105
rolfbjarne wants to merge 44 commits intonet11.0from
dev/rolf/trimmable-type-map-net11.0

Conversation

@rolfbjarne
Copy link
Copy Markdown
Member

Ignore this PR, it's only to test behavior once merged into net11.0.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@rolfbjarne rolfbjarne force-pushed the dev/rolf/trimmable-type-map-net11.0 branch from 7a8692a to abec578 Compare April 8, 2026 16:08
@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@rolfbjarne rolfbjarne force-pushed the dev/rolf/trimmable-type-map-net11.0 branch from 81f6f24 to dea9922 Compare April 13, 2026 13:43
@azure-pipelines

This comment was marked as off-topic.

1 similar comment
@azure-pipelines

This comment was marked as off-topic.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

rolfbjarne and others added 18 commits April 30, 2026 08:07
…t's not available anymore. (#25277)

---------

Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Unfortunately Azure DevOps doesn't properly report GitHub checks for pipelines triggered by another pipeline, when that other pipeline was triggered from a pr trigger.

So go back to triggering the API diff pipeline using a pr: trigger.

This effectively reverts #21880 ("[CI] Make the API diff be triggered as soon as the config of the build is done.")

References:

* https://stackoverflow.com/questions/78443654/reporting-stage-statuses-to-github-for-pipeline-triggered-by-another-pipeline
…ties that use literal strings. (#25273)

Implement manual bindings for the following properties, because they use
literal string keys instead of constant strings:

- NSViewColumnMoveEventArgs.OldColumn / NewColumn
- NSViewColumnResizeEventArgs.Column / OldWidth
- NSOutlineViewItemEventArgs.Item
- NSTextViewDidChangeSelectionEventArgs.OldSelectedCharacterRange
- NSTextViewWillChangeNotifyingTextViewEventArgs.OldView / NewView
- NSControlTextEditingEventArgs.FieldEditor
- NSTextAlternativesSelectedAlternativeStringEventArgs.AlternativeString
- NSMenuItemIndexEventArgs.MenuItemIndex
- NSMenuItemEventArgs.MenuItem
- NSWorkspaceFileOperationEventArgs.FileType
- NSTextDidEndEditingEventArgs.Movement

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…that returns null. (#25271)

These fields (QCCompositionInputRSSArticleDurationKey,
QCCompositionInputRSSFeedURLKey, QCCompositionProtocolRSSVisualizer) have not
been available at runtime since macOS 10.13 (which we no longer support), so
remove them with manual code (that returns null) and obsolete them.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
It's not available, and it's not in any public API, so we don't have to worry
about API compatibility either.
I ran this:

```shell
$ gh aw update
$ gh aw compile
```

and these were the changes.
…25240 (#25258)

The test `TestNSUrlSessionHandlerSendClientCertificate` was flaky due to two issues:

1. **Missing upfront network check**: `EchoClientCertificateUrl` was a plain field without `AssertNetworkConnection()`, unlike all other URLs in `NetworkResources`. When the external Azure server was unreachable, the test would attempt the request anyway instead of being skipped.

2. **Missing network error handling**: When the request completed with a non-timeout network error (connection reset, HTTP 502, etc.), the test hard-failed on `Assert.IsNull(ex)` instead of being marked inconclusive. Other network-dependent tests in the file use `IgnoreInCIIfBadNetwork(ex)` for this purpose.

**Fix**:
- Change `EchoClientCertificateUrl` to use `AssertNetworkConnection()` (consistent with other URLs)
- Add `IgnoreInCIIfBadNetwork(ex)` before the assertion (consistent with other tests)

Fixes #25240

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ests (#25256)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…25255)

StopLoading is called asynchronously by the URL loading system after the download task completes. The test was asserting `State==5` immediately when the task finished, but `StopLoading` (which increments State from 4 to 5) hadn't fired yet.

Fix by:
- Using the `RunAsync(timeout, task, check_completed)` overload that polls until `State>=5` instead of returning as soon as the task completes.
- Resetting `State=0` at test start to prevent cross-test interference.

Fixes #25223

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… workloads (#25252)

The Downloads and Feedback sections in README.md still referenced discontinued Xamarin products (Visual Studio for Mac installers, Xamarin Forums, xamarin.ios Stack Overflow tag). This PR updates them to reflect the current .NET ecosystem.

**Changes:**

- **Downloads section**: Replaced Xamarin installer instructions with `dotnet workload install ios macos tvos maccatalyst` and a link to the .NET workload documentation. The DOWNLOADS.md reference is kept but clarified as a legacy Xamarin archive.
- **Feedback section**: Replaced Xamarin Forums and `xamarin.ios` Stack Overflow links with a GitHub Issues link.

Doc-only change — no build or test impact.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…25251)

Three changes to eliminate intermittent `InvalidRecord` failures in `DeskCase_83099_InmutableDictionary`:

1. **Unique keychain identity per process** — server name is now `Test1-{PID}` to avoid cross-process conflicts on shared CI agents.

2. **Removed LAContext from search/delete records** — the `LAContext` with `InteractionNotAllowed` was being attached to query and remove operations via `InitSecRecord`/`CreateSecRecord`. This is unnecessary for plain internet passwords and is a plausible cause of the intermittent `InvalidRecord` errors. Helper methods now use a minimal `SecRecord` for lookups.

3. **Handle unexpected query status codes** — the old `SaveUserPassword` only handled `ItemNotFound` (add path) and `Success` (update path). Any other status like `InvalidRecord` silently returned `false`. The restructured logic uses `Success` → update, else → force-remove + add.

Fixes #25222

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…plate (#25250)

Extract the duplicated HTML report archiving steps (remove empty dirs → archive → publish artifact) into a shared template `common/archive-html-report.yml`.

### Changes

- **New**: `templates/common/archive-html-report.yml` — shared template with `rootFolder` and `artifactName` parameters. Uses cross-platform `pwsh` to remove empty directories before archiving.
- **Updated**: `tests/run-tests.yml`, `mac/build.yml`, `windows/build.yml` — replaced ~25 lines each with a 4-line template reference.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Rolf Bjarne Kvinge <rokvin@microsoft.com>
…treamTest (#25243)

Replace Xamarin.Cache.CreateTemporaryDirectory() with a local helper that uses NSFileManager.TemporaryDirectory
+ Path.GetRandomFileName().

This is because Cache.CreateTemporaryDirectory() might create a path inside the current
app bundle, which breaks incremental builds (they won't sign correctly).

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@rolfbjarne rolfbjarne force-pushed the dev/rolf/trimmable-type-map-net11.0 branch from 62ceaf5 to 377ac55 Compare April 30, 2026 16:24
@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

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

Pipeline on Agent
Hash: 377ac55fd710daff46e7ac077668b1b681382b2c [PR build]

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

✅ API diff for current PR / commit

NET (empty diffs)

✅ API diff vs stable

NET (empty diffs)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: 377ac55fd710daff46e7ac077668b1b681382b2c [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

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

✅ [CI Build #852e6e8] Prepare .NET Release succeeded ✅

📦 Published NuGet packages (32 packages)

iOS

  • Microsoft.iOS.Ref.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.iOS.Runtime.ios-arm64.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.iOS.Runtime.ios.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.iOS.Runtime.iossimulator-arm64.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.iOS.Runtime.iossimulator-x64.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.iOS.Sdk.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.iOS.Templates.26.4.11519-net11-p5.nupkg
  • Microsoft.iOS.Windows.Sdk.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.NET.Sdk.iOS.Manifest-11.0.100-preview.5.26.4.11519-net11-p5.nupkg

MacCatalyst

  • Microsoft.MacCatalyst.Ref.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.MacCatalyst.Runtime.maccatalyst-arm64.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.MacCatalyst.Runtime.maccatalyst-x64.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.MacCatalyst.Runtime.maccatalyst.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.MacCatalyst.Sdk.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.MacCatalyst.Templates.26.4.11519-net11-p5.nupkg
  • Microsoft.NET.Sdk.MacCatalyst.Manifest-11.0.100-preview.5.26.4.11519-net11-p5.nupkg

macOS

  • Microsoft.macOS.Ref.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.macOS.Runtime.osx-arm64.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.macOS.Runtime.osx-x64.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.macOS.Runtime.osx.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.macOS.Sdk.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.macOS.Templates.26.4.11519-net11-p5.nupkg
  • Microsoft.NET.Sdk.macOS.Manifest-11.0.100-preview.5.26.4.11519-net11-p5.nupkg

tvOS

  • Microsoft.NET.Sdk.tvOS.Manifest-11.0.100-preview.5.26.4.11519-net11-p5.nupkg
  • Microsoft.tvOS.Ref.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.tvOS.Runtime.tvos-arm64.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.tvOS.Runtime.tvos.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.tvOS.Runtime.tvossimulator-arm64.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.tvOS.Runtime.tvossimulator-x64.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.tvOS.Sdk.net11.0_26.4.26.4.11519-net11-p5.nupkg
  • Microsoft.tvOS.Templates.26.4.11519-net11-p5.nupkg

Other

  • Sharpie.Bind.Tool.26.4.0.519-net11-p5.nupkg

Pipeline on Agent
Hash: 852e6e8c52e4ccd20194de99e9e6f651ce91f604 [PR build]

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.

2 participants