Skip to content

[release/dev18.0] Update dependencies from dotnet/arcade - #20133

Open
dotnet-maestro[bot] wants to merge 714 commits into
release/dev18.0from
darc-release/dev18.0-4a1cabee-85ad-4317-bd14-ed2d29c8a4ae
Open

[release/dev18.0] Update dependencies from dotnet/arcade#20133
dotnet-maestro[bot] wants to merge 714 commits into
release/dev18.0from
darc-release/dev18.0-4a1cabee-85ad-4317-bd14-ed2d29c8a4ae

Conversation

@dotnet-maestro

@dotnet-maestro dotnet-maestro Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

This pull request updates the following dependencies

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

T-Gro and others added 30 commits May 20, 2026 15:10
* Fix #19596: overloaded member with unit parameter conformance check

SignatureConformance.fs: when matching overloaded members, add relaxed
fallback for unmatched pairs using type equivalence. This handles
member M(()) (argInfos=[[]]) vs sig member M: unit->unit (argInfos=[[unit_arg]])
where types are equivalent but TotalArgCount differs.
…text (#19772)

Evidence from 17 AI review audit:
- 53% had zero inline comments (wall-of-text body only)
- 5 reviews were LGTM verdicts buried in avg 1500 chars of prose
- Only 3/17 were inline-focused (ideal)

expert-reviewer.md:
- Wave 0: MUST dispatch independent subagents per dimension via task tool
- Wave 5: empty body for findings (just inline comments), 'LGTM' for approve
- New hard rule: body >10 chars (other than LGTM) is a bug
- Removed 'See inline comments' boilerplate — people have eyes

reviewing-compiler-prs/SKILL.md:
- Replaced aspirational 'Multi-Model Dispatch' with concrete 'Subagent Dispatch'
- Each dimension gets independent background agent with CHECK rules + filtered diffs
- Subagents produce structured {file, line, severity, dimension, issue, suggestion}
- Expert-reviewer consolidates, deduplicates, applies assessment gates

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Gate exception serialization codegen behind LanguageFeature.ExceptionFieldSerializationSupport (F# 11)

The GetObjectData override and field-restoring deserialization constructor
for exception types are now gated behind langversion 11. With langversion
<=10 (the current default), exceptions emit only the base-call ctor
(status quo ante PR #19342).

- Add LanguageFeature.ExceptionFieldSerializationSupport, mapped to F# 11.0
- Gate shouldRestoreFields and GetObjectData emission on the feature
- Update tests to use withLangVersion "11"
- Update all IL baselines (SerializableAttribute, Nullness) to reflect
  the default-langversion output (no field serde IL)

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

* Fix code formatting (fantomas)

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

* Update xlf files for featureExceptionFieldSerializationSupport

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

* Fix net472 IL baseline for ExceptionType nullness test

The net472 baseline was incorrectly updated to use [runtime] prefixed
NullableContextAttribute and NullableAttribute references. On net472,
these attributes are embedded in the assembly (not from runtime BCL),
so they must not have the [runtime] prefix. Also restore the embedded
attribute class definitions at the end of the file.

The serialization changes (removing field-restoring ctor and GetObjectData)
are correctly kept, as they match the default langversion behavior.

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

* Add release notes for exception field serialization langversion gate

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…9784)

- Exclude shared/ from workflow discovery (for repos with shared imports)
- Remove tooling-check-repo-rules.md reference (belongs to the security
  scan workflow, not the diagram generator)
- Fix rule numbering gap (was 1,2,3,4,5 → now 1,2,3,4)
- Replace fsharp-specific 'repo-assist' example with generic placeholder

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add failing tests for #19576 (TDD red)

Tests demonstrate that --nowarn:N does not suppress warnings emitted
during command-line option parsing (e.g. FS0075 for internal/test-only
options like --extraoptimizationloops, --typedtree).

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

* Honor --nowarn for warnings captured during command-line option parsing (#19576)

Wrap the logger used to replay delayed command-line diagnostics with
GetDiagnosticsLoggerFilteringByScopedNowarn so that --nowarn / --warnaserror /
warn-level switches set on the command line are honored for diagnostics
captured during option parsing (e.g. FS0075 from internal/test-only flags
such as --extraoptimizationloops or --typedtree).

The fix is applied both on the success path (fsc.fs main1, line ~586) and
on the error/exit paths via the IDiagnosticsLoggerProvider extension method,
making it universal across fsc.exe and FSharpChecker.Compile.

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

* Remove speculative third test for --test unknown-arg

The third test added in TDD red phase was speculative (warning numbers
didn't match) and outside the scope of sprint 2's DoD. Sprint 2 only
required the first two tests (FS0075 for --extraoptimizationloops and
--typedtree) to pass.

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

* Centralize warning emission in CompilerOptions.fs (#19576 follow-up)

Introduce a local 'warningCmdLine' helper that consults
tcConfigB.diagnosticsOptions via PhasedDiagnostic.AdjustSeverity before
forwarding to warning/errorR/informationalWarning. This gives option
parsing a second, local line of defense so future 'warning' callsites in
CompilerOptions.fs cannot silently bypass --nowarn/--warnaserror even if
the commit-time delayed-diagnostics wrapper is missing.

- Thread TcConfigBuilder through ParseCompilerOptions (all 6 callers).
- Thread TcConfigBuilder through CheckAndReportSourceFileDuplicates.
- Route the three cowboy 'warning' callsites in CompilerOptions.fs
  (reportDeprecatedOption, --test unknown-arg, duplicate source file)
  through warningCmdLine.
- Add a regression test for FS1063 (--test unknown sub-flag).

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

* Consolidate command-line nowarn tests into Theory and add FS3551 case

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

* Remove warningCmdLine; use commit-time filtering only; add missing tests

The emit-time warningCmdLine helper was order-dependent (only worked when
--nowarn preceded the triggering option) and introduced a regression with
--warnaserror+ (premature abort via errorR incrementing ErrorCount before
--nowarn could take effect).

Replace with commit-time filtering via GetDiagnosticsLoggerFilteringByScopedNowarn
at the two sites in fsc.fs where CapturingDiagnosticsLogger replays captured
diagnostics. This correctly applies all --nowarn/--warnaserror settings
accumulated during the full option parsing pass.

Revert ParseCompilerOptions and CheckAndReportSourceFileDuplicates signatures
to their original forms (no TcConfigBuilder parameter needed).

Add missing tests:
- Baseline tests verifying warnings ARE emitted without --nowarn
- --warnaserror+ with --nowarn interaction test

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

* Close test gaps: reverse-order, warnaserror baselines, specific warnaserror semantics

Add tests identified by multi-model adversarial review:
- Reverse-order test (--option before --nowarn) proves commit-time
  filtering works regardless of argument ordering
- --warnaserror+ baseline proving warning is promoted to error
- --warnaserror+ with --nowarn proving nowarn takes precedence (global)
- --warnaserror:75 with --nowarn:75 documenting that specific
  warnaserror wins over --nowarn (AdjustSeverity uses localNowarn
  for specific, warnOff for global)

13 tests total, 0 duplication of test source code.

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

* Add mixed-code selectivity test for --nowarn precision

Triggers both FS0075 and FS1063 simultaneously, suppresses only FS0075
via --nowarn:75, and asserts FS1063 still fires. Catches regressions
where filtering accidentally drops all command-line warnings.

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

* Fix case-sensitivity: track test file under fsc/ (lowercase) for Linux CI

The file was tracked by git as CompilerOptions/Fsc/warn/ (uppercase) while
the fsproj and all sibling files use lowercase fsc/. On case-sensitive Linux
this caused FS0225 'source file not found'.

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

* Address review: remove slop comments, add order-independence test

- Remove type annotation restating what inference provides
- Replace code-restating comments with WHY-comments
- Add test: --nowarn before --warnaserror+ still suppresses

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

* Address review: trim duplicate tests, remove slop comments

Remove mechanical test duplicates (15→7): drop Theory×3 testing same
warn number with different triggers, drop duplicate withNoWarn vs raw
--nowarn:N tests, drop redundant order-independence test.
Move release notes to 11.0.100.md (VNEXT).

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update .NET SDK from 10.0.202 to 10.0.204.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix nullness narrowing for match inside seq/list/array comprehensions (#19644)

Extract null-narrowing helper EliminateNullnessFromInputType from
TcMatchClause and reuse it in TcSequenceExpression's SynExpr.Match
handler so the input type is narrowed across clauses inside
comprehensions, matching the behavior of plain match expressions.

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

* Add release notes for #19644

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

* Fix test failures on net472: remove System.Collections.Immutable dependency

The ImmutableHashSet<int>.Builder type is not available in the net472 test
compilation environment. Replace with string | null which tests the same
nullness narrowing logic without requiring external assembly references.

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

---------

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

* Narrow overload-error and symbol-use ranges to terminal identifier (#14284, #3920)
* Update dependencies from https://github.com/dotnet/arcade build 20260519.10
On relative base path root
Microsoft.DotNet.Arcade.Sdk From Version 10.0.0-beta.26269.2 -> To Version 10.0.0-beta.26269.10

* Update dependencies from https://github.com/dotnet/arcade build 20260525.1
On relative base path root
Microsoft.DotNet.Arcade.Sdk From Version 10.0.0-beta.26269.2 -> To Version 10.0.0-beta.26275.1

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
…otnet-optimization build 20260522.1 (#19793)

On relative base path root
optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime From Version 1.0.0-prerelease.26180.1 -> To Version 1.0.0-prerelease.26272.1

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* Update dependencies from https://github.com/dotnet/roslyn build 20260520.10
On relative base path root
Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.Compilers , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.EditorFeatures , Microsoft.CodeAnalysis.EditorFeatures.Text , Microsoft.CodeAnalysis.ExternalAccess.FSharp , Microsoft.CodeAnalysis.Features , Microsoft.VisualStudio.LanguageServices From Version 5.8.0-1.26268.6 -> To Version 5.8.0-1.26270.10

* Update dependencies from https://github.com/dotnet/roslyn build 20260521.1
On relative base path root
Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.Compilers , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.EditorFeatures , Microsoft.CodeAnalysis.EditorFeatures.Text , Microsoft.CodeAnalysis.ExternalAccess.FSharp , Microsoft.CodeAnalysis.Features , Microsoft.VisualStudio.LanguageServices From Version 5.8.0-1.26268.6 -> To Version 5.8.0-1.26271.1

* Update dependencies from https://github.com/dotnet/roslyn build 20260522.14
On relative base path root
Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.Compilers , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.EditorFeatures , Microsoft.CodeAnalysis.EditorFeatures.Text , Microsoft.CodeAnalysis.ExternalAccess.FSharp , Microsoft.CodeAnalysis.Features , Microsoft.VisualStudio.LanguageServices From Version 5.8.0-1.26268.6 -> To Version 5.8.0-1.26272.14

* Update dependencies from https://github.com/dotnet/roslyn build 20260523.3
On relative base path root
Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.Compilers , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.EditorFeatures , Microsoft.CodeAnalysis.EditorFeatures.Text , Microsoft.CodeAnalysis.ExternalAccess.FSharp , Microsoft.CodeAnalysis.Features , Microsoft.VisualStudio.LanguageServices From Version 5.8.0-1.26268.6 -> To Version 5.8.0-1.26273.3

* Update dependencies from https://github.com/dotnet/roslyn build 20260524.3
On relative base path root
Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.Compilers , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.EditorFeatures , Microsoft.CodeAnalysis.EditorFeatures.Text , Microsoft.CodeAnalysis.ExternalAccess.FSharp , Microsoft.CodeAnalysis.Features , Microsoft.VisualStudio.LanguageServices From Version 5.8.0-1.26268.6 -> To Version 5.8.0-1.26274.3

* Update dependencies from https://github.com/dotnet/roslyn build 20260524.20
On relative base path root
Microsoft.CodeAnalysis , Microsoft.CodeAnalysis.Compilers , Microsoft.CodeAnalysis.CSharp , Microsoft.CodeAnalysis.EditorFeatures , Microsoft.CodeAnalysis.EditorFeatures.Text , Microsoft.CodeAnalysis.ExternalAccess.FSharp , Microsoft.CodeAnalysis.Features , Microsoft.VisualStudio.LanguageServices From Version 5.8.0-1.26268.6 -> To Version 5.8.0-1.26274.20

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Tomas Grosup <Tomas.Grosup@gmail.com>
* Update dependencies from https://github.com/dotnet/msbuild build 20260520.4
On relative base path root
Microsoft.Build , Microsoft.Build.Framework , Microsoft.Build.Tasks.Core , Microsoft.Build.Utilities.Core From Version 18.8.0-preview-26269-11 -> To Version 18.8.0-preview-26270-04

* Update dependencies from https://github.com/dotnet/msbuild build 20260521.6
On relative base path root
Microsoft.Build , Microsoft.Build.Framework , Microsoft.Build.Tasks.Core , Microsoft.Build.Utilities.Core From Version 18.8.0-preview-26269-11 -> To Version 18.8.0-preview-26271-06

* Update dependencies from https://github.com/dotnet/msbuild build 20260522.6
On relative base path root
Microsoft.Build , Microsoft.Build.Framework , Microsoft.Build.Tasks.Core , Microsoft.Build.Utilities.Core From Version 18.8.0-preview-26269-11 -> To Version 18.8.0-preview-26272-06

* Update dependencies from https://github.com/dotnet/msbuild build 20260525.9
On relative base path root
Microsoft.Build , Microsoft.Build.Framework , Microsoft.Build.Tasks.Core , Microsoft.Build.Utilities.Core From Version 18.8.0-preview-26269-11 -> To Version 18.8.0-preview-26275-09

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Tomas Grosup <Tomas.Grosup@gmail.com>
* Override System.Security.Cryptography.Xml to 10.0.8

Transitive dependency from Microsoft.Build.Tasks.Core pins
System.Security.Cryptography.Xml at 10.0.4. Add direct reference
in FSharp.Build to override to 10.0.8.

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

* Fix MSB3277: mark Cryptography.Xml as PrivateAssets to prevent net472 conflicts

The System.Security.Cryptography.Xml 10.0.8 override pulls transitive
dependencies (Microsoft.Bcl.Cryptography, System.Formats.Asn1) that
conflict with System.ValueTuple on net472 when flowing through
ProjectReference from FSharp.Build to fsc.fsproj.

PrivateAssets="all" prevents the package from flowing to consuming
projects while keeping it available to FSharp.Build at build-task
runtime.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…e workflow (#19783)

The workflow resolves merge conflicts by merging from main, which naturally
includes changes to protected files. The previous 'fallback-to-issue' policy
blocked these normal merge operations. The prompt still has "Never modify
.github/**" as a hard rule to prevent the agent from inventing changes.
…tep (#19727)

* Initial plan

* Fix Repo Assist workflow: recompile lock files to v0.72.1, reduce API limits to prevent timeouts

Root causes:
1. AWF binary v0.25.28 was removed from GitHub releases (404 error)
2. gh issue list --limit 500 through DIFC proxy causes 504 timeouts

Fixes:
- Recompile all workflow lock files from v0.68.3/v0.71.1 to v0.72.1
  (AWF containers updated from 0.25.20/0.25.28 to 0.25.41)
- Reduce issue fetch limit from 500 to 200
- Reduce PR fetch limit from 200 to 100
- Add fallback to empty JSON on fetch failures

Agent-Logs-Url: https://github.com/dotnet/fsharp/sessions/5524a246-1400-4899-9b62-aaf71ac6996f

Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
Co-authored-by: Tomas Grosup <Tomas.Grosup@gmail.com>
Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com>
* Fix #19664: Extension static methods are resolved if similar intrisic methods exist
…ending upgrade (#19756)

* Initial plan

* Update agentic workflows via gh aw upgrade and fix safe-outputs config

- Updated actions/github-script from v8 to v9
- Updated github/gh-aw-actions/setup from v0.68.3 to v0.72.1
- Updated github/gh-aw/actions/setup from v0.67.2 to v0.72.1
- Updated actions-lock.json with pinned container images
- Recompiled all workflow lock files
- Updated agent file to v0.72.1 references
- Fixed aw-auto-update.md safe-outputs config:
  - Added github-app config for workflows permission
  - Added allow-workflows: true for create-pull-request and push-to-pull-request-branch
  - Changed protected-files from fallback-to-issue to allowed

Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>

* Recompile all workflows after merge conflict resolution (gh-aw v0.74.8)

Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>

* Recompile all workflows after merge conflict resolution

Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>

* Recompile workflows after merge conflict resolution

Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Tomas Grosup <Tomas.Grosup@gmail.com>
When the SupportValueOptionsAsOptionalParameters language feature is
enabled, do not force option<_> on caller-side ?name = expr arguments
during overload inference. Leave the type as a fresh inference variable
and let AdjustCalledArgTypeForOptionals (CalleeSide) reconcile against
option<_> or voption<_>.

Pre-LangVersion-10 behaviour is preserved.

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

* Initial plan

* Disable noop issue reporting for labelops-pr-maintenance workflow

Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
Co-authored-by: Tomas Grosup <Tomas.Grosup@gmail.com>
* Add failing TDD tests for #19657: MeasureAnnotatedAbbreviation over reference type with | null

Add four tests in NullableReferenceTypesTests.fs covering:
- MeasureAnnotatedAbbreviation over string accepts | null in let bindings,
  parameters, returns, type abbreviations, and inline instantiations (fails today).
- MeasureAnnotatedAbbreviation over user-defined reference class accepts | null
  (fails today).
- MeasureAnnotatedAbbreviation over value types still rejects | null
  (non-regression, passes today).
- Nullness flow and not-null constraints work through the abbreviation
  (fails today; compilation does not reach the flow assertions).

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

* Fix #19657: strip measure equations in SolveTypeIsReferenceType

MeasureAnnotatedAbbreviation tycons over a reference type (e.g. UMX-style
`type string<[<Measure>] 'm> = string`) previously failed the reference-type
constraint check used by the `| null` syntax, producing FS0043. The surface
type is a TType_app over a MeasureableReprTycon, which isRefTy does not
recognise. Strip measure equations before testing reference semantics so the
underlying erased representation is consulted, consistent with TypeNullNever
and IsReferenceTyparTy. Value-type erasure still correctly fails FS0043.

Also corrects a Sprint 1 test expectation that listed a phantom diagnostic
which the compiler does not emit (the matched-on null case is fully covered).

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

* Release notes for #19657 MeasureAnnotatedAbbreviation + | null fix

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

* Address review findings: rename strippedTy, add edge-case tests

- Rename strippedTy -> underlyingTy for consistency with SolveTypeIsNonNullableValueType
- Condense comment to single line
- Add test: not-struct constraint satisfied by MeasureAnnotatedAbbreviation
- Add test: MAA over obj, interface, and chained abbreviation

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ot Coding Agent (#19840)

* Initial plan

* Fix aw-auto-update: add allow-workflows and github-app for workflow file push

The workflow was failing with "refusing to allow a GitHub App to create or
update workflow without workflows permission" because pushing .github/workflows/
files requires the workflows:write permission.

Fix by adding:
- allow-workflows: true to create-pull-request and push-to-pull-request-branch
- github-app config (client-id/private-key) required for workflows permission
- Fixed deprecated labels/title-prefix in push-to-pull-request-branch

Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>

* Replace push-to-workflow flow with create-agent-session delegation

The previous attempt added a GitHub App with new required secrets to bypass
GitHub's rule that GITHUB_TOKEN cannot push under .github/workflows/. The repo
has no GH App and no plan to provision one.

Make aw-auto-update detection-only: its safe outputs are restricted to noop
(the normal steady state) and create-agent-session. When an upgrade is
detected, the workflow delegates the actual upgrade + recompile + PR work to
a Copilot Coding Agent session authenticated via COPILOT_GITHUB_TOKEN, which
already exists in the repo and can write workflow files under its own
identity. No new secrets, no GitHub App, no allow-workflows.

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

* Remove explicit github-token from create-agent-session

Creating the agent task is an API-only call from the safe-outputs runner;
the runner does not touch workflow files (that happens later in the spawned
CCA session, under CCA's own identity). Default GITHUB_TOKEN with issues:write
should handle it. If gh agent-task create needs more later, we'll add it then.

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

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
Co-authored-by: Tomas Grosup <Tomas.Grosup@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
…docs/ output (#19852)

The agentic-state-machine workflow has been failing since PR #19721 moved
the output to .github/docs/state-machine.md. Files under .github/ are
treated as protected by gh-aw (agent instruction files, security config).

The allowed-files config permits WHICH files can be modified but does not
override the built-in protected-files blocking. Adding protected-files:
allowed explicitly opts in, which is safe since allowed-files already
restricts writes to .github/docs/** only.

Fixes #19739

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix source-build: track System.Security.Cryptography.Xml via Version.Details

Move System.Security.Cryptography.Xml version management from hardcoded
eng/Versions.props to eng/Version.Details.xml + Version.Details.props,
following the same pattern as System.Diagnostics.DiagnosticSource and
other System.* runtime dependencies. This allows source-build to use
the live-built package instead of a prebuilt NuGet download.

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

* Restore PrivateAssets=all on System.Security.Cryptography.Xml

Removing PrivateAssets=all caused transitive dependencies
(Microsoft.Bcl.Cryptography, System.Formats.Asn1, etc.) to flow into
fsc.fsproj on net472, triggering MSB3277 version conflicts with
System.ValueTuple from .NET Framework reference assemblies.

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

---------

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

- Add labelops-pr-security-scan (hourly PR safety classifier)
- Update aw-auto-update to reflect create-agent-session delegation
- Add all security scan labels to label dictionary
- Update source hashes

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…PR.yml (#19848)

* Initial plan

* Fix docs path exclusion to use recursive wildcard docs/**

Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
Martin521 and others added 30 commits August 11, 2026 14:14
* Add Roslyn-format EnC CustomDebugInformation codec and portable PDB method CDI emission

Adds an internal AbstractIL module implementing, byte for byte, the three Portable PDB
CustomDebugInformation blob formats Roslyn persists per method for Edit and Continue
(EnC Local Slot Map, EnC Lambda and Closure Map, EnC State Machine State Map), with
serializers, deserializers, a portable PDB read-back helper, and an occurrence-key
packing helper for deterministic syntax-offset slots.

Plumbs an optional methodCustomDebugInfoRows side channel through the IL binary writer
options into the portable PDB generator so a compilation can attach CDI rows to named
methods. Names that do not identify exactly one method row are dropped. All existing
writer call sites pass an empty map, so emitted PDBs are byte-identical to before.

No in-tree caller populates the map yet; the consumer is the F# hot reload work in
#19941, following the same pattern as #20017 (land isolated, test-covered
infrastructure first, wire the feature later).

Tests: blob round-trips, Roslyn golden-byte encodings, cross-validation against
CDI blobs emitted by a real Roslyn compilation, fail-closed occurrence-key packing
(including an int32-overflow regression where a wrapped negative key previously
escaped the bound check), and end-to-end synthetic PDB emission proving correct
MethodDef parenting, zero rows for an empty map, and no rows for absent or
ambiguous names.
…eaker

Two opt-in (`--langversion:preview`) additions to method overload resolution.

- F# now honors `System.Runtime.CompilerServices.OverloadResolutionPriorityAttribute` (.NET 9): among the applicable candidates the highest-priority ones are considered first, matching C#. Priority is applied before betterness and scoped by the declaring type, so a library can steer F# callers to the overload it intends.

- When overload resolution would otherwise be ambiguous, the more concrete candidate is now preferred — `Option<'T>` over `'T`, `Task<'T>` over `'T`, `Result<'T, string>` over `Result<'T, 'E>` — across constructors, static and instance members, extension members, and optional/ParamArray tails. Candidates that are incomparable (more concrete at different positions, or differing only by an SRTP constraint) stay ambiguous rather than being resolved arbitrarily.

The tiebreaker is transparent: opt into `--warnon:3575` to see which concrete overload was selected and `--warnon:3576` for each generic overload it bypassed.

RFC FS-1338 (OverloadResolutionPriority) and RFC FS-1340 (most-concrete tiebreaker).
#20218)

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Remove always-on WildCardInForLoop language feature flag

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

* Add release note for WildCardInForLoop flag removal

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

* Strip release-notes changes (NO_RELEASE_NOTES)

---------

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Collapse always-on AndBang enforcement gates in CheckComputationExpressions

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

* Remove always-on AndBang language feature flag and regenerate xlf

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

* Fix Fantomas formatting after AndBang gate removal

The CheckCodeFormatting CI job failed because the collapsed AndBang gate
left a two-line let binding that Fantomas collapses to a single line.

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

---------

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Collapse ImplicitYield enforcement sites to always-enabled path

Remove the dead 'SupportsFeature LanguageFeature.ImplicitYield' guards, whose condition is always true for langversion >= 8.0, across the four Checking/Expressions files. Each guard is collapsed to its enabled branch and the dead branch/binding deleted. Behaviour is unchanged; the flag definition in LanguageFeatures.fs is intentionally left for a later sprint.

The now-unused 'cenv' parameter of YieldFree is renamed to '_cenv' (not removed): FSharp.Profiles.props enables --warnon:1182 with WarningsAsErrors, so an unused named binding is a hard build error, and removing the parameter would cascade through IsSimpleSemicolonSequenceElement, TryGetSimpleSemicolonSequenceOfComprehension and the SimpleSemicolonSequence active pattern (all out of scope). The '_' prefix preserves the exact signature and all positional call sites.

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

* Remove ImplicitYield language feature flag definition

The ImplicitYield feature shipped in F# 4.7 and is permanently enabled
(minimum accepted --langversion is 8.0), making the flag dead configuration.
Remove the LanguageFeature.ImplicitYield union case, its features-map entry,
the GetFeatureString arm, the featureImplicitYield FSComp.txt string, and
regenerate the xlf localisation files. The always-on
SynExpr.SequentialOrImplicitYield AST machinery is untouched.

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

---------

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

On relative base path root
Microsoft.DotNet.Arcade.Sdk From Version 10.0.0-beta.26379.2 -> To Version 10.0.0-beta.26411.3
…sources (#20090)

* Don't walk non-F# assemblies when labelling trait constraint sources

`addConstraintSources` (added in #16304, so that a failed member constraint
names the member it came from) is applied to every imported assembly, and
recurses through `e.ModuleOrNamespaceType` for every module and namespace
entity it finds.

For an assembly imported from IL there is nothing to find: the walk only
reads `AllValsAndMembers`, and `ImportILTypeDefs` gives every namespace and
type entity an empty val list; only an F# trait constraint produces a
`TyparConstraint.MayResolveMember` to label in the first place. Meanwhile the
recursion forces each namespace entity's `ModuleOrNamespaceType`, which
imports that namespace - so referencing an assembly ends up importing every
namespace in it, and reading every type definition, whether or not the code
touches it.

Skip the CCUs that aren't F#. FSharp.Core and F# references are still walked,
so the error messages are unchanged.

Measured with FSharpChecker.ParseAndCheckProject, keeping the results alive so
the imported assembly structures stay on the heap (averages of 3 runs, one per
process): a 486-reference F# project retains 1319.2 -> 952.1 MB (-27.8%), and
a 168-reference console project 77.7 -> 69.8 MB (-10.2%). Checking
FSharp.Compiler.Service itself (124 references, 397 sources) goes 2301.7 ->
2298.0 MB, i.e. within the noise at that size - what the imports cost there is
dwarfed by the trees of the project's own code.
* chore(Async.RunSynchronouslyImmediate): Stragglers from #19804

- rename and sync clone impls withing VisualFSharp.slnx as per previous PR
- update RunImmediateExceptOnUI to delegate and follow naming
* Remove always-on SingleUnderscorePattern language feature flag

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

* Remove orphaned parsUnexpectedSymbolDot diagnostic resource

Its only two consumers were the parser guards removed when the always-on SingleUnderscorePattern language feature was deleted, leaving the FSComp.txt entry and 13 xlf trans-units unreachable. Regenerated xlf via UpdateXlf.

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

---------

Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Tomas Grosup <tomas.grosup@microsoft.com>
…yMap (#20088)

* Avoid per-instance lock object in InterruptibleLazy and DelayInitArrayMap

Both types allocated a dedicated `syncObj = obj()` for their one-time
initialisation. These instances are internal and never locked externally,
and there are enough of them (one per lazy IL member, per ILTypeDefs /
ILMethodDefs, etc.) that the extra bare System.Object adds up to tens of MB
on a large project. Lock on `this` instead and drop the field.

Measured on a single-file FCS check against a project with ~486 references:
bare System.Object instances dropped from ~1,000,000 to ~29,000 (~-22 MB).
* IL: add ILPreNamespace, make ILPreTypeDef creation lazy
…812.3

On relative base path root
Microsoft.DotNet.Arcade.Sdk From Version 10.0.0-beta.26379.2 -> To Version 10.0.0-beta.26412.3
* Update dependencies from https://github.com/dotnet/msbuild build 20260721.8
On relative base path root
Microsoft.Build , Microsoft.Build.Framework , Microsoft.Build.Tasks.Core , Microsoft.Build.Utilities.Core From Version 18.10.0-1.26370.18 -> To Version 18.10.0-1.26371.8

* Pin MSBuild at 18.10.0-1.26370.18 (last net10.0-compatible build)

The 18.10.0-1.26371.x MSBuild builds dropped their net10.0 assets (they now ship net11.0 + net472 only). This repo's product target framework is net10.0, so:

- The package's TFM-support check turns into a build error (doesn't support net10.0).
- More importantly, there is no net10.0 runtime asset, so the bootstrap fsc (and fsi) fail at runtime with a silent exit 1 when the legacy MSBuild reference resolver tries to load Microsoft.Build.Utilities.Core, breaking the FSharp.Core compilation and thus the whole build.

The net11.0 assemblies cannot be cleanly deployed to a net10.0 app (NuGet won't select them as runtime assets and manual deployment isn't reflected in deps.json), so the update cannot be consumed until the product moves to net11.0 or MSBuild restores net10.0 assets. Pin the dependencies at the last good build to keep CI green and stop the incompatible builds from re-flowing.

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

* Pin MessagePack to patched 2.5.302 in CLaSP Framework Proxy to fix NU1902/NU1903 audit

The Proxy project transitively pulls MessagePack (via Microsoft.CommonLanguageServerProtocol.Framework) and some restore environments resolve the vulnerable 2.5.108 (< 2.5.301 patched line), tripping NuGetAudit warnings-as-errors on every Windows job that builds VisualFSharp.slnx. Mirror the existing FSharp.Compiler.LanguageServer pin with a direct reference at 2.5.302.

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

* Re-trigger CI: Linux leg hit an agent OOM/hang (exit 137, 0 test failures)

The FSharp.Compiler.ComponentTests Linux run reported 'Free memory lower than 5% (95.06% used)' then hung ~47 min before SIGKILL (exit 137) with succeeded:5971 failed:0. This is a transient CI-agent out-of-memory flake, unrelated to the MessagePack pin (a Windows VS-only project not built on Linux). Empty commit to re-run the pipeline.

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

* Fix merge: use CPM-style package references in CLaSP Framework Proxy csproj

The merge of origin/main duplicated PackageReference items (NU1504) and kept Version attributes incompatible with Central Package Management (NU1008). Main migrated this project to CPM; versions are now defined centrally in eng/Packages.props (CLaSP 4.13.0-3.24579.1, MessagePack 2.5.302, Threading override 17.12.21). Restore now succeeds.

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

* Re-trigger CI (flaky DependencyManager timeout test)

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

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Backflow from https://github.com/dotnet/dotnet / 7cdb217 build 326717

Diff: https://github.com/dotnet/dotnet/compare/7fb8cef14d9ae6bd729b04638f88d00f1ba7eb99..7cdb217445905f3342bbb0266a4497b9a014389a

From: dotnet/dotnet@7fb8cef
To: dotnet/dotnet@7cdb217

[[ commit created by automation ]]

* Update dependencies from build 326717
No dependency updates to commit
[[ commit created by automation ]]

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
The arcade dependency update surfaced NU1902 for MessagePack 2.5.108 (GHSA-4qm4-8hg2-g2xm), which flows transitively via Microsoft.CommonLanguageServerProtocol.Framework. NuGet audit warnings are treated as errors in CI, failing all Windows build/test jobs. Add the advisory to the existing NuGetAuditSuppress list; the package does not ship in FSharp.Core or the compiler.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…4a1cabee-85ad-4317-bd14-ed2d29c8a4ae

# Conflicts:
#	FSharp.sln
#	azure-pipelines-PR.yml
#	docs/release-notes/.VisualStudio/18.vNext.md
#	eng/Build.ps1
#	eng/Version.Details.props
#	eng/Version.Details.xml
#	eng/Versions.props
#	eng/common/core-templates/job/onelocbuild.yml
#	eng/common/core-templates/job/publish-build-assets.yml
#	eng/common/core-templates/job/source-index-stage1.yml
#	eng/common/core-templates/jobs/codeql-build.yml
#	eng/common/core-templates/post-build/post-build.yml
#	eng/common/core-templates/steps/install-microbuild.yml
#	eng/common/core-templates/steps/publish-logs.yml
#	eng/common/core-templates/steps/source-index-stage1-publish.yml
#	eng/common/cross/build-rootfs.sh
#	eng/common/cross/toolchain.cmake
#	eng/common/native/NativeAotSupported.props
#	eng/common/post-build/redact-logs.ps1
#	eng/common/sdk-task.ps1
#	eng/common/templates-official/steps/get-github-app-token.yml
#	eng/common/templates/job/job.yml
#	eng/common/templates/steps/get-github-app-token.yml
#	eng/common/tools.ps1
#	eng/common/tools.sh
#	global.json
#	src/Compiler/Checking/TypeRelations.fs
#	src/Compiler/Facilities/DiagnosticsLogger.fs
#	src/Compiler/Service/ServiceParseTreeWalk.fs
#	src/Compiler/Utilities/TypeHashing.fs
#	src/fsc/fsc.targets
#	src/fsi/fsi.targets
#	tests/FSharp.Compiler.ComponentTests/EmittedIL/TryCatch/TryCatch.fs
#	tests/FSharp.Compiler.Private.Scripting.UnitTests/DependencyManagerInteractiveTests.fs
#	tests/FSharp.Compiler.Service.Tests/EditorTests.fs
#	tests/FSharp.Core.UnitTests/FSharp.Core/Microsoft.FSharp.Control/AsyncType.fs
#	tests/FSharp.Test.Utilities/TestFramework.fs
#	tests/FSharp.Test.Utilities/Utilities.fs
#	tests/FSharp.Test.Utilities/XunitHelpers.fs
#	tests/fsharp/tests.fs
#	tests/fsharpqa/testenv/src/HostedCompilerServer/HostedCompilerServer.fsproj
#	vsintegration/tests/UnitTests/AssemblyResolver.fs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AI-Tooling-Check-Bypassed Tooling check: non-fork PR, not diff-analyzed

Projects

Status: New

Development

Successfully merging this pull request may close these issues.