Skip to content

Commit 99a4a0b

Browse files
committed
Merge remote-tracking branch 'origin/main' into support-composer-icons
2 parents 478d2c3 + 2256474 commit 99a4a0b

File tree

545 files changed

+9849
-12707
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

545 files changed

+9849
-12707
lines changed

.github/agents/xml-doc-writer.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
name: xml-doc-writer
3+
description: Specialized agent for working with XML docs in C# source code.
4+
---
5+
6+
## Role
7+
8+
You are a specialized agent for writing XML docs in C# source code. Your job is to validate and improve existing XML docs, and also write XML docs.
9+
10+
## When to Invoke
11+
12+
- When asked to from the Copilot CLI.
13+
14+
## Workflow
15+
16+
Step 1: Gather required information
17+
18+
Before invoking this skill, make sure to know exactly which C# API whose XML docs to work on.
19+
20+
Step 2: Write XML docs
21+
22+
* Add XML docs for public or protected members and types that don't have any docs.
23+
* Remove any XML docs that are exactly "To be added."
24+
* If there's an XML doc that is added with an include attribute, replace the include attribute with the contents from the included file instead. Also remove the inlined content from the included file, and if there's nothing left in the included file, remove that file completely.
25+
* Verify existing XML comments for language, grammar, consistency and correctness.
26+
* Create 'see cref' attributes whenever suitable.
27+
* Remove unnecessary whitespace between the triple-slash and the xml comment; but keep/fix correct indentation.
28+
* Correct indentation: each nesting level adds exactly 2 spaces of indentation.
29+
* Reorder any top-level XML elements to have the following order: summary, value, param, return, exception, remarks.

.github/workflows/linux-build.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# yamllint disable rule:line-length rule:document-start rule:truthy
2+
name: Linux Build Verification
3+
on:
4+
pull_request:
5+
6+
permissions:
7+
contents: read
8+
9+
jobs:
10+
linux-build:
11+
name: Verify Linux Build
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: 'Checkout'
16+
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: 0
19+
submodules: recursive
20+
21+
- name: Check system dependencies
22+
run: |
23+
set -ex
24+
./system-dependencies.sh
25+
26+
- name: Build on Linux
27+
run: |
28+
set -ex
29+
make -j$(nproc)

.gitmodules

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[submodule "external/Xamarin.MacDev"]
22
path = external/Xamarin.MacDev
3-
url = ../../dotnet/macios-devtools
3+
url = https://github.com/dotnet/macios-devtools
44
branch = main
55

Directory.Build.props

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,11 @@
88
<MicrosoftBuildFrameworkPackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildFrameworkPackageVersion>
99
<MicrosoftBuildTasksCorePackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildTasksCorePackageVersion>
1010
<MicrosoftBuildUtilitiesCorePackageVersion>$(MicrosoftBuildPackageVersion)</MicrosoftBuildUtilitiesCorePackageVersion>
11+
<NUnitPackageVersion>4.4.0</NUnitPackageVersion>
12+
<NUnitConsoleRunnerPackageVersion>3.22.0</NUnitConsoleRunnerPackageVersion>
13+
<NUnit3TestAdapterPackageVersion>6.1.0</NUnit3TestAdapterPackageVersion>
1114
<NUnitXmlTestLoggerPackageVersion>3.1.15</NUnitXmlTestLoggerPackageVersion>
15+
<MicrosoftNETTestSdkPackageVersion>18.0.1</MicrosoftNETTestSdkPackageVersion>
1216
<!-- Fix transient dependency issue found by component governance 4.7.0 -> 4.7.2 brought by Microsoft.Build package -->
1317
<SystemDrawingCommonPackageVersion>4.7.2</SystemDrawingCommonPackageVersion>
1418
<!-- Fix transient dependency issue found by component governance 4.7.0 -> 4.7.1 brought by Microsoft.Build.Tasks.Core package -->

Make.config

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
include $(TOP)/mk/subdirs.mk
22

3+
# Detect if we're building on Linux
4+
UNAME_S:=$(shell uname -s)
5+
ifeq ($(UNAME_S),Linux)
6+
IS_LINUX=1
7+
endif
8+
39
# Common cURL command:
410
# --fail: return an exit code if the connection succeeded, but returned an HTTP error code.
511
# --location: follow redirects
@@ -203,6 +209,7 @@ MACCATALYST_NUGET_VERSION_FULL=$(MACCATALYST_NUGET_VERSION_NO_METADATA)$(NUGET_B
203209
# Xcode version should have both a major and a minor version (even if the minor version is 0)
204210
XCODE_VERSION=26.2
205211
XCODE_URL=https://dl.internalx.com/internal-files/xcodes/Xcode_26.2.xip
212+
ifndef IS_LINUX
206213
XCODE_DEVELOPER_ROOT=/Applications/Xcode_26.2.0.app/Contents/Developer
207214
XCODE_PRODUCT_BUILD_VERSION:=$(shell /usr/libexec/PlistBuddy -c 'Print :ProductBuildVersion' $(XCODE_DEVELOPER_ROOT)/../version.plist 2>/dev/null || echo " $(shell tput setaf 1 2>/dev/null)The required Xcode ($(XCODE_VERSION)) is not installed in $(basename $(basename $(XCODE_DEVELOPER_ROOT)))$(shell tput sgr0 2>/dev/null)" >&2)
208215

@@ -224,6 +231,12 @@ endif
224231
# Tell both Xcode and our build logic which Xcode we're using.
225232
export DEVELOPER_DIR=$(XCODE_DEVELOPER_ROOT)
226233
export MD_APPLE_SDK_ROOT=$(abspath $(XCODE_DEVELOPER_ROOT)/../..)
234+
else
235+
# On Linux, set placeholder Xcode values
236+
XCODE_PRODUCT_BUILD_VERSION=
237+
XCODE_IS_STABLE=true
238+
XCODE_IS_PREVIEW=false
239+
endif
227240

228241
# We don't need to be told there are workload updates
229242
export DOTNET_CLI_WORKLOAD_UPDATE_NOTIFY_DISABLE=true
@@ -350,7 +363,7 @@ endif
350363
$(Q) grep '<MicrosoftDotNetArcadeSdkPackageVersion>' $(TOP)/eng/Version.Details.props | sed -e 's/<*\/*MicrosoftDotNetArcadeSdkPackageVersion>//g' -e 's/[ \t]*/ARCADE_VERSION=/' >> [email protected]
351364
$(Q) mv [email protected] $@
352365

353-
$(TOP)/Build.props: Make.config
366+
$(TOP)/Build.props: $(TOP)/Make.config
354367
$(Q) rm -f [email protected]
355368
$(Q) printf "<Project>\n" >> [email protected]
356369
$(Q) printf "\t<PropertyGroup>\n" >> [email protected]

Makefile

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
TOP=.
2-
SUBDIRS=builds runtime src msbuild tools
2+
SUBDIRS=builds
33
include $(TOP)/Make.config
44
include $(TOP)/mk/versions.mk
55

6+
# On Linux, skip directories that require native compilation or macOS platform
7+
ifndef IS_LINUX
8+
SUBDIRS += runtime
9+
endif
10+
11+
SUBDIRS += src msbuild tools
12+
13+
ifndef IS_LINUX
614
SUBDIRS += dotnet
15+
endif
716

817
#
918
# Common

NuGet.config

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
<clear />
1111
<!--Begin: Package sources managed by Dependency Flow automation. Do not edit the sources below.-->
1212
<!-- Begin: Package sources from dotnet-dotnet -->
13-
<add key="darc-pub-dotnet-dotnet-9441e5b" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-dotnet-9441e5bb/nuget/v3/index.json" />
13+
<add key="darc-pub-dotnet-dotnet-455f135" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-dotnet-455f1358/nuget/v3/index.json" />
1414
<!-- End: Package sources from dotnet-dotnet -->
1515
<!-- Begin: Package sources from dotnet-macios -->
16-
<add key="darc-pub-dotnet-macios-e6a0fb7" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-macios-e6a0fb79/nuget/v3/index.json" />
16+
<add key="darc-pub-dotnet-macios-45f29c7" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-macios-45f29c7b/nuget/v3/index.json" />
1717
<!-- End: Package sources from dotnet-macios -->
1818
<!-- Begin: Package sources from xamarin-xamarin-macios -->
1919
<!-- End: Package sources from xamarin-xamarin-macios -->
@@ -38,10 +38,14 @@
3838
<add key="darc-pub-dotnet-runtime-ad2d4fbc" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-ad2d4fbc/nuget/v3/index.json" />
3939
<!-- Add a 8.0.23 feed -->
4040
<add key="darc-pub-dotnet-runtime-891f8976" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-891f8976/nuget/v3/index.json" />
41+
<!-- Add a 8.0.24 feed -->
42+
<add key="darc-pub-dotnet-runtime-b43df221" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-b43df221/nuget/v3/index.json" />
4143
<!-- Add a 9.0.11 feed -->
4244
<add key="darc-pub-dotnet-runtime-35fe9c61" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-35fe9c61/nuget/v3/index.json" />
4345
<!-- Add a 9.0.12 feed -->
4446
<add key="darc-pub-dotnet-runtime-9c2fb4b7" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-9c2fb4b7/nuget/v3/index.json" />
47+
<!-- Add a 9.0.13 feed -->
48+
<add key="darc-pub-dotnet-runtime-7dd1559a" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/darc-pub-dotnet-runtime-7dd1559a/nuget/v3/index.json" />
4549
</packageSources>
4650
<disabledPackageSources>
4751
<clear />

builds/Makefile

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,56 +12,73 @@ else
1212
DOTNET_ARCH=x64
1313
endif
1414

15+
ifeq ($(OS),Windows_NT)
16+
DOTNET_INSTALL_SCRIPT=dotnet-install.ps1
17+
else
18+
DOTNET_INSTALL_SCRIPT=dotnet-install.sh
19+
endif
20+
1521
include $(TOP)/mk/colors.mk
1622

1723
DOTNET_FILENAME=$(DOTNET_VERSION).tar.gz
1824
DOTNET_CACHE_FILENAME=$(HOME)/Library/Caches/xamarin-macios/$(DOTNET_FILENAME)
1925

20-
downloads/$(DOTNET_INSTALL_NAME): dotnet-install.sh
26+
downloads/$(DOTNET_INSTALL_NAME): $(DOTNET_INSTALL_SCRIPT)
2127
$(Q) echo "Downloading and installing .NET $(DOTNET_VERSION) ($(DOTNET_ARCH)) into $@..."
28+
ifeq ($(OS),Windows_NT)
29+
rm -Rf "$@"
30+
pwsh -ExecutionPolicy ByPass -NoProfile -Command '& ./$(DOTNET_INSTALL_SCRIPT) -Version "$(DOTNET_VERSION)" -InstallDir "[email protected]" -Verbose'
31+
32+
else
2233
$(Q) if test -f $(DOTNET_CACHE_FILENAME); then \
2334
echo "Found a cached version of .NET $(DOTNET_VERSION) in $(DOTNET_CACHE_FILENAME)."; \
2435
mkdir -p "[email protected]"; \
2536
tar -xzf $(DOTNET_CACHE_FILENAME) -C "[email protected]"; \
2637
else \
27-
./dotnet-install.sh --install-dir "$@.tmp" --version "$(DOTNET_VERSION)" --architecture $(DOTNET_ARCH) --no-path --keep-zip --zip-path "downloads/$(DOTNET_FILENAME)" $$DOTNET_INSTALL_EXTRA_ARGS; \
28-
cp -c downloads/$(DOTNET_FILENAME) $(DOTNET_CACHE_FILENAME); \
38+
./$(DOTNET_INSTALL_SCRIPT) --install-dir "[email protected]" --version "$(DOTNET_VERSION)" --architecture $(DOTNET_ARCH) --no-path --keep-zip --zip-path "downloads/$(DOTNET_FILENAME)" $$DOTNET_INSTALL_EXTRA_ARGS; \
39+
mkdir -p $$(dirname $(DOTNET_CACHE_FILENAME)); \
40+
$(CP) downloads/$(DOTNET_FILENAME) $(DOTNET_CACHE_FILENAME); \
2941
echo "Cached the download of $(DOTNET_FILENAME) in ~/Library/Caches/xamarin-macios"; \
3042
fi
3143
$(Q) rm -Rf "$@"
3244
$(Q) mv "[email protected]" "$@"
45+
endif
3346
$(Q) echo "Downloaded and installed .NET $(DOTNET_VERSION) into $@."
3447

3548
# Create a symlink with a persistent (non-version-dependent) name
3649
# The dependency on the stamp file is to ensure the symlink is re-created
3750
# when the .NET version changes.
3851
all-local:: downloads/dotnet
3952
dotnet:: downloads/dotnet
53+
54+
ifeq ($(OS),Windows_NT)
55+
# On Windows, for simplicity just copy the entire directory (creating symbolic links on Windows requires admin rights).
56+
downloads/dotnet: downloads/$(DOTNET_INSTALL_NAME)
57+
$(Q) rm -f $@
58+
$(Q) $(CP) -r downloads/$(DOTNET_INSTALL_NAME) $@
59+
else
4060
downloads/dotnet: .stamp-dotnet-symlink-$(DOTNET_VERSION)
4161
$(Q) mkdir -p downloads
4262
$(Q) rm -f $@
4363
$(Q) ln -s $(abspath downloads/$(DOTNET_INSTALL_NAME)) $@
64+
endif
4465

4566
.stamp-dotnet-symlink-$(DOTNET_VERSION): Makefile
4667
$(Q) touch $@
4768

4869
# This is just a helpful target to print the url to the .pkg to download and install the current .NET version into the system.
49-
print-dotnet-pkg-urls: dotnet-install.sh
70+
print-dotnet-pkg-urls: $(DOTNET_INSTALL_SCRIPT)
5071
$(Q) rm -f $@-found-it.stamp
51-
$(Q) for url in $$(./dotnet-install.sh --version "$(DOTNET_VERSION)" --architecture $(DOTNET_ARCH) --no-path $$DOTNET_INSTALL_EXTRA_ARGS --dry-run | grep URL.*primary: | sed 's/.*primary: //'); do \
72+
$(Q) for url in $$(./$(DOTNET_INSTALL_SCRIPT) --version "$(DOTNET_VERSION)" --architecture $(DOTNET_ARCH) --no-path $$DOTNET_INSTALL_EXTRA_ARGS --dry-run | grep URL.*primary: | sed 's/.*primary: //'); do \
5273
pkg=$${url/tar.gz/pkg}; \
5374
if $(CURL) -I "$$pkg" >/dev/null 2>&1; then echo "$$pkg"; touch $@-found-it.stamp; break; fi; \
5475
done
5576
$(Q) if ! test -f $@-found-it.stamp; then echo "No working urls were found."; exit 1; fi
5677
$(Q) rm -f $@-found-it.stamp
5778

58-
# We need https://github.com/dotnet/install-scripts/pull/555, which hasn't been released yet.
59-
# Revert to using https://builds.dotnet.microsoft.com/dotnet/scripts/v1/dotnet-install.sh whenever https://builds.dotnet.microsoft.com/dotnet/scripts/v1/dotnet-install.sh has been updated.
60-
# DOTNET_DOWNLOAD_URL?=https://raw.githubusercontent.com/dotnet/install-scripts/d48e000adad7243861d799ec86c0bf7210a8fc7a/src/dotnet-install.sh
61-
62-
DOTNET_DOWNLOAD_URL?=https://builds.dotnet.microsoft.com/dotnet/scripts/v1/dotnet-install.sh
79+
DOTNET_DOWNLOAD_URL?=https://builds.dotnet.microsoft.com/dotnet/scripts/v1/$(DOTNET_INSTALL_SCRIPT)
6380

64-
dotnet-install.sh: Makefile
81+
$(DOTNET_INSTALL_SCRIPT): Makefile
6582
$(Q) $(CURL_RETRY) $(DOTNET_DOWNLOAD_URL) --output $@.tmp
6683
$(Q) chmod +x $@.tmp
6784
$(Q) mv $@.tmp $@
@@ -112,6 +129,7 @@ DOTNET_DOWNLOADS = \
112129
.stamp-download-dotnet-packages \
113130
.stamp-install-t4 \
114131

132+
download: downloads/dotnet
115133
dotnet:: $(DOTNET_DOWNLOADS)
116134
all-local:: $(DOTNET_DOWNLOADS)
117135

builds/Versions-MacCatalyst.plist.in

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,6 @@
149149
<key>Optimizations</key>
150150
<dict>
151151
<!-- The key is the value to be passed to mtouch. The string is a very short description. Any IDE UI should also point to the documentation for the optimizations. -->
152-
<key>inline-intptr-size</key>
153-
<string>Inline IntPtr.Size</string>
154152
<key>inline-runtime-arch</key>
155153
<string>Inline NSObject.IsDirectBinding</string>
156154
<key>dead-code-elimination</key>

builds/Versions-iOS.plist.in

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,6 @@
173173
<key>Optimizations</key>
174174
<dict>
175175
<!-- The key is the value to be passed to mtouch. The string is a very short description. Any IDE UI should also point to the documentation for the optimizations. -->
176-
<key>inline-intptr-size</key>
177-
<string>Inline IntPtr.Size</string>
178176
<key>inline-runtime-arch</key>
179177
<string>Inline NSObject.IsDirectBinding</string>
180178
<key>dead-code-elimination</key>

0 commit comments

Comments
 (0)