Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
572c94a
Onboard to dotnet/arcade build system
rmarinho Mar 17, 2026
77e4709
Add eng/setup-darc.sh for dependency flow setup
rmarinho Mar 17, 2026
56658ce
Updated for https://dev.azure.com/dnceng/7ea9116e-9fac-403d-b258-b31f…
Mar 17, 2026
b65bd74
Fix NU1507 warnings and add publish gate parameter
rmarinho Mar 17, 2026
1dfba67
Update dependencies from dotnet/maui via darc
rmarinho Mar 17, 2026
5628844
Pin Maui dependencies to stable 10.0.41
rmarinho Mar 17, 2026
3160ba3
Merge branch 'users/merlinbot/1es-pt-auto-baselining-pr' into arcade-…
rmarinho Mar 17, 2026
74fc531
Set DotNetSignType to test
rmarinho Mar 17, 2026
c72b675
Switch to .NET 10 Arcade SDK (10.0.0-beta.26164.1)
rmarinho Mar 17, 2026
272c336
Fix build errors: implicit test SDK refs and sample workloads
rmarinho Mar 17, 2026
3e16e82
Install MAUI workloads before build
rmarinho Mar 17, 2026
5df7695
Fix Windows build: scope cibuild to DevFlow.slnf
jfversluis Mar 18, 2026
165994a
Fix NU1009: remove implicit package versions from CPM
jfversluis Mar 18, 2026
f43e689
Fix workload install: use dotnet from PATH instead of .dotnet\dotnet
jfversluis Mar 18, 2026
1704dbe
Fix workload install: use UseDotNet task to bootstrap SDK first
jfversluis Mar 18, 2026
bbc3567
Fix strong-name and Android SDK errors on dnceng build
jfversluis Mar 18, 2026
96fd946
Fix LICENSE, platform compat, and null reference errors
jfversluis Mar 18, 2026
204ed22
Fix warnings-as-errors from Arcade cibuild
jfversluis Mar 18, 2026
ff97a89
Remove .DS_Store and add to .gitignore
jfversluis Mar 18, 2026
ee0f4b6
Fix remaining nullable warnings-as-errors
jfversluis Mar 18, 2026
71e2a25
Add missing ObjCRuntime using for Selector type on macOS
jfversluis Mar 18, 2026
6aa8128
Remove SymbolPackageFormat snupkg — Arcade handles symbols
jfversluis Mar 18, 2026
69e6769
Remove duplicate README pack from Blazor csproj
jfversluis Mar 18, 2026
27c3759
Skip JS file signing — static web assets don't need code signing
jfversluis Mar 18, 2026
dce69d0
Add IsPackable=true to all library projects
jfversluis Mar 18, 2026
44bcbfb
Set testResultsFormat to xunit to suppress trx warning
jfversluis Mar 18, 2026
caffc49
Add 3rd-party DLLs to signing config with 3PartySHA2 certificate
jfversluis Mar 19, 2026
f66461b
Reset version to 0.1.0 for initial maui-labs release
jfversluis Mar 19, 2026
5e54be4
Move community docs to .github/ to declutter repo root
jfversluis Mar 19, 2026
2af8969
Add IsShipping=true to all packable library projects
jfversluis Mar 19, 2026
d2a9469
Fix stale version in arcade docs (0.23.1 → 0.1.0)
jfversluis Mar 19, 2026
e60b409
Switch DotNetSignType from test to real for production signing
jfversluis Mar 19, 2026
d03549b
Revert to test signing until ESRP onboarding is complete
jfversluis Mar 19, 2026
22a6fac
Merge remote-tracking branch 'origin/main' into arcade-onboarding-v2
jfversluis Mar 19, 2026
4109241
Align GitHub Actions CI with Azure DevOps Arcade build
jfversluis Mar 19, 2026
01bff6a
Fix GH Actions: use absolute path for --projects flag
jfversluis Mar 19, 2026
4c43927
Upgrade GitHub Actions to Node.js 24 versions
jfversluis Mar 19, 2026
6df49a7
Remove Version.props and update arcade docs with all 8 shipping packages
jfversluis Mar 19, 2026
5e155fb
Remove Arcade .dotnet/ and .packages/ caches from git tracking
jfversluis Mar 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions .config/1espt/PipelineAutobaseliningConfig.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# 1ES Pipeline Template auto-baselining configuration.
# Pipeline IDs will be populated once pipelines are registered in Azure DevOps.
#
# See: https://eng.ms/docs/cloud-ai-platform/devdiv/one-engineering-system-1es/1es-docs/1es-pipeline-templates/features/sdlanalysis/overview
pipelines: {}
## DO NOT MODIFY THIS FILE MANUALLY. This is part of auto-baselining from 1ES Pipeline Templates. Go to [https://aka.ms/1espt-autobaselining] for more details.

pipelines: {1604: {retail: {source: {policheck: {lastModifiedDate: 2026-03-17}, eslint: {lastModifiedDate: 2026-03-17}, psscriptanalyzer: {lastModifiedDate: 2026-03-17}, armory: {lastModifiedDate: 2026-03-17}}, binary: {binskim: {lastModifiedDate: 2026-03-17}}}}}
File renamed without changes.
File renamed without changes.
File renamed without changes.
48 changes: 30 additions & 18 deletions .github/workflows/_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,40 +26,52 @@ jobs:
os: [macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Setup .NET
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
global-json-file: global.json

- name: Install workloads
run: dotnet workload install maui macos
run: dotnet workload install maui macos maui-tizen

- name: Restore
run: dotnet restore ${{ inputs.project-path }}
- name: Install Android SDK dependencies (Windows)
if: matrix.os == 'windows-latest'
run: dotnet build -t:InstallAndroidDependencies -f net10.0-android -p:AndroidSdkDirectory="%ANDROID_HOME%" -p:AcceptAndroidSDKLicenses=true src\DevFlow\Microsoft.Maui.DevFlow.Agent\Microsoft.Maui.DevFlow.Agent.csproj
shell: cmd

- name: Build
run: dotnet build ${{ inputs.project-path }} -c Release --no-restore
- name: Install Android SDK dependencies (macOS)
if: matrix.os == 'macos-latest'
run: dotnet build -t:InstallAndroidDependencies -f net10.0-android -p:AndroidSdkDirectory="$ANDROID_HOME" -p:AcceptAndroidSDKLicenses=true src/DevFlow/Microsoft.Maui.DevFlow.Agent/Microsoft.Maui.DevFlow.Agent.csproj

- name: Test
if: inputs.run-tests
run: dotnet test ${{ inputs.project-path }} -c Release --no-build --no-restore --logger trx --results-directory TestResults
- name: Build, Test and Pack (Windows)
if: matrix.os == 'windows-latest'
run: >
eng\common\cibuild.cmd
-configuration Release
-prepareMachine
-projects %CD%\${{ inputs.project-path }}
shell: cmd

- name: Build and Test (macOS)
if: matrix.os == 'macos-latest'
run: >
./eng/common/cibuild.sh
--configuration Release
--prepareMachine
--projects $(pwd)/${{ inputs.project-path }}

- name: Upload test results
if: inputs.run-tests && always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: test-results-${{ inputs.project-name }}-${{ matrix.os }}
path: TestResults/**/*.trx

- name: Pack
if: inputs.pack && matrix.os == 'windows-latest'
run: dotnet pack ${{ inputs.project-path }} -c Release --no-build -o ./artifacts
path: artifacts/TestResults/**/*.xml

- name: Upload packages
if: inputs.pack && matrix.os == 'windows-latest'
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: packages-${{ inputs.project-name }}
path: ./artifacts/*.nupkg
path: artifacts/packages/**/*.nupkg
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## Arcade SDK local caches
.dotnet/
.packages/

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
Expand Down Expand Up @@ -416,3 +420,4 @@ FodyWeavers.xsd
*.msix
*.msm
*.msp
.DS_Store
22 changes: 20 additions & 2 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,15 +1,33 @@
<Project>

<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" />

<PropertyGroup>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
<Copyright>$(CopyrightNetFoundation)</Copyright>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/dotnet/maui-labs</PackageProjectUrl>
<RepositoryUrl>https://github.com/dotnet/maui-labs</RepositoryUrl>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<!-- NU1507: official builds inject internal feeds via SetupNugetSources that aren't in packageSourceMapping -->
<NoWarn>$(NoWarn);NU1507</NoWarn>
<DebugType>embedded</DebugType>
<DebugSymbols>true</DebugSymbols>
<!-- Default to non-shipping; shipping projects override per-csproj -->
<IsShipping>false</IsShipping>
<!-- Disable strong naming: MAUI and Platform.Maui packages are not strong-named -->
<SignAssembly>false</SignAssembly>
</PropertyGroup>

<!-- Import shared packaging properties for NuGet packages -->
<Import Project="$(MSBuildThisFileDirectory)eng/Common.props" />

<!-- Common SupportedOSPlatformVersion for all MAUI projects -->
<PropertyGroup Condition="'$(UseMaui)' == 'true'">
<!-- Common SupportedOSPlatformVersion — no UseMaui gate because UseMaui is set
in project files which are evaluated after Directory.Build.props. The inner
platform conditions are already self-gating (only match platform TFMs). -->
<PropertyGroup>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">15.0</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">15.0</SupportedOSPlatformVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">24.0</SupportedOSPlatformVersion>
Expand Down
1 change: 1 addition & 0 deletions Directory.Build.targets
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<Project>

<Import Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" />
<Import Project="$(MSBuildThisFileDirectory)eng/Common.targets" />

</Project>
70 changes: 32 additions & 38 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,61 +5,55 @@
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
</PropertyGroup>

<!-- Shared MAUI version -->
<PropertyGroup>
<MauiVersion>10.0.31</MauiVersion>
</PropertyGroup>

<!-- .NET MAUI -->
<!-- .NET MAUI (versions from eng/Versions.props, flowing via maestro) -->
<ItemGroup Label="MAUI">
<PackageVersion Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
<PackageVersion Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)" />
<PackageVersion Include="Microsoft.Maui.Essentials" Version="$(MauiVersion)" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebView.Maui" Version="$(MauiVersion)" />
<PackageVersion Include="Microsoft.Maui.Controls" Version="$(MicrosoftMauiControlsVersion)" />
<PackageVersion Include="Microsoft.Maui.Controls.Compatibility" Version="$(MicrosoftMauiControlsCompatibilityVersion)" />
<PackageVersion Include="Microsoft.Maui.Essentials" Version="$(MicrosoftMauiEssentialsVersion)" />
<PackageVersion Include="Microsoft.AspNetCore.Components.WebView.Maui" Version="$(MicrosoftAspNetCoreComponentsWebViewMauiVersion)" />
</ItemGroup>

<!-- Microsoft Extensions -->
<!-- Microsoft Extensions (versions from eng/Versions.props, flowing via maestro) -->
<ItemGroup Label="Extensions">
<PackageVersion Include="Microsoft.Extensions.Http" Version="10.0.5" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="10.0.5" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.5" />
<PackageVersion Include="Microsoft.Extensions.Logging.Debug" Version="10.0.5" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="$(MicrosoftExtensionsHttpVersion)" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="$(MicrosoftExtensionsHostingVersion)" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="$(MicrosoftExtensionsLoggingAbstractionsVersion)" />
<PackageVersion Include="Microsoft.Extensions.Logging.Debug" Version="$(MicrosoftExtensionsLoggingDebugVersion)" />
</ItemGroup>

<!-- DevFlow dependencies -->
<!-- DevFlow dependencies (pinned, third party) -->
<ItemGroup Label="DevFlow">
<PackageVersion Include="Fizzler" Version="1.3.1" />
<PackageVersion Include="SkiaSharp" Version="3.119.2" />
<PackageVersion Include="Spectre.Console" Version="0.54.0" />
<PackageVersion Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
<PackageVersion Include="System.Text.Json" Version="10.0.5" />
<PackageVersion Include="Websocket.Client" Version="5.3.0" />
<PackageVersion Include="XenoAtom.Terminal.UI" Version="1.7.1" />
<PackageVersion Include="ModelContextProtocol" Version="1.1.0" />
<PackageVersion Include="Interop.UIAutomationClient" Version="10.19041.0" />
<PackageVersion Include="Fizzler" Version="$(FizzlerVersion)" />
<PackageVersion Include="SkiaSharp" Version="$(SkiaSharpVersion)" />
<PackageVersion Include="Spectre.Console" Version="$(SpectreConsoleVersion)" />
<PackageVersion Include="System.CommandLine" Version="$(SystemCommandLineVersion)" />
<PackageVersion Include="System.Text.Json" Version="$(SystemTextJsonVersion)" />
<PackageVersion Include="Websocket.Client" Version="$(WebsocketClientVersion)" />
<PackageVersion Include="XenoAtom.Terminal.UI" Version="$(XenoAtomTerminalUIVersion)" />
<PackageVersion Include="ModelContextProtocol" Version="$(ModelContextProtocolVersion)" />
<PackageVersion Include="Interop.UIAutomationClient" Version="$(InteropUIAutomationClientVersion)" />
</ItemGroup>

<!-- Platform extensions -->
<!-- Platform extensions (pinned) -->
<ItemGroup Label="Platform">
<PackageVersion Include="Platform.Maui.MacOS" Version="0.3.0" />
<PackageVersion Include="Platform.Maui.MacOS.BlazorWebView" Version="0.3.0" />
<PackageVersion Include="Platform.Maui.MacOS.Essentials" Version="0.3.0" />
<PackageVersion Include="Platform.Maui.Linux.Gtk4" Version="0.6.0" />
<PackageVersion Include="Platform.Maui.Linux.Gtk4.BlazorWebView" Version="0.6.0" />
<PackageVersion Include="Platform.Maui.Linux.Gtk4.Essentials" Version="0.6.0" />
<PackageVersion Include="Platform.Maui.MacOS" Version="$(PlatformMauiMacOSVersion)" />
<PackageVersion Include="Platform.Maui.MacOS.BlazorWebView" Version="$(PlatformMauiMacOSBlazorWebViewVersion)" />
<PackageVersion Include="Platform.Maui.MacOS.Essentials" Version="$(PlatformMauiMacOSEssentialsVersion)" />
<PackageVersion Include="Platform.Maui.Linux.Gtk4" Version="$(PlatformMauiLinuxGtk4Version)" />
<PackageVersion Include="Platform.Maui.Linux.Gtk4.BlazorWebView" Version="$(PlatformMauiLinuxGtk4BlazorWebViewVersion)" />
<PackageVersion Include="Platform.Maui.Linux.Gtk4.Essentials" Version="$(PlatformMauiLinuxGtk4EssentialsVersion)" />
</ItemGroup>

<!-- Testing -->
<!-- Testing (Microsoft.NET.Test.Sdk and xunit.runner.visualstudio are
implicitly provided by the Arcade SDK — do not define PackageVersion for them) -->
<ItemGroup Label="Testing">
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
<PackageVersion Include="xunit" Version="2.9.3" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.5" />
<PackageVersion Include="coverlet.collector" Version="8.0.0" />
<PackageVersion Include="xunit" Version="$(XunitVersion)" />
<PackageVersion Include="coverlet.collector" Version="$(CoverletCollectorVersion)" />
</ItemGroup>

<!-- Source Link -->
<ItemGroup Label="SourceLink">
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="10.0.201" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="$(MicrosoftSourceLinkGitHubVersion)" />
</ItemGroup>

</Project>
36 changes: 19 additions & 17 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
MIT License
The MIT License (MIT)

Copyright (c) .NET Foundation. All rights reserved.
Copyright (c) .NET Foundation and Contributors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
All rights reserved.

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
8 changes: 7 additions & 1 deletion NuGet.config
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
<packageSources>
<clear />
<!-- dnceng public feeds: accessible from 1ES network-isolated agents -->
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" protocolVersion="3" />
<add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" protocolVersion="3" />
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" protocolVersion="3" />
<add key="dotnet10" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet10/nuget/v3/index.json" protocolVersion="3" />
</packageSources>
<disabledPackageSources>
<clear />
</disabledPackageSources>
</configuration>
53 changes: 53 additions & 0 deletions docs/arcade.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# Arcade Build System

This repository uses the [dotnet/arcade](https://github.com/dotnet/arcade) build system for versioning, signing, packaging, publishing, and CI/CD.

## Key Files

| File | Purpose |
|------|---------|
| `global.json` | Pins Arcade SDK version |
| `Directory.Build.props` | Imports Arcade Sdk.props, sets common properties |
| `Directory.Build.targets` | Imports Arcade Sdk.targets |
| `eng/Versions.props` | Version prefix, pre-release label, all dependency versions |
| `eng/Version.Details.xml` | Tracks dependency source repos and SHAs for maestro |
| `eng/Publishing.props` | Publishing configuration (V3) |
| `eng/common/` | Shared arcade build scripts (do not edit manually) |
| `Directory.Packages.props` | Central Package Management — versions reference `eng/Versions.props` properties |

## Versioning

Arcade manages versions automatically:
- **VersionPrefix**: `0.1.0` (from `eng/Versions.props`)
- **PreReleaseVersionLabel**: `preview`
- Official builds append build number: `0.1.0-preview.26166.3`

## Building

```bash
# Local build
dotnet build

# CI-style build (uses arcade scripts)
./eng/common/cibuild.sh --configuration Release --prepareMachine
```

## Shipping Packages

All DevFlow library packages have `IsShipping=true` and will be published to NuGet feeds:
- Microsoft.Maui.DevFlow.Agent
- Microsoft.Maui.DevFlow.Agent.Core
- Microsoft.Maui.DevFlow.Agent.Gtk
- Microsoft.Maui.DevFlow.Blazor
- Microsoft.Maui.DevFlow.Blazor.Gtk
- Microsoft.Maui.DevFlow.CLI
- Microsoft.Maui.DevFlow.Driver
- Microsoft.Maui.DevFlow.Logging

## Dependency Flow

Dependencies are tracked in `eng/Version.Details.xml` and updated automatically by maestro via darc subscriptions. See the PR description for setup commands.

## Updating eng/common/

The `eng/common/` directory is managed by arcade and updated automatically via darc. Do not edit files in this directory manually.
2 changes: 0 additions & 2 deletions eng/Common.props
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@
<PropertyGroup>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
</PropertyGroup>

<!-- Include repo-root README in NuGet package -->
Expand Down
5 changes: 5 additions & 0 deletions eng/Publishing.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<Project>
<PropertyGroup>
<PublishingVersion>3</PublishingVersion>
</PropertyGroup>
</Project>
11 changes: 11 additions & 0 deletions eng/Signing.props
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,22 @@
<!-- Third-party assemblies that ship inside our NuGet packages -->
<ItemGroup Label="Third Party Assemblies">
<FileSignInfo Include="Fizzler.dll" CertificateName="3PartySHA2" />
<FileSignInfo Include="Interop.UIAutomationClient.dll" CertificateName="3PartySHA2" />
<FileSignInfo Include="ModelContextProtocol.Core.dll" CertificateName="3PartySHA2" />
<FileSignInfo Include="ModelContextProtocol.dll" CertificateName="3PartySHA2" />
<FileSignInfo Include="Spectre.Console.dll" CertificateName="3PartySHA2" />
<FileSignInfo Include="Wcwidth.dll" CertificateName="3PartySHA2" />
<FileSignInfo Include="Websocket.Client.dll" CertificateName="3PartySHA2" />
<FileSignInfo Include="XenoAtom.Ansi.dll" CertificateName="3PartySHA2" />
<FileSignInfo Include="XenoAtom.Terminal.dll" CertificateName="3PartySHA2" />
<FileSignInfo Include="XenoAtom.Terminal.UI.dll" CertificateName="3PartySHA2" />
</ItemGroup>

<!-- File extension signing rules -->
<ItemGroup>
<!-- NuGet packages are signed with NuGet certificate -->
<FileExtensionSignInfo Update=".nupkg" CertificateName="NuGet" />
<!-- JS files don't need code signing — they are static web assets, not Windows Script Host files -->
<FileExtensionSignInfo Update=".js" CertificateName="None" />
</ItemGroup>
</Project>
Loading