Skip to content

Commit f867f4e

Browse files
Merge remote-tracking branch 'origin/feat/assemblystore-zstd' into feat/assemblystore-index-sizing
# Conflicts: # src/Sentry.Android.AssemblyReader/V2/StoreReader.cs # test/Sentry.Android.AssemblyReader.Tests/StoreReaderTests.cs
2 parents 66967da + 61a6234 commit f867f4e

22 files changed

Lines changed: 77 additions & 29 deletions

File tree

‎.github/workflows/build.yml‎

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@ jobs:
5050
- /tmp/node24:/__e/node24
5151
- os: macos-26 # Pin macos to get the version of Xcode that we need: https://github.com/actions/runner-images/issues/10703
5252
rid: macos # universal (osx-arm64 + osx-x64)
53-
- os: windows-latest
53+
- os: windows-2025-vs2026
5454
rid: win-x64
55-
- os: windows-11-arm
55+
- os: windows-11-vs2026-arm
5656
rid: win-arm64
5757

5858
steps:
@@ -121,10 +121,11 @@ jobs:
121121
- os: macos-26 # Pin macos to get the version of Xcode that we need: https://github.com/actions/runner-images/issues/10703
122122
rid: macos # universal (osx-arm64 + osx-x64)
123123
slnf: Sentry-CI-Build-macOS.slnf
124-
- os: windows-latest
124+
# .NET 10+ Native AOT requires VS 2026 (https://github.com/dotnet/runtime/issues/133835)
125+
- os: windows-2025-vs2026
125126
rid: win-x64
126127
slnf: Sentry-CI-Build-Windows.slnf
127-
- os: windows-11-arm
128+
- os: windows-11-vs2026-arm
128129
rid: win-arm64
129130
slnf: Sentry-CI-Build-Windows-arm64.slnf
130131

@@ -385,7 +386,7 @@ jobs:
385386
include:
386387
- os: ubuntu-24.04-arm
387388
rid: linux-arm
388-
- os: windows-latest
389+
- os: windows-2025-vs2026
389390
rid: win-x86
390391

391392
steps:

‎.github/workflows/verify-api.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
rid: macos
3131
slnf: Sentry-CI-Build-macOS.slnf
3232
# Windows is required to produce the .NET Framework (net48 / Net4_8) verified files
33-
- os: windows-latest
33+
- os: windows-2025-vs2026
3434
rid: win-x64
3535
slnf: Sentry-CI-Build-Windows.slnf
3636

‎AGENTS.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,11 @@ Two things worth knowing up front, because they cost the most time when missed:
9696
`dotnet pack` and the integration tests catch most of it and a solution-filter build does not,
9797
and the local checks must be run **serially**.
9898

99+
- Build samples locally with `GITHUB_ACTIONS=true`. Without CI's `CI_BUILD` define they stop at the
100+
DSN `#error` in `samples/SamplesShared.cs`, so later steps such as ILLink never run.
101+
- To tell a new-SDK regression from an existing failure, rebuild just the failing project and TFM
102+
with the previous `global.json`.
103+
99104
## Platform Targets
100105

101106
### Non-mobile (Linux / macOS / Windows)

‎CONTRIBUTING.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,10 @@ they cost nothing, and the next LTS transition brings some of those versions bac
237237
| `NETSDK1094` / `NETSDK1096` optimizing assemblies for performance failed | app `.csproj`s with an Android TFM | ReadyToRun can't target Android at all (`crossgen2`: `Target OS 'android' is not supported`), but the SDK may enable it by default. Set `PublishReadyToRun=false` on the affected app. |
238238
| iOS app builds fail with `requires Xcode X, the current version is Y` | `integration-test/*.ps1`, device test apps | Each .NET for iOS SDK pack pins an **exact** Xcode version, so only one iOS TFM is buildable on a given machine. Build the TFM matching the Xcode that CI pins, and don't try to cover two. Libraries skip this check, which is why only app builds are affected. |
239239
| Verify snapshots missing for the new TFM | `test/**/*.verified.txt` | Delete the snapshots for dropped TFMs. New ones for macOS-covered TFMs regenerate on a local test run. The `.Windows.` and `Net4_8` ones can only be produced on Windows — take them from the `<rid>-verify-test-results` CI artifact rather than hand-writing them; they are UTF-8 with BOM and no trailing newline. |
240+
| `CS0400` The type or namespace name '...' could not be found | `src/Sentry.Bindings.Android/Transforms/` | Newer Android binding generators stopped pruning methods whose parameter/return types are unbound, so a `Bind="false"` Java dependency leaks an unresolvable type into the generated C#. `remove-node` the offending member. Because the older generator already pruned it, the same entry warns `BG8A00` there - put net-N-only entries in their own transform file and `TransformFile Remove` it for older TFMs, since the SDK auto-globs `Transforms/**/*.xml` into every TFM. |
241+
| `CsWinRT1032` Collection expressions targeting non mutable interface type | any `-windows` TFM | A newer CsWinRT rejects a collection expression whose target is a non-mutable interface (`IEnumerable<T>`), because the synthesised type isn't trim/AOT-safe for WinRT. Cast the expression to a concrete array rather than changing the public signature it's passed to. |
242+
| `IL2037` No members were resolved for '...' | `Directory.Build.props` | External ILLink descriptors naming members that don't resolve. We ship none of our own, so these are always the platform's. `ILLinkTreatWarningsAsErrors` defaults to `TreatWarningsAsErrors`, so add the id to `WarningsNotAsErrors` to demote rather than silence it, and drop that once the platform fixes the descriptors. |
243+
| `LNK1322` cannot avoid potential ARM hazard (Cortex-A53 MPCore processor bug #843419) | `.github/workflows/*.yml` | Native AOT for .NET 10+ requires Visual Studio 2026 ([dotnet/runtime#133835](https://github.com/dotnet/runtime/issues/133835)), so Windows jobs use the VS 2026 runner images (`windows-2025-vs2026`, `windows-11-vs2026-arm`). `scripts/build-sentry-native.ps1` still compiles the shipped `sentry-native.lib` with the VS 2022 toolset (`-T v143`) so VS 2022 users can link it ([why](https://github.com/getsentry/sentry-dotnet/pull/5566#issuecomment-5671353352)). |
240244

241245
### Places that don't follow the usual rules
242246

‎Directory.Build.props‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@
2424
<!-- https://learn.microsoft.com/en-us/dotnet/core/compatibility/sdk/8.0/dotnet-restore-audit#version-introduced -->
2525
<WarningsNotAsErrors>NU1902;NU1903</WarningsNotAsErrors>
2626

27+
<!--
28+
IL2037 ("No members were resolved for ..."). We ship no descriptors of our own so every instance
29+
is external.
30+
31+
Demoted rather than silenced, so it stays visible until MAUI fixes the descriptors.
32+
-->
33+
<WarningsNotAsErrors>$(WarningsNotAsErrors);IL2037</WarningsNotAsErrors>
34+
2735

2836
<!-- Centralized TFM versions -->
2937
<LatestTfm>net11.0</LatestTfm>

‎global.json‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"sdk": {
3-
"version": "11.0.100-preview.7.26381.103",
4-
"workloadVersion": "11.0.100-preview.7.26410.2",
3+
"version": "11.0.100-rc.1.26425.128",
4+
"workloadVersion": "11.0.100-rc.1.26458.5",
55
"rollForward": "disable",
66
"allowPrerelease": false
77
}

‎samples/Sentry.Samples.AspNetCore.Blazor.Wasm/Sentry.Samples.AspNetCore.Blazor.Wasm.csproj‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
</PropertyGroup>
1919

2020
<ItemGroup>
21-
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="11.0.0-preview.7.26381.103"/>
22-
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="11.0.0-preview.7.26381.103" PrivateAssets="all"/>
21+
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="11.0.0-rc.1.26425.128"/>
22+
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="11.0.0-rc.1.26425.128" PrivateAssets="all"/>
2323
<ProjectReference Include="..\..\src\Sentry.AspNetCore.Blazor.WebAssembly\Sentry.AspNetCore.Blazor.WebAssembly.csproj" />
2424
</ItemGroup>
2525

‎scripts/build-sentry-native.ps1‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ try
4040
}
4141
$additionalArgs += @(
4242
'-D', "CMAKE_C_FLAGS_RELWITHDEBINFO=$msvcFlags",
43-
'-D', "CMAKE_CXX_FLAGS_RELWITHDEBINFO=$msvcFlags"
43+
'-D', "CMAKE_CXX_FLAGS_RELWITHDEBINFO=$msvcFlags",
44+
# VS 2022 toolset, so the shipped lib stays linkable by VS 2022. See https://github.com/getsentry/sentry-dotnet/pull/5566#issuecomment-5671353352
45+
'-T', 'v143'
4446
)
4547
}
4648
elseif ($IsLinux)

‎src/Sentry.AspNetCore.Blazor.WebAssembly/Sentry.AspNetCore.Blazor.WebAssembly.csproj‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
</ItemGroup>
2424

2525
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' And '$(TargetFrameworkVersion)' == 'v11.0'">
26-
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="11.0.0-preview.7.26381.103" />
26+
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="11.0.0-rc.1.26425.128" />
2727
</ItemGroup>
2828

2929
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' And '$(TargetFrameworkVersion)' == 'v10.0'">

‎src/Sentry.Bindings.Android/Sentry.Bindings.Android.csproj‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,11 @@
136136
<AndroidMavenLibrary Include="com.abovevacant:epitaph" Version="0.1.1" Bind="false" />
137137
</ItemGroup>
138138

139+
<!-- Transforms/**/*.xml is included for every TFM -->
140+
<ItemGroup Condition="'$(TargetFramework)' != '' And $([MSBuild]::VersionLessThan($([MSBuild]::GetTargetFrameworkVersion('$(TargetFramework)')), '11.0'))">
141+
<TransformFile Remove="Transforms\Metadata.Net11OrGreater.xml" />
142+
</ItemGroup>
143+
139144
<ItemGroup>
140145
<AndroidLibrary Include="..\..\lib\sentry-android-supplemental\bin\sentry-android-supplemental.jar" />
141146
<AndroidNativeLibrary Include="..\..\lib\sentrysupplemental\bin\arm64-v8a\libsentrysupplemental.so" Abi="arm64-v8a" />

0 commit comments

Comments
 (0)