Skip to content

🤖 Merge 'main' => 'xcode27.0'#25728

Draft
github-actions[bot] wants to merge 29 commits into
xcode27.0from
merge/main-to-xcode27.0-20260617-7b335c723cf90819
Draft

🤖 Merge 'main' => 'xcode27.0'#25728
github-actions[bot] wants to merge 29 commits into
xcode27.0from
merge/main-to-xcode27.0-20260617-7b335c723cf90819

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Automated merge of main into xcode27.0.

Created by the code-radiator workflow.

Merge Details

This merge had conflicts that were resolved as follows:

NaturalLanguage/Enums.cs

  • Accepted main branch version which includes:
    • Additional Mac (14, 0) platform attribute
    • [Native] attribute on NLContextualEmbeddingAssetsResult
    • XAMCORE_5_0 conditional compilation for corrected enum name (NLContextualEmbeddingKey)

Generated by Code Radiator · sonnet45 1.5M ·

rolfbjarne and others added 29 commits June 16, 2026 14:33
## Summary

This restores the quoting fix for `MlaunchPath` on the `11.0` preview line.

The regression is in `Microsoft.Sdk.Mobile.targets`: the direct `Exec` path is quoted, but the generated install/run scripts and `RunCommand` were emitted without shell-safe quoting. When the SDK lives under a path containing a space, `dotnet build -t:Run` fails before `mlaunch` starts.

## Changes

- quote `$(MlaunchPath)` in generated install scripts
- quote `$(MlaunchPath)` in generated run scripts
- quote `RunCommand`
- update `MlaunchTest` expectations for the quoted script content / run command

## Validation so far

- temporary pack-swap validation succeeded: replacing the installed `Microsoft.Sdk.Mobile.targets` with this patched file made `dotnet build -t:Run -f net11.0-ios` launch a MAUI sample app successfully when the SDK path contained a space

Ref: #22481

This PR is recreated from #25673 (because our CI won't build from forks).

---------

Co-authored-by: vitek-karas <10670590+vitek-karas@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
They're already clean.

Looks like this will save ~2 min for every job.
We don't need to know whether we're building for a simulator or device when
creating the list of frameworks, because now it's possible to specify
different values for simulator vs device.

This makes it possible to simplify the code a little bit.

Most of this is indentation changes, so it's easier to review if hiding whitespace changes.
…25662)

## Description

Building a MacCatalyst app inside Visual Studio on Windows ARM64 fails with:

```
error MSB4216: Could not run the "MakeDir" task because MSBuild could not create
or connect to a task host with runtime "NET" and architecture "*".
```

## Root cause

Inside Visual Studio, our MSBuild tasks should run in-process using the `netstandard2.0` assemblies. This is controlled by the `_UseDesktopTaskAssemblies` property. When it is not set, the tasks instead use the `.NET` assemblies, which need a separate .NET task host. That task host does not work reliably from Visual Studio, and fails on Windows ARM64.

#25417 set `_UseDesktopTaskAssemblies` for Visual Studio builds, but only in the iOS SDK. MacCatalyst, macOS and tvOS were missed, so they still try to use the .NET task host and break.

## Fix

Set `_UseDesktopTaskAssemblies` in the shared `Xamarin.Shared.Sdk.props`, which is imported by all four platforms, so the workaround applies everywhere. The iOS SDK keeps setting it earlier (it also needs it for `CoreiOSSdkDirectory`); the `== ''` guard makes the shared copy a no-op for iOS.

Ref: #25418

---------

Co-authored-by: Milos Kotlar <kotlarmilos@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This way it's copied back to Windows automatically after a remote build.
## Summary

- update `MSBuild.StructuredLogger` from `2.2.158` to `2.2.243`
- pick the smallest verified bump that fixes the local binlog parser crash

## Why

Local Apple test binlogs can record an empty `CurrentUICulture=` event under `LANG=C.UTF-8`.

With `MSBuild.StructuredLogger` `2.2.158`, the reader synthesizes `PropertyReassignment` messages from localized string resources, but those resources are only initialized after a non-empty culture event. When the binlog reaches the first `PropertyReassignment`, `Strings.PropertyReassignment` can still be null, which crashes parsing with `ArgumentNullException("format")` instead of reporting the actual build result.

`2.2.243` already contains the upfront string initialization that avoids that failure, so the same local binlogs parse successfully without needing a larger package jump.

## Validation

- built `tests/dotnet/UnitTests/DotNetUnitTests.csproj` on current `main`
- re-ran the standalone binlog repro against a previously failing successful local Apple binlog and `2.2.243` parsed property reassignments successfully

This PR is recreated from #25674 (because our CI won't build from forks).

---------

Co-authored-by: vitek-karas <10670590+vitek-karas@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…20260603175250477 to main (#25633)

LEGO: Pull request from lego/hb_5df43909-4a19-4f55-bc3f-9ea8fccf3c82_20260603175250477 to main with localized lcls
This pull request updates the following dependencies

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

- **Subscription**: [02e03784-16b3-4ced-b02a-3715797fc7da](https://maestro.dot.net/subscriptions?search=02e03784-16b3-4ced-b02a-3715797fc7da)
- **Build**: [20260529.1](https://dev.azure.com/dnceng/internal/_build/results?buildId=2987132) ([316341](https://maestro.dot.net/channel/2/github:dotnet:xharness/build/316341))
- **Date Produced**: May 29, 2026 3:33:16 PM UTC
- **Commit**: [2cee83bf4841d72c9734a343f3003aeabdd46edf](dotnet/xharness@2cee83b)
- **Branch**: [main](https://github.com/dotnet/xharness/tree/main)

- **Dependency Updates**:
  - From [11.0.0-prerelease.26264.1 to 11.0.0-prerelease.26279.1][1]
     - Microsoft.DotNet.XHarness.iOS.Shared

[1]: dotnet/xharness@51ca379...2cee83b
This pull request updates the following dependencies

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

- **Subscription**: [da09b56a-0fb1-439a-b894-def14d2ec0a4](https://maestro.dot.net/subscriptions?search=da09b56a-0fb1-439a-b894-def14d2ec0a4)
- **Build**: [20260612.3](https://dev.azure.com/dnceng/internal/_build/results?buildId=2998757) ([318480](https://maestro.dot.net/channel/10307/github:dotnet:dotnet/build/318480))
- **Date Produced**: June 12, 2026 12:29:31 PM UTC
- **Commit**: [e4cee613b82457afd92ddfce82a67dcaaa227a84](dotnet/dotnet@e4cee61)
- **Branch**: [release/10.0.4xx](https://github.com/dotnet/dotnet/tree/release/10.0.4xx)

- **Dependency Updates**:
  - From [10.0.0-beta.26281.104 to 10.0.0-beta.26312.103][5]
     - Microsoft.DotNet.Arcade.Sdk
     - Microsoft.DotNet.Build.Tasks.Feed
     - Microsoft.DotNet.SharedFramework.Sdk
  - From [10.0.400-preview.0.26281.104 to 10.0.400-preview.0.26312.103][5]
     - Microsoft.NET.Sdk
  - From [10.0.400-preview.26281.104 to 10.0.400-preview.26312.103][5]
     - Microsoft.TemplateEngine.Authoring.Tasks

[5]: dotnet/dotnet@aec9216...e4cee61
Improve XML documentation for the `SystemConfigurationException` type:

- Remove "To be added." placeholder entries
- Add meaningful `<param>` and `<value>` descriptions
- Simplify `<see cref>` references (remove redundant namespace qualifiers)
- Reorder XML doc elements to standard order (summary, value, param)
- Remove empty `<remarks>` nodes

🤖 Pull request created by Copilot

---------

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

Fix real typos in API names by introducing correctly-spelled alternatives and deprecating the old misspelled names.

## Approach

For **binding methods/properties**, the old name keeps `[Export]` to preserve virtual dispatch (no breaking API changes), and the new name uses `[Wrap]`. In `XAMCORE_5_0` only the correctly spelled name will remain with `[Export]`.

For **enum values**, the old value is `[Obsolete]` with `[EditorBrowsable(Never)]` and will be removed in `XAMCORE_5_0`.

For **delegate methods with `[EventArgs]`**, only a `#if XAMCORE_5_0` rename is possible (the binding generator requires EventArgs on all delegate methods).

For **manual code** (non-generated), the correctly-spelled method is the implementation; the old misspelled name is a thin wrapper marked `[Obsolete]`.

## Fixed typos

| Old name | New name | Type |
|----------|----------|------|
| StandarizePath | StandardizePath | method |
| ReplaceOcurrences | ReplaceOccurrences | method |
| DequeueNotificationsMatchingcoalesceMask | DequeueNotificationsMatchingCoalesceMask | method |
| SkipDescendents | SkipDescendants | method |
| SetParamDescriptorforKeyword | SetParamDescriptorForKeyword | method |
| SetAttributeDescriptorforKeyword | SetAttributeDescriptorForKeyword | method |
| InsertDescriptoratIndex | InsertDescriptorAtIndex | method |
| SetDescriptorforKeyword | SetDescriptorForKeyword | method |
| WilllDownloadToUrl | WillDownloadToUrl | method |
| SetImageforSearchBarIcon | SetImageForSearchBarIcon | method |
| SetPositionAdjustmentforSearchBarIcon | SetPositionAdjustmentForSearchBarIcon | method |
| GetNumberofItems | GetNumberOfItems | method |
| TitleWidthConstraintedToSize | TitleWidthConstrainedToSize | method |
| IndexOfItemWithTargetandAction | IndexOfItemWithTargetAndAction | method |
| TryToPerformwith | TryToPerformWith | method |
| ConvertRectfromBacking | ConvertRectFromBacking | method |
| UpdateSpellingPanelWithGrammarl | UpdateSpellingPanelWithGrammarString | method |
| SetIconforFile | SetIconForFile | method |
| SetAttributesforExportedKey | SetAttributesForExportedKey | method |
| SortedArrayFromArraycollationStringSelector | SortedArrayFromArrayCollationStringSelector | method |
| DenimonatorExpression | DenominatorExpression | property |
| GpsDifferental | GpsDifferential | property |
| ExhangeDataMaximumSize | ExchangeDataMaximumSize | property |
| RightCallpoutOffset | RightCalloutOffset | property |
| RoundToOddHermitean | RoundToOddHermitian | property |
| CommitedLoad | CommittedLoad | delegate (XAMCORE_5_0) |
| ReplacementValueForAttributevalue | ReplacementValueForAttributeValue | delegate (XAMCORE_5_0) |
| UpdatedCharacterteristicValue | UpdatedCharacteristicValue | delegate (XAMCORE_5_0) |
| SetBaseWritingDirectionforRange | SetBaseWritingDirection | abstract (XAMCORE_5_0) |
| NLContextualEmebeddingKey | NLContextualEmbeddingKey | enum type (XAMCORE_5_0) |
| ExifSubsecTimeOrginal | (already obsoleted) | field |
| WarichuPunctiation | WarichuPunctuation | enum value |
| TrackableArae | TrackableArea | enum value |
| DissapearingItemDefault | DisappearingItemDefault | enum value |
| OcclussionAttenuation | OcclusionAttenuation | enum value |
| FourtyMHz | FortyMHz | enum value |
| ProcAppactive | ProcAppActive | enum value |
| FromIdentityCertificatesPersistance | Create | static method |
| PropogateAttachments | PropagateAttachments | method |
| SetLocalEventsFilterDuringSupressionState | SetLocalEventsFilterDuringSuppressionState | method |
| GetLocalEventsFilterDuringSupressionState | GetLocalEventsFilterDuringSuppressionState | method |
| LocalEventsSupressionInterval | LocalEventsSuppressionInterval | property |
| GpsDifferentalKey | GpsDifferentialKey | field |
| Various others | (see enum fixes) | enum values |

## Other changes

- Rewrote the introspection `TypoTest` to use a word-level dedup approach (faster and more reliable)
- Documented all remaining allowed typos with comments explaining why they are valid
- Wrapped typos that are fixed only in `XAMCORE_5_0` with `#if !XAMCORE_5_0` in the allowed list

Fixes #25397

🤖 Pull request created by Copilot

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The no-xcode-build target (used on Linux) was unconditionally adding
registrar generation targets for all platforms. When some platforms are
disabled (e.g. only iOS is enabled), the prerequisite DLLs don't exist
and make fails with 'No rule to make target'.

Wrap each group of RunRegistrar eval calls with the corresponding
INCLUDE_IOS/INCLUDE_TVOS/INCLUDE_MACCATALYST/INCLUDE_MAC guards so
only enabled platforms have their registrar rules defined.

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Extract the static optimization methods from OptimizeGeneratedCodeHandler into
a new standalone OptimizeGeneratedCode class. The handler class now only contains
the linker-specific scaffolding and delegates to the new class.

This makes the optimization logic reusable without depending on the linker's
ExceptionalMarkHandler base class.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Refactor the big switch statement in the LinkerConfiguration constructor into
a GetConfigurator() method that returns a dictionary of (Load, Save) delegate
pairs for each configuration key. This enables both reading configuration from
file and writing/serializing the current configuration state.

Also add a Save() method that uses the configurator to write out the current
configuration state.

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

Move FindNSObjectConstructor, FindINativeObjectConstructor,
ImplementConstructNSObjectFactoryMethod, ImplementConstructINativeObjectFactoryMethod,
and AddTypeInterfaceImplementation from ManagedRegistrarLookupTablesStep to
AppBundleRewriter, and update all call sites accordingly.

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

Create an 'assembly-preparer' tool that performs assembly pre-processing (currently done by custom linker steps) as a standalone build step, gated behind the opt-in `PrepareAssemblies=true` MSBuild property.

Key changes:

* New `tools/assembly-preparer/` library with scaffolding that emulates a subset of ILLink's API (this makes it easy to reuse the code for existing custom trimmer step by just running the same steps in the new assembly-preparer tool instead).
* New `PrepareAssemblies` MSBuild task and `_PrepareAssemblies` target in Xamarin.Shared.targets.
* When `PrepareAssemblies=true`, most custom linker steps/mark handlers are disabled in the trimmer pipeline (conditions added to Xamarin.Shared.Sdk.targets).
* Refactor `LinkerConfiguration.cs` with `#if ASSEMBLY_PREPARER` to support both linker and assembly-preparer contexts.
* New test project `tests/assembly-preparer/` with tests for the assembly preparation steps.
* Add xharness test variation for running with assembly-preparer enabled.
* New `tools/ap-launcher/` to invoke the tool from the command line; this is useful during debugging.

Contributes towards #17693.
…er steps. (#25652)

Create an 'assembly-preparer' tool that performs assembly pre-processing
(currently done by custom linker steps) as a standalone build step, gated
behind the opt-in `PrepareAssemblies=true` MSBuild property.

Key changes:

* New `tools/assembly-preparer/` library with scaffolding that emulates a
  subset of ILLink's API (this makes it easy to reuse the code for existing
  custom trimmer step by just running the same steps in the new
  assembly-preparer tool instead).
* New `PrepareAssemblies` MSBuild task and `_PrepareAssemblies` target in
  Xamarin.Shared.targets.
* When `PrepareAssemblies=true`, most custom linker steps/mark handlers are
  disabled in the trimmer pipeline (conditions added to
  Xamarin.Shared.Sdk.targets).
* Refactor `LinkerConfiguration.cs` with `#if ASSEMBLY_PREPARER` to support
  both linker and assembly-preparer contexts.
* New test project `tests/assembly-preparer/` with tests for the assembly
  preparation steps.
* Add xharness test variation for running with assembly-preparer enabled.
* New `tools/ap-launcher/` to invoke the tool from the command line; this is
  useful during debugging.

Contributes towards #17693.
Improve XML documentation for the `StatusCodeError` type:

- Remove "To be added." placeholder entries
- Add meaningful `<param>` and `<returns>` descriptions
- Simplify `<see cref>` references (remove redundant namespace qualifiers)
- Reorder XML doc elements to standard order (summary, param, returns)
- Remove empty `<remarks>` nodes

🤖 Pull request created by Copilot

---------

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

## Summary

Replaces all httpbin.org dependencies in monotouch-test with an in-proc HTTP server (`HttpbinTestServer`), eliminating external network flakiness from these tests.

## Changes

- **New file: `HttpbinTestServer.cs`** — A lightweight `HttpListener`-based server that implements all httpbin.org endpoints used by tests: `/get`, `/post`, `/cookies`, `/cookies/set`, `/redirect/{n}`, `/redirect-to`, `/basic-auth`, `/digest-auth`, `/gzip`, `/html`, `/status/{code}`.
- **Updated `NetworkResources.cs`** — `Httpbin.Url` now points to the local server instead of `https://httpbin.org`. Removed httpbin from `HttpsUrls` array since the local server is HTTP-only.
- **Removed CI-ignore patterns** — Tests that now hit the local server no longer need `IgnoreInCI`/`IgnoreInCIIfBadNetwork`/`Assert.Inconclusive` workarounds. Tests still using external URLs (microsoft.com, badssl.com) retain their CI-ignore patterns.
- **SSL tests unchanged** — Tests requiring real HTTPS (SSL certificate validation) still use `NetworkResources.MicrosoftUrl`.

🤖 Pull request created by Copilot

---------

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

Copy link
Copy Markdown
Collaborator

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

Pipeline on Agent
Hash: 979770581d63b63b5593dbde8fadfbe553274aab [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

✅ [PR Build #9797705] Build passed (Build packages) ✅

Pipeline on Agent
Hash: 979770581d63b63b5593dbde8fadfbe553274aab [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: 979770581d63b63b5593dbde8fadfbe553274aab [PR build]

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

✅ [PR Build #9797705] Build passed (Build macOS tests) ✅

Pipeline on Agent
Hash: 979770581d63b63b5593dbde8fadfbe553274aab [PR build]

@vs-mobiletools-engineering-service2

Copy link
Copy Markdown
Collaborator

🔥 [CI Build #9797705] Test results 🔥

Test results

❌ Tests failed on VSTS: test results

0 tests crashed, 22 tests failed, 188 tests passed.

Failures

❌ monotouch tests (macOS)

1 tests failed, 23 tests passed.

Failed tests

  • monotouch-test/macOS/Release (NativeAOT, ARM64): TimedOut (Execution timed out after 1200 seconds.
    Test run crashed)

Html Report (VSDrops) Download

❌ monotouch tests (tvOS)

21 tests failed, 0 tests passed.

Failed tests

  • monotouch-test/tvOS - simulator/Debug: LaunchTimedOut
  • monotouch-test/tvOS - simulator/Release (link sdk): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Release (link all): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Debug (PrepareAssemblies): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Debug (LinkSdk): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Debug (static registrar): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Release (all optimizations): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Debug (ARM64): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Release (NativeAOT, ARM64): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Release (trimmable static registrar, NativeAOT, ARM64): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Debug (managed static registrar): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Release (managed static registrar, all optimizations): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Release (NativeAOT, x64): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Release (trimmable static registrar, NativeAOT, x64): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Debug (interpreter): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Release (interpreter): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Release (compat inline Class.GetHandle): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Release (strict inline Class.GetHandle): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Release (compat inline dlfcn): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Release (strict inline dlfcn, link sdk): LaunchTimedOut
  • monotouch-test/tvOS - simulator/Release (NativeAOT, .NET 11 defaults): LaunchTimedOut

Html Report (VSDrops) Download

Successes

✅ assembly-processing: All 1 tests passed. Html Report (VSDrops) Download
✅ cecil: All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. Html Report (VSDrops) Download
✅ generator: All 5 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 6 tests passed. Html Report (VSDrops) Download
✅ linker (iOS): All 15 tests passed. Html Report (VSDrops) Download
✅ linker (MacCatalyst): All 15 tests passed. Html Report (VSDrops) Download
✅ linker (macOS): All 21 tests passed. Html Report (VSDrops) Download
✅ linker (tvOS): All 15 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 21 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 24 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ sharpie: All 1 tests passed. Html Report (VSDrops) Download
✅ windows: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

macOS tests

✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sequoia (15): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. Html Report (VSDrops) Download

Linux Build Verification

Linux build succeeded

Pipeline on Agent
Hash: 979770581d63b63b5593dbde8fadfbe553274aab [PR build]

@github-actions

Copy link
Copy Markdown
Contributor Author

⏭️ Skipping merge update: this PR is a draft. Convert to ready when you want automated updates to resume.

Generated by Code Radiator · sonnet45 649.2K ·

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