Skip to content

Pre-buffer TaskHost packet bodies before deserialization - #14505

Merged
AR-May merged 9 commits into
dotnet:mainfrom
AR-May:fix-task-host-read-from-pipe
Aug 7, 2026
Merged

AR-May merged 9 commits into
dotnet:mainfrom
AR-May:fix-task-host-read-from-pipe

Conversation

@AR-May

@AR-May AR-May commented Jul 23, 2026 •

Copy link
Copy Markdown
Member

Fixes #13943

Context

The TaskHost read loop deserialized each incoming packet directly from the pipe stream wrapped in a 1 KB BufferedReadStream. Small primitives were served from that 1 KB buffer, so a real pipe read only happened on a buffer refill (roughly once per 1 KB) - but for a large TaskHostConfiguration (tens of MB of task-item metadata) that still meant thousands of small pipe reads, since each refill requests at most 1 KB.

It also defeated InterningBinaryReader.ReadString's MemoryStream fast path, which reads straight from the backing buffer and decodes the whole string in one shot. That path only fires when the translator's BaseStream is a MemoryStream; backed by BufferedReadStream instead, each string was copied through an intermediate byte buffer and, because a refill returns at most 1 KB, larger strings took the slower multi-chunk decode path with a pooled char buffer.

Changes Made

  • Under ChangeWave 18.11, client side communication uses a 64 KB read-ahead buffer and reads each complete packet body into a reusable MemoryStream before deserialization.
  • The packet-body buffer is allocated lazily with an initial 128 KB capacity. Buffers larger than 2 MB are released after the packet to avoid retaining unusually large allocations.
  • The non-APM parent-node read path also uses 64 KB read-ahead buffering. The .NET Framework APM path remains unchanged.
  • BufferedReadStream now supports any Stream and configurable buffer sizes.
  • Opting out with MSBUILDDISABLEFEATURESFROMVERSION=18.11 preserves the legacy read paths: TaskHost uses its 1 KB buffer, while the parent-side path reads directly from the pipe. No packet-body buffer is allocated.
  • Corrupted extended-header packets now fail through the normal logged link-failure path instead of allowing the exception to escape the read loop.

Testing

Existing unit tests + exp runs + perfstar runs (passed, see comments)

The TaskHost read loop deserialized each incoming packet directly from
the pipe stream wrapped in a 1 KB BufferedReadStream. Small primitives
were served from that 1 KB buffer, so a real pipe read only happened on
a buffer refill (roughly once per 1 KB) - but for a large
TaskHostConfiguration (tens of MB of task-item metadata) that still
meant thousands of small pipe reads, since each refill requests at most
1 KB.

It also defeated InterningBinaryReader.ReadString's MemoryStream fast
path, which reads straight from the backing buffer and decodes the
whole string in one shot. That path only fires when the translator's
BaseStream is a MemoryStream; backed by BufferedReadStream instead, each
string was copied through an intermediate byte buffer and, because a
refill returns at most 1 KB, larger strings took the slower multi-chunk
decode path with a pooled char buffer.

RunReadLoop now buffers the whole packet body before deserializing:

* Adds a reusable _readBufferMemoryStream field, initialized in
  InternalConstruct and disposed in InternalDisconnect.
* After reading the 5-byte header, parses packetLength from bytes 1..4
  (little-endian int32), grows _readBufferMemoryStream to that length,
  reads the body with a Read loop that handles partial reads, and hands
  the MemoryStream (positioned at 0) to GetReadTranslator. The pipe
  returns large chunks per read, so the body is drained in far fewer
  syscalls, and the translator now sees a MemoryStream so the ReadString
  fast path is taken.
* Extended-header version byte is now read from the buffered
  MemoryStream instead of the pipe.
* RunReadLoop takes the raw NamedPipeServerStream directly.

The body read is uncapped: Stream.Read returns as many bytes as are
currently available, and the Read loop drains the full body regardless,
so a per-syscall size cap provides no benefit.

_readBufferMemoryStream is reused across packets (grown to the largest
body seen) and disposed on disconnect, so it is not reallocated for
every packet.

The header read stays async so the existing
WaitAny({headerRead, packetAvailable, terminate}) multiplex is
preserved; the body read is synchronous because we have committed to
receiving this packet and run on a dedicated packet-pump thread.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 35c1edc0-5a3c-404d-a7ff-5a03696251a2
@AR-May

AR-May commented Jul 23, 2026

Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@AR-May

AR-May commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

publishing report from analyzing the perfstar run.

Perf review of perfstar run for perf/AR-May/fix-task-host-read-from-pipe

Verdict: GOOD — fixes a severe Windows multithreaded (MT) build regression, with no impact on normal (non-MT) builds and one small Linux MT-rebuild item to watch.

Branch = single PerfStar CI run (2026-07-23, Windows = GOLDWIN / Linux = GOLDLIN, all builds passed), compared per scenario against main's recent same-machine baseline (2026-07-16 → 24). Metric is build-time; evaluation-time is used as a control and stays flat in every bucket, so the deltas are real work — not environment drift.

Impact by platform × mode — median build-time Δ (− = faster)

Platform × Mode scenarios median Δ real faster / noise / real slower
Windows · MT 14 −16.7% 7 / 7 / 0
Windows · non-MT 10 −0.7% 0 / 10 / 0
Linux · MT 17 +2.1% 1 / 15 / 1
Linux · non-MT 17 −1.2% 0 / 17 / 0

The entire benefit is concentrated in Windows MT; every non-MT bucket is flat, with zero regressions.

Biggest Windows MT wins

Scenario (Windows, MT) main (ms) branch (ms) Δ
orchard-core warm-restore 107,500 15,523 −86%
orchard-core cold-restore 116,022 24,160 −79%
orchard-core warm-inc-build 169,824 73,645 −57%
orchard-core rebuild 207,471 104,069 −50%
aspire rebuild 80,839 47,212 −42%
aspire warm-inc-build 68,100 43,506 −36%
net8-blazorwasm rebuild 9,125 7,926 −13%

Is MT now the faster mode? (MT vs non-MT, measured in the same run)

Platform Before (main) After (fix)
Windows MT faster in 0 / 7 10 / 11
Linux 12 / 17 18 / 22

Before the fix, MT was slower than single-threaded on 100% of Windows scenarios — down to −456% on orchard-core-warm-restore (107 s vs 19 s). After the fix MT wins almost everywhere. Not universal: xunit-rebuild (Linux) stays MT-slower and widened (−11% → −20%).

Watch item (Linux MT)

orchard-core-rebuild-mt (Linux): 95,970 → 107,396 ms ≈ +11% (~2.9σ above main, above its recent max 90.5k–100.5k). Real for that scenario, but it's a single run — recommend 2–3 reruns to confirm. MT there is still faster than non-MT (+5%).

Caveats

  • One run per scenario: large effects are conclusive; < ~5% is within run-to-run noise (small "warm" scenarios have CV up to ~50%; large rebuilds ~2–4%).
  • ~40 inc-build / publish / check scenarios have no fresh main baseline (main stopped measuring them on GOLD machines after 2026-06-30) → excluded as inconclusive, not evidence of regression.
  • Main's own tiny-project build-times drifted +~75% during July; this fully explains any naive "regression" seen against month-old data.

Bottom line: ship it — the change turns Windows MT from unusable (up to 5.6× slower than single-threaded) into a real ~17% win, leaves normal builds untouched, and only needs a confirmatory rerun on the one Linux MT-rebuild scenario.

@AR-May

AR-May commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

publishing report from analyzing the exp insertion runs.

MSBuild "all tasks out-of-proc" — pipe-read fix vs baseline

Comparison of two experimental VS insertions of the same "all tasks out-of-proc" MSBuild build:

  • BASELINE : PR 761729 (branch baseline-all-tasks-in-th, MSBuild 26373.6)
  • FIX : PR 761726 (branch fix-task-host-read-from-pipe-all-tasks-in-th, MSBuild 26373.5)
    = baseline + the task-host pipe-read change.

All percentages are the regression relative to the non-OOP main baseline (higher = worse).
Only perf suites ran on both PRs; functional gates (required/optional/experimental tests)
were "notApplicable", so correctness is judged from broken/regressed/fault perf tests.

CORRECTNESS — the fix introduces NO extra breakage vs baseline

  • DDRIT (VS64): identical outcome — same 21 regressions + the SAME single broken
    test (UWP64.BuildAndDebug) in both.
  • Speedometer/RPS: baseline 28 vs fix 26 confirmed-after-rerun regressions.
    The small deltas are single-metric noise flips in both directions.
  • The one fault-event signal (CPlusPlusNoCache.UnrealEngine52 | VS_FaultEvents_devenv)
    appears in BASELINE but NOT in the fix.
  • No new broken test, crash, or fault is introduced by the fix.
    => Correctness-wise the fix is equivalent to (slightly better than) baseline; both
    carry the expected all-tasks-OOP risk equally.

PERFORMANCE — Duration / build time: the FIX ROUGHLY HALVES the regression
(Speedometer/RPS, time metrics. Values = extra time over main baseline.)

Test                                                Scenario                                 Baseline            Fix              
--------------------------------------------------  ---------------------------------------  ------------------  -----------------
CPlusPlus.UnrealEngine                              0200.Open Solution                       6,888 ms (93.98%)   3,399 ms (46.37%)
CPlusPlusNoCache.UnrealEngine52                     0200.Open Solution                       10,147 ms (79.84%)  5,271 ms (42.4%) 
OrchardCoreNoCache.TestSolutionOpenClose            0200.Time to Intellisense Without Cache  17,045 ms (36.52%)  7,746 ms (17%)   
OrchardCoreNoCacheResponsive.TestSolutionOpenClose  0200.Time to Intellisense Without Cache  22,561 ms (51.7%)   11,695 ms (28.5%)
PicassoNoCache.TestSolutionOpenClose                0200.Time to Intellisense Without Cache  1,013 ms (26.75%)   1,349 ms (37.58%)
ProjectSystemTest.OrchardCoreBuild                  0100.Rebuild Solution                    29,268 ms (37.84%)  17,217 ms (22.1%)
ProjectSystemTest.OrchardCoreBuild                  0200.Incremental Build                   4,911 ms (53.52%)   3,508 ms (38.9%)

The pipe-read fix cuts the added time from all-tasks-OOP by ~40-55% on every
build / solution-open scenario. Only PicassoNoCache TTI is marginally worse
(~300 ms, within that test's noise).

Metric abbreviations: Procs = OS_ProcessesCreated_Total; CLR_BytesAlloc = CLR_BytesAllocated_NonDevenv;
Duration_Total = Duration_TotalElapsedTime; Duration_Adj = Duration_AdjustedElapsedTime;
VM_Images = VM_AdjustedImagesInMemory_Total; VS_Faults = VS_FaultEvents_Total.

SUMMARY OF FIX IMPACT

  • SAFE: no additional breakage vs baseline (identical DDRIT breakage; Speedometer
    diffs are noise; fix shows one fewer fault event and 2 fewer confirmed regressions).
  • BIG TIME WIN: on Duration/build scenarios the fix roughly halves the OOP time
    penalty — e.g. UnrealEngine Open Solution ~94%->46% and ~80%->42%; OrchardCore
    Build Rebuild 38%->22%, Incremental 54%->39%; OrchardCore TTI 37%->17% and 52%->28%.
  • Allocation / process-count metrics elsewhere are inherent to running tasks OOP and
    are ~unchanged — the fix does not (and is not meant to) address those.
  • NET: the task-host pipe-read fix delivers a large, real reduction in the time cost
    of running all tasks out-of-proc, at no correctness cost. The improvement shows in
    the magnitudes, not the regression name-set (both still regress vs the non-OOP main
    baseline, because both run every task out-of-proc).

@AR-May
AR-May marked this pull request as ready for review July 24, 2026 12:21
Copilot AI review requested due to automatic review settings July 24, 2026 12:21

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves out-of-proc TaskHost communications performance by pre-buffering each incoming packet body into a reusable MemoryStream before deserialization, reducing many small pipe reads and enabling InterningBinaryReader.ReadString’s MemoryStream fast-path.

Changes:

  • Add a reusable _readBufferMemoryStream to buffer packet bodies and reuse the largest-seen allocation across packets.
  • Update RunReadLoop to parse the body length from the 5-byte header, synchronously drain the full body into the MemoryStream, and deserialize from memory (including reading the extended-header version byte from the buffer).
  • Remove the BufferedReadStream wrapper and operate on the raw NamedPipeServerStream for both reads and writes.

Comment thread src/Shared/NodeEndpointOutOfProcBase.cs Outdated
@AR-May

AR-May commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

exp insertion runs:
https://dev.azure.com/devdiv/DevDiv/_git/VS/pullrequest/761723 - fix
https://dev.azure.com/devdiv/DevDiv/_git/VS/pullrequest/761726 - fix + all tasks oop
https://dev.azure.com/devdiv/DevDiv/_git/VS/pullrequest/761729 - baseline (all tasks oop)

@JanProvaznik JanProvaznik left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re internal discussion:
I think the max memory stream should be capped this seems like a memory leak.
And this should be behind a changewave due to node communication changes being super high impact.

But on the positive side I trust the numbers and agree with the direction! This will dramatically fix our -mt story

@AR-May
AR-May requested a review from a team as a code owner July 27, 2026 11:44
@github-actions

Copy link
Copy Markdown
Contributor

🔍 Skill Validator Results

✅ All checks passed

Scope Checked
Skills 0
Agents 1
Total 1
Severity Count
--- ---:
❌ Errors 0
⚠️ Warnings 0
ℹ️ Advisories 0

Summary

Level Finding
ℹ️ Found 1 agent(s)
ℹ️ Validated 1 agent(s)
ℹ️ ✅ All checks passed (1 agent(s))
Full validator output ```text Found 1 agent(s) Validated 1 agent(s) ✅ All checks passed (1 agent(s)) ```

@JanProvaznik JanProvaznik left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this looks reasonable, I want a second reviewer (@rainersigwald ?)

pls share the data that lead to the selection of constants

and do not merge until we get restore data.

Comment thread src/Shared/NodeEndpointOutOfProcBase.cs Outdated
@AR-May

AR-May commented Jul 27, 2026 •

Copy link
Copy Markdown
Member Author

MSBuild pipe write-buffer threshold and default sizing

The trim should fire on outliers, not on recurring large packets.
Every recurring packet type has p999 well under 2 MB. Second largest TaskHostConfiguration in MT mode is a bit above 1MB.

The default size should be large enough to absorb the next few packets
without a realloc
, small enough to be a genuine memory release compared to maximum size of the buffer.
128 KB covers p95 without issue.

DATA:

Non-MT — per pipe (all packet types combined)

Pipe (roles) Events Median p95 p99 p999 Max
client<->server 584 220 1,950 6,183 77,968 77,968
server<->worker 1,254,768 392 662 4,650 134,629 731,691

MT — per pipe (all packet types combined)

Pipe (roles) Events Median p95 p99 p999 Max
client<->server 450 238 2,482 3,909 77,996 77,996
server<->taskhost 21,496 187 39,832 407,466 709,420 116,689,026

AR-May added 2 commits July 27, 2026 14:37
…t-out comment

Keeps the reusable read buffer's initial capacity at the historical 128 KB (instead of pre-growing to 256 KB) and raises MaxRetainedReadBufferSize from 1 MB to 2 MB so slightly-larger-than-1MB packets don't repeatedly release and reallocate the buffer. Also corrects the comment: with the change wave opted out, packets are deserialized from the BufferedReadStream, not straight off the pipe.

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

Copilot-Session: a60cf380-bb58-464c-a07c-68cef556f44d
…ully

Move the NodePacketTypeExtensions.ReadVersion call inside the deserialization try/catch. A truncated or corrupted extended-header packet (e.g. an empty body) makes ReadVersion throw EndOfStreamException; previously that escaped the read loop instead of being converted into a trace + LinkStatus.Failed like other packet errors.

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

Copilot-Session: a60cf380-bb58-464c-a07c-68cef556f44d
@AR-May

AR-May commented Jul 29, 2026

Copy link
Copy Markdown
Member Author

After collecting more data, unfortunately it seems this pr leads to a regression in non-mt. We need to find a better way to address the issue.
Setup: two copies of .NET 11 P7 daily SDK (11.0.100-preview.7.26377.110).
Baseline = pristine daily. PR14505 = same daily + PR head (fe119d6ca)
MSBuild bits deployed. dotnet build /m (non-mt). OrchardCore (huge sln) +
dotnet new console (tiny csproj). Interleaved per iteration.

Aggregated (10 iters each)

Repo Scenario Base mean (ms) PR mean (ms) Δ mean % Base median (ms) PR median (ms) Δ median %
OC inc-cold 65 321 65 956 +0.97 % 64 962 66 090 +1.74 %
OC inc-warm-2 33 870 34 008 +0.41 % 33 432 33 402 −0.09 %
OC inc-warm-3 31 905 32 493 +1.84 % 31 854 32 662 +2.54 %
OC re-cold 148 887 154 487 +3.76 % 147 419 153 779 +4.31 %
OC re-warm-2 81 366 80 902 −0.57 % 79 261 79 509 +0.31 %
OC re-warm-3 73 537 74 883 +1.83 % 73 239 74 540 +1.78 %
console inc-cold 3 656 4 586 +25.45 % 3 854 4 574 +18.67 %
console inc-warm-2 919 1 038 +12.91 % 919 1 035 +12.56 %
console inc-warm-3 928 1 018 +9.60 % 924 1 022 +10.59 %
console re-cold 3 807 4 542 +19.31 % 3 814 4 540 +19.04 %
console re-warm-2 1 191 1 296 +8.80 % 1 193 1 293 +8.32 %
console re-warm-3 1 198 1 270 +5.98 % 1 194 1 275 +6.78 %

AR-May added a commit that referenced this pull request Jul 30, 2026
… MB retention cap

Layered on top of PR #14505 (Wave18_10 pre-buffer). All new behavior is gated
behind the same ChangeWaves.Wave18_10 as the PR - with the wave opted out the
read loop is byte-for-byte identical to the PR's opt-out path (1 KB
BufferedReadStream, no pre-buffering).

Changes:
* BufferedReadStream: added a (NamedPipeServerStream, int bufferSize) constructor
  overload. Existing single-arg constructor still defaults to the historical
  1 KB, so the wave-off path is unchanged.
* NodeEndpointOutOfProcBase.RunReadLoop (wave enabled):
  - Wraps the pipe in a 64 KB BufferedReadStream (LargeReadBufferSize). Header
    reads pull up to 64 KB from the pipe in one syscall, so a batch of small
    packets is served straight from the cache with zero extra pipe reads.
  - Adds PreBufferBodyThreshold = 512: packets whose body is < 512 bytes stay
    on the BufferedReadStream fast path (the body is almost always already in
    the header refill's cache, so pre-buffering would just add a redundant
    copy). Bodies >= 512 bytes are pre-buffered into _readBufferMemoryStream
    exactly like the PR, giving InterningBinaryReader.ReadString its
    MemoryStream fast path.
  - Body read now uses localReadPipe.Read (the buffered wrapper) instead of
    localPipe.Read so any bytes the header refill pulled in ahead of the
    body are consumed from the cache before touching the pipe.
* MaxRetainedReadBufferSize retention cap (2 MB) and _readBufferMemoryStream
  lifecycle are unchanged from the PR.
* ChangeWaves.md: refined the Wave18_10 entry to describe the composite
  behavior (larger buffered stream + pre-buffered large packet bodies).

MSBuildTaskHost/BackEnd/BufferedReadStream.cs is intentionally not modified
here: the PR does not touch that folder, and its AGENTS.md restricts edits.
AR-May added a commit that referenced this pull request Jul 30, 2026
… MB retention cap

Layered on top of PR #14505 (Wave18_10 pre-buffer). All new behavior is gated
behind the same ChangeWaves.Wave18_10 as the PR - with the wave opted out the
read loop is byte-for-byte identical to the PR's opt-out path (1 KB
BufferedReadStream, no pre-buffering).

Changes:
* BufferedReadStream: added a (NamedPipeServerStream, int bufferSize) constructor
  overload. Existing single-arg constructor still defaults to the historical
  1 KB, so the wave-off path is unchanged.
* NodeEndpointOutOfProcBase.RunReadLoop (wave enabled):
  - Wraps the pipe in a 64 KB BufferedReadStream (LargeReadBufferSize). Header
    reads pull up to 64 KB from the pipe in one syscall, so a batch of small
    packets is served straight from the cache with zero extra pipe reads.
  - Adds PreBufferBodyThreshold = 512: packets whose body is < 512 bytes stay
    on the BufferedReadStream fast path (the body is almost always already in
    the header refill's cache, so pre-buffering would just add a redundant
    copy). Bodies >= 512 bytes are pre-buffered into _readBufferMemoryStream
    exactly like the PR, giving InterningBinaryReader.ReadString its
    MemoryStream fast path.
  - Body read now uses localReadPipe.Read (the buffered wrapper) instead of
    localPipe.Read so any bytes the header refill pulled in ahead of the
    body are consumed from the cache before touching the pipe.
* MaxRetainedReadBufferSize retention cap (2 MB) and _readBufferMemoryStream
  lifecycle are unchanged from the PR.
* ChangeWaves.md: refined the Wave18_10 entry to describe the composite
  behavior (larger buffered stream + pre-buffered large packet bodies).

MSBuildTaskHost/BackEnd/BufferedReadStream.cs is intentionally not modified
here: the PR does not touch that folder, and its AGENTS.md restricts edits.
AR-May added a commit that referenced this pull request Jul 30, 2026
… MB retention cap

Layered on top of PR #14505 (Wave18_10 pre-buffer). All new behavior is gated
behind the same ChangeWaves.Wave18_10 as the PR - with the wave opted out the
read loop is byte-for-byte identical to the PR's opt-out path (1 KB
BufferedReadStream, no pre-buffering).

Changes:
* BufferedReadStream: added a (NamedPipeServerStream, int bufferSize) constructor
  overload. Existing single-arg constructor still defaults to the historical
  1 KB, so the wave-off path is unchanged.
* NodeEndpointOutOfProcBase.RunReadLoop (wave enabled):
  - Wraps the pipe in a 64 KB BufferedReadStream (LargeReadBufferSize). Header
    reads pull up to 64 KB from the pipe in one syscall, so a batch of small
    packets is served straight from the cache with zero extra pipe reads.
  - Adds PreBufferBodyThreshold = 512: packets whose body is < 512 bytes stay
    on the BufferedReadStream fast path (the body is almost always already in
    the header refill's cache, so pre-buffering would just add a redundant
    copy). Bodies >= 512 bytes are pre-buffered into _readBufferMemoryStream
    exactly like the PR, giving InterningBinaryReader.ReadString its
    MemoryStream fast path.
  - Body read now uses localReadPipe.Read (the buffered wrapper) instead of
    localPipe.Read so any bytes the header refill pulled in ahead of the
    body are consumed from the cache before touching the pipe.
* MaxRetainedReadBufferSize retention cap (2 MB) and _readBufferMemoryStream
  lifecycle are unchanged from the PR.
* ChangeWaves.md: refined the Wave18_10 entry to describe the composite
  behavior (larger buffered stream + pre-buffered large packet bodies).

MSBuildTaskHost/BackEnd/BufferedReadStream.cs is intentionally not modified
here: the PR does not touch that folder, and its AGENTS.md restricts edits.
AR-May added 3 commits August 3, 2026 10:16
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 208e7501-510f-40db-98ee-7df7412277be
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 208e7501-510f-40db-98ee-7df7412277be
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 208e7501-510f-40db-98ee-7df7412277be
@AR-May

AR-May commented Aug 3, 2026

Copy link
Copy Markdown
Member Author

I updated the PR, the implementation have been changed. I updated the description accordingly.

I no more see a regression in the console app runs. New PerfStar run shows that we preserve the win: major MT fix for big packets. It also is more-less performance-neutral beyond it. Windows non-MT results are somewhat promising: about 3–5% faster overall, mainly on larger builds, but this is based on a single run. Linux results are neutral, with no clear regressions.

@AR-May AR-May self-assigned this Aug 3, 2026
AR-May added 2 commits August 3, 2026 16:03
Resolve ChangeWave 18.11 conflicts and link PR dotnet#14505 in the ChangeWaves documentation.

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

Copilot-Session: 208e7501-510f-40db-98ee-7df7412277be
This was referenced Oct 19, 2026
github-merge-queue Bot pushed a commit to microsoft/typespec that referenced this pull request Oct 23, 2026
Updated [Microsoft.Build](https://github.com/dotnet/msbuild) from
17.14.28 to 18.11.0.

<details>
<summary>Release notes</summary>

_Sourced from [Microsoft.Build's
releases](https://github.com/dotnet/msbuild/releases)._

## 18.11.0

## What's Changed
* Add vs18.10 to merge-flow config; retire vs18.7 by @​AlesProkop in
https://github.com/dotnet/msbuild/pull/14563
* Bump main to 18.11.0 after vs18.10 snap by @​AlesProkop in
https://github.com/dotnet/msbuild/pull/14564
* Phase out ChangeWaves 17.10, 17.12, 17.14 and 18.3 by @​JanProvaznik
in https://github.com/dotnet/msbuild/pull/14551
* [main] Source code updates from dotnet/dotnet by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/14572
* Default XML tasks to prohibit DTDs and improve DTD error diagnostics
by @​VolPlita in https://github.com/dotnet/msbuild/pull/14285
* Don't log TaskAssemblyLocationMismatch for task-host-routed tasks by
@​JanProvaznik in https://github.com/dotnet/msbuild/pull/14550
* Scope MSBuild server and coordinator resource names to the current
user by @​JanProvaznik in https://github.com/dotnet/msbuild/pull/14543
* Promote MSBuild server out of Experimental namespace (#​12099) by
@​JanProvaznik in https://github.com/dotnet/msbuild/pull/13964
* Fix builds by adding missing using by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/14587
* Add event-level task telemetry (build/tasks/details) by
@​jankratochvilcz in https://github.com/dotnet/msbuild/pull/13609
* Migrate ResolveCodeAnalysisRuleSet to multithreaded execution by
@​jankratochvilcz in https://github.com/dotnet/msbuild/pull/13636
* Use &lt;inheritdoc /&gt; for TaskEnvironment in
ResolveCodeAnalysisRuleSet by @​jankratochvilcz in
https://github.com/dotnet/msbuild/pull/14589
* Add aliases for configuration and test parameters in build scripts by
@​AR-May in https://github.com/dotnet/msbuild/pull/14591
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/14617
* Emit assemblyName payload for FallbackAssemblyLoad EventSource events
by @​AR-May in https://github.com/dotnet/msbuild/pull/14014
* Bump github/gh-aw-actions/setup-cli from 0.83.3 to 0.84.1 by
@​dependabot[bot] in https://github.com/dotnet/msbuild/pull/14611
* Bump github/gh-aw-actions/setup from 0.83.3 to 0.84.1 by
@​dependabot[bot] in https://github.com/dotnet/msbuild/pull/14610
* Migrate GetAssembliesMetadata to multithreaded execution by
@​jankratochvilcz in https://github.com/dotnet/msbuild/pull/13637
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/14619
* Fix concurrent BuildCheck callback mutation by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/14590
* [main] Update dependencies from nuget/nuget.client by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14612
* Make experimental VS insertion reviewers configurable by
@​rainersigwald in https://github.com/dotnet/msbuild/pull/14632
* Fix NullReferenceException reporting file accesses for detoured nodes
by @​dfederm in https://github.com/dotnet/msbuild/pull/14602
* Scope .NET TaskHost handshake leniency to architecture by
@​JanProvaznik in https://github.com/dotnet/msbuild/pull/14579
* Ensure MSBuild.csproj is included for Release|ARM64 by @​KirillOsenkov
in https://github.com/dotnet/msbuild/pull/14622
* Declare the Sdk element in Microsoft.Build.Core.xsd by @​ViktorHofer
with @​Copilot in https://github.com/dotnet/msbuild/pull/14637
* Call out MSBUILD_LOGGING_ARGS by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/14641
* [Spec] Define MSBuild server child-process ownership by @​JanProvaznik
in https://github.com/dotnet/msbuild/pull/14508
* Pre-buffer TaskHost packet bodies before deserialization by @​AR-May
in https://github.com/dotnet/msbuild/pull/14505
* Expose item glob patterns via MSBuildProvideItemGlobs by @​drewnoakes
in https://github.com/dotnet/msbuild/pull/14389
* Avoid republishing coverage artifacts on CI retries by @​JanProvaznik
in https://github.com/dotnet/msbuild/pull/14423
* Make the resolved change wave part of the node handshake by
@​JanProvaznik with @​Copilot in
https://github.com/dotnet/msbuild/pull/14557
* Bump github/gh-aw-actions/setup from 0.84.1 to 0.86.1 by
@​dependabot[bot] in https://github.com/dotnet/msbuild/pull/14665
* Bump github/gh-aw-actions/setup-cli from 0.84.1 to 0.86.1 by
@​dependabot[bot] in https://github.com/dotnet/msbuild/pull/14664
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/14672
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/14677
* Give each transient MSBuild Server its own identity by @​JanProvaznik
in https://github.com/dotnet/msbuild/pull/14647
* Don't discard the XML cache after restore when it reloads from disk by
@​ViktorHofer in https://github.com/dotnet/msbuild/pull/14558
* Add TarDirectory and Untar tasks for creating and extracting tar
archives by @​ViktorHofer with @​Copilot in
https://github.com/dotnet/msbuild/pull/14451
* Add Directory.Parse.config to skip unknown attributes/elements during
parsing by @​benwitmanmsft in
https://github.com/dotnet/msbuild/pull/14588
* Revert branch freeze PowerShell automation by @​AlesProkop in
https://github.com/dotnet/msbuild/pull/14692
* Fix MT switch by @​AR-May in
https://github.com/dotnet/msbuild/pull/14682
* Document multi-request target crosstalk by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/14403
* [main] Source code updates from dotnet/dotnet by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/14698
* Keep project active through post-build telemetry by @​AR-May in
https://github.com/dotnet/msbuild/pull/14679
* Make eng/build.sh portable (don't hardcode /bin/bash) by @​ViktorHofer
in https://github.com/dotnet/msbuild/pull/14707
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/14709
* Drop stale secret group by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/14710
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/14713
 ... (truncated)

## 18.10.1

## What's Changed
* [vs16.11] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13103
* [vs17.12] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13796
* [vs17.8] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13902
* [vs17.11] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13903
* [vs17.12] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13909
* [vs17.12] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13986
* Add vs18.9 to merge-flow config; retire vs18.3 by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/14214
* Bump labeler-cache-retention to use issue-labeler v2.1.0 by
@​jeffhandley in https://github.com/dotnet/msbuild/pull/14171
* Bump main to 18.10.0 after vs18.9 snap by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/14216
* Improve release skill: Phase 2 DARC rules, VMR backflow, deterministic
baseline by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/14220
* Determinize release: hardcode OptProf baseline + Phase 3.2 baseline
resolver by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/14222
* Serialize BuildRequestConfiguration.RequestedTargets to fix solution
metaproject MSB4057 in parallel builds by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/14223
* [main] Update dependencies from nuget/nuget.client by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14203
* Core support for AbsolutePath/FileInfo/DirectoryInfo and ITaskItem<T>
as task parameters by @​baronfel in
https://github.com/dotnet/msbuild/pull/13971
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/14206
* Fix existence cache kind poisoning by @​AlesProkop in
https://github.com/dotnet/msbuild/pull/14249
* [main] Source code updates from dotnet/dotnet by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/14226
* Don't disable the MSBuild server for /mt builds when node reuse is off
by @​AR-May in https://github.com/dotnet/msbuild/pull/14248
* Enhance expert reviewer guidelines with additional checks. by @​AR-May
in https://github.com/dotnet/msbuild/pull/14255
* [main] Source code updates from dotnet/dotnet by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/14253
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/14268
* [main] Update dependencies from nuget/nuget.client by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14267
* Bump github/gh-aw-actions/setup from 0.81.6 to 0.82.2 by
@​dependabot[bot] in https://github.com/dotnet/msbuild/pull/14266
* Avoid boxing the struct enumerator in
PropertyDictionary<T>.GetEnumerator() by @​nareshjo in
https://github.com/dotnet/msbuild/pull/14272
* Refresh copy marker when implementation output changes by @​AlesProkop
in https://github.com/dotnet/msbuild/pull/14231
* Send task-host build process environment as delta by @​OvesN in
https://github.com/dotnet/msbuild/pull/14126
* Add regression coverage for metadata newline preservation by
@​VolPlita in https://github.com/dotnet/msbuild/pull/14261
* Fix EmbedInBinlog items with relative paths from child projects by
@​huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13990
* Stop requiring VersionPrefix updates in servicing - insert prerelease
versions to VS by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/14277
* Fix WriteLinesToFile rewriting unchanged file when custom encoding is
used by @​huulinhnguyen-dev in
https://github.com/dotnet/msbuild/pull/14146
* Enable trim/AOT analyzers for Microsoft.Build and clean up annotations
by @​JeremyKuhne in https://github.com/dotnet/msbuild/pull/14064
* [automated] Merge branch 'vs18.9' => 'main' by @​github-actions[bot]
in https://github.com/dotnet/msbuild/pull/14291
* Fix MicroBuild plugin feed URL to use allowed pkgs.dev.azure.com
format by @​AlesProkop in https://github.com/dotnet/msbuild/pull/14295
* Pass ExcludeRestorePackageImports during restore to avoid redundant
evaluations by @​ViktorHofer with @​Copilot in
https://github.com/dotnet/msbuild/pull/14274
* [vs18.7] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13988
* Adopt Clever Test Selection (CTS) as parallel, non-blocking PR
pipeline by @​jankratochvilcz in
https://github.com/dotnet/msbuild/pull/14212
* Harden exceptions when connecting to server by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/14292
* Update MicrosoftBuildVersion in analyzer template by
@​github-actions[bot] in https://github.com/dotnet/msbuild/pull/13886
* Fix MSBuild Server client dropping build result under WaitAny race
(#​14172) by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/14251
* Partially revert #​13660: remove NuGet RestoreTask transient TaskHost
workaround by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/14297
* Disable daily AI credits guardrail for Expert Code Review workflow by
@​JanProvaznik with @​Copilot in
https://github.com/dotnet/msbuild/pull/14314
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 14614733 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/14246
* Add opt-in partial (stop-after-pass) project evaluation by
@​ViktorHofer in https://github.com/dotnet/msbuild/pull/14290
* Use partial evaluation for -getProperty/-getItem without a target by
@​ViktorHofer in https://github.com/dotnet/msbuild/pull/14296
* [main] Source code updates from dotnet/dotnet by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/14324
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/14333
* [main] Update dependencies from nuget/nuget.client by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/14330
* Bump github/gh-aw-actions/setup from 0.82.2 to 0.82.8 by
@​dependabot[bot] in https://github.com/dotnet/msbuild/pull/14328
* Restrict partial evaluation to ProjectInstance by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/14340
 ... (truncated)

## 18.9.6

## What's Changed
* [vs18.6] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13793
* [vs18.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13859
* [vs18.6] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13858
* [vs18.7] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13863
* CsWin32 follow-up: CLR metadata + TypeLib interop migration by
@​JeremyKuhne in https://github.com/dotnet/msbuild/pull/13853
* Update vmr-sb-validation.yml for Azure Pipelines by @​meghnave in
https://github.com/dotnet/msbuild/pull/13871
* Test: keep shell alive 15s in ToolTaskCanChangeCanonicalErrorFormat
(#​13734) by @​jankratochvilcz in
https://github.com/dotnet/msbuild/pull/13878
* Add vs18.8 to merge-flow config by @​OvesN in
https://github.com/dotnet/msbuild/pull/13877
* Stable branding for 18.8 release by @​OvesN in
https://github.com/dotnet/msbuild/pull/13883
* Bump main to 18.9.0 after vs18.8 snap by @​OvesN in
https://github.com/dotnet/msbuild/pull/13880
* Avoid checkout in insertion pipeline by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/13887
* Report actual launch path in MSB4216 for Runtime="NET" task host by
@​ViktorHofer in https://github.com/dotnet/msbuild/pull/13889
* Migrate Tlblmp and AxImp to Multithreaded Execution by @​AlesProkop in
https://github.com/dotnet/msbuild/pull/13708
* Replace ErrorUtilities assertion methods with Assumed API and BCL
throw helpers by @​DustinCampbell in
https://github.com/dotnet/msbuild/pull/13790
* Fix CLR_E_SHIM_RUNTIMELOAD in RAR's IMetaDataDispenser activation by
@​JeremyKuhne in https://github.com/dotnet/msbuild/pull/13899
* [main] Update dependencies from nuget/nuget.client by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13905
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13907
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13910
* [vs17.14] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13908
* [vs18.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13906
* Fix ToolTask output loss: increase EOF pipe timeout from 2s to 30s by
@​huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13767
* Improve symlink cycle condition by @​GangWang01 in
https://github.com/dotnet/msbuild/pull/13901
* [vs18.6] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13904
* Add flaky-test detection and auto-fix agentic workflows by
@​ViktorHofer in https://github.com/dotnet/msbuild/pull/13915
* Quote --ignore-exit-code values so the quarantine pipeline does not
shell-split on Unix by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/13918
* Fix flaky-test detector PR-evidence loss and raise scan limits by
@​ViktorHofer in https://github.com/dotnet/msbuild/pull/13919
* Tighten the pr review agent by @​JanKrivanek in
https://github.com/dotnet/msbuild/pull/13921
* Add environment variables for governance detection by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/13920
* Change IsPackable to true and add IsShipping flag by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/13924
* [vs18.7] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13911
* Make flaky detector verify recurrence postdates the fix before
commenting by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/13930
* Fix AbsolutePath.GetCanonicalForm process state leak on Windows by
@​OvesN in https://github.com/dotnet/msbuild/pull/13788
* Fix flaky detector: unblock dnceng feed, fail fast, and defer
quarantine to a second run by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/13936
* Update documentation for ImplicitUsings element by @​drewnoakes in
https://github.com/dotnet/msbuild/pull/13900
* [vs18.6] Point OptProf bootstrapper at rel/stable instead of int.main
by @​AlesProkop in https://github.com/dotnet/msbuild/pull/13923
* Add CS8618 suppressor for required MSBuild task properties by
@​AArnott in https://github.com/dotnet/msbuild/pull/13926
* Tighten NodeLaunchData.EnvironmentOverrides nullability to
IDictionary<string, string?>? by @​OvesN with @​Copilot in
https://github.com/dotnet/msbuild/pull/13815
* Fix ToolTask EOF wait to be STA-safe via CountdownEvent (MSB4018 in
AspNetCompiler) by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13917
* [automated] Merge branch 'vs18.6' => 'vs18.7' by @​github-actions[bot]
in https://github.com/dotnet/msbuild/pull/13941
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 14192258 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/13849
* Bumping to 10.0.8 runtime packages by @​OvesN in
https://github.com/dotnet/msbuild/pull/13898
* Flaky-test workflow: reassure on empty PR list + drop local
reproduction (quarantine-first) by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/13938
* [Flaky Test] Un-quarantine 5 consistently-green tests by
@​github-actions[bot] in https://github.com/dotnet/msbuild/pull/13952
* Flaky-test detector: open PRs ready-for-review; drop
newly-filed-issues section from PR body by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/13958
* [Flaky Test] Quarantine 4 flaky tests by @​github-actions[bot] in
https://github.com/dotnet/msbuild/pull/13937
* Flaky-test: fix duplicate-issue bug by switching dedup key to a
visible code-block key by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/13963
* CsWin32 follow-up: WindowsNative + VS Setup Configuration + remaining
hand-rolled interop by @​JeremyKuhne in
https://github.com/dotnet/msbuild/pull/13872
* Add the reviewer release skill checking if the Learn article Change
waves is updated by @​GangWang01 in
https://github.com/dotnet/msbuild/pull/13840
* [main] Source code updates from dotnet/dotnet by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13977
 ... (truncated)

## 18.8.2

## What's Changed
* [vs16.11] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12550
* [vs17.8] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12739
* [vs17.11] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12740
* [vs17.14] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12743
* Add clear error message (MSB4233) for .NET runtime tasks on MSBuild
17.14 by @​baronfel with @​Copilot in
https://github.com/dotnet/msbuild/pull/12662
* [vs17.8] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12759
* [vs17.11] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12760
* [vs17.14] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12762
* [vs17.12] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12744
* Remove audit sources from NuGet.config by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/12796
* Bump System.Configuration.ConfigurationManager to 6.0.0 # by
@​YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12795
* Enable localization for vs17.14 build by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/12799
* [vs17.8] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12814
* [vs17.14] Add test summary always in terminal logger by @​nohwnd in
https://github.com/dotnet/msbuild/pull/12852
* [vs18.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12575
* [vs17.8] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12889
* [vs17.12] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12892
* [vs17.14] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12891
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 12921813 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/12897
* Disable Localization for vs17.14 by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/12903
* [automated] Merge branch 'vs16.11' => 'vs17.8' by
@​github-actions[bot] in https://github.com/dotnet/msbuild/pull/12798
* [vs17.11] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12815
* [automated] Merge branch 'vs17.14' => 'vs18.0' by
@​github-actions[bot] in https://github.com/dotnet/msbuild/pull/12917
* [vs17.8] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12934
* [vs17.11] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12935
* [vs17.12] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12941
* [vs17.14] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12940
* [vs18.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12939
* [vs17.12] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12966
* [vs17.14] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12965
* [vs18.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12964
* [vs17.12] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13038
* [vs18.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13049
* [vs18.0] Fix MSB1025 error when using DistributedFileLogger (-dfl
flag) by @​github-actions[bot] in
https://github.com/dotnet/msbuild/pull/13039
* [vs17.14] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13037
* [automated] Merge branch 'vs18.0' => 'vs18.3' by @​github-actions[bot]
in https://github.com/dotnet/msbuild/pull/13052
* [vs17.12] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13101
* [vs18.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13098
* [vs17.14] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13100
* [vs18.3] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13102
* Backflow 10.0.2xx VMR by @​dkurepa in
https://github.com/dotnet/msbuild/pull/13121
* Disable localization for vs18.0 in build configuration by
@​YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13164
* Disable localization for vs18.3 by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13165
* [vs18.3] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13161
* [vs18.3] Stabilize package versions by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/13233
* [vs18.3] Add Managed Identity for bootstrapper creation by
@​github-actions[bot] in https://github.com/dotnet/msbuild/pull/13249
* [automated] Merge branch 'vs18.0' => 'vs18.3' by @​github-actions[bot]
in https://github.com/dotnet/msbuild/pull/13167
* [vs18.3] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13228
* [vs18.0] Update dependencies from dotnet/arcade by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13159
 ... (truncated)

## 18.7.1

## What's Changed
* Fix TraceEngine file contention deadlock in multithreaded mode by
@​JanProvaznik in https://github.com/dotnet/msbuild/pull/13446
* Remove duplicate test cases in MultithreadableTaskAnalyzer by
@​Youssef1313 in https://github.com/dotnet/msbuild/pull/13483
* Ensure ThreadSafeTaskAnalyzer.Tests is considered as a unit test
project by @​Youssef1313 in https://github.com/dotnet/msbuild/pull/13481
* Fix MSBuildTask0002 analyzer warnings in already-migrated tasks by
@​JanProvaznik in https://github.com/dotnet/msbuild/pull/13466
* Fix race conditions in task host path resolution by @​AR-May in
https://github.com/dotnet/msbuild/pull/13485
* Migrate ToolTask and Al task to TaskEnvironment API by @​OvesN in
https://github.com/dotnet/msbuild/pull/13423
* Bump main to 18.7, add vs18.6 to merge flow by @​MichalPavlik in
https://github.com/dotnet/msbuild/pull/13472
* Avoid allocations in GetHashCode implementations by @​DustinCampbell
in https://github.com/dotnet/msbuild/pull/13475
* Add PATs rotation to agentic workflow(s) by @​JanKrivanek in
https://github.com/dotnet/msbuild/pull/13496
* Fix ASP.NET WebSite projects to copy netstandard.dll facade when
required by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/13058
* Migrate AspNetCompiler to TaskEnvironment API by @​OvesN in
https://github.com/dotnet/msbuild/pull/13424
* Add review workflow by @​JanKrivanek in
https://github.com/dotnet/msbuild/pull/13503
* Strengthen reviewer skill: add step-back analysis dimensions by
@​JanProvaznik in https://github.com/dotnet/msbuild/pull/13504
* Add 'Request Speedometer Perf Run' to VS experimental insertion build
policies by @​Copilot in https://github.com/dotnet/msbuild/pull/13505
* Remove duplicate @ prefix from issueAuthor in GitOps by @​akoeplinger
in https://github.com/dotnet/msbuild/pull/13492
* Improve review aw by @​JanKrivanek in
https://github.com/dotnet/msbuild/pull/13510
* Migrates unit tests to use RoslynCodeTaskFactory to enable running
tests under .NET Core by @​jankratochvilcz in
https://github.com/dotnet/msbuild/pull/13500
* Fix cross-AppDomain TaskItem modifier cache regression by
@​DustinCampbell in https://github.com/dotnet/msbuild/pull/13493
* Discourage review agent from approving PRs by @​JanKrivanek in
https://github.com/dotnet/msbuild/pull/13512
* Stop trying to deploy ValueTuple by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/13507
* Ad-hoc re-sign bootstrap dotnet on macOS to prevent SIGKILL by
@​jankratochvilcz in https://github.com/dotnet/msbuild/pull/13513
* RoslynCodeTaskFactory: Log MSB3753 when task class does not implement
ITask by @​jankratochvilcz in
https://github.com/dotnet/msbuild/pull/13517
* Update gh-aw (upon mcp policy changes) by @​JanKrivanek in
https://github.com/dotnet/msbuild/pull/13526
* Eliminate XmlChildNodes allocations in GetXmlNodeInnerContents by
@​nareshjo in https://github.com/dotnet/msbuild/pull/13509
* Fix telemetry allocation regression: per-engine collector ownership by
@​JanProvaznik in https://github.com/dotnet/msbuild/pull/13516
* Migrate to xunit.v3 by @​Youssef1313 in
https://github.com/dotnet/msbuild/pull/13482
* Fix stray brace in HandleBuildCancel trace string causing MSB1025 by
@​Copilot in https://github.com/dotnet/msbuild/pull/13535
* Bumping to 10.0.4 runtime packages by @​MichalPavlik in
https://github.com/dotnet/msbuild/pull/13533
* Remove early return in GetCanonicalForm, always call System.IO.Path by
@​OvesN in https://github.com/dotnet/msbuild/pull/13532
* Do not overwrite GetCopyToOutputDirectoryItemsDependsOn, just add new…
by @​snechaev in https://github.com/dotnet/msbuild/pull/13474
* Migrate GetReferenceAssemblyPaths task to TaskEnvironment API by
@​OvesN in https://github.com/dotnet/msbuild/pull/13495
* Stabilize ToolTaskThatTimeoutAndRetry test by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/13489
* [automated] Merge branch 'vs18.6' => 'main' by @​github-actions[bot]
in https://github.com/dotnet/msbuild/pull/13506
* Add extra test assertions around tests by @​Youssef1313 in
https://github.com/dotnet/msbuild/pull/13536
* Add static eval for repo skills/agents via skill-validator by
@​JanKrivanek in https://github.com/dotnet/msbuild/pull/13537
* Migrate SGen task to Task environment API by @​OvesN in
https://github.com/dotnet/msbuild/pull/13457
* Fix TerminalLogger assert failure for metaproj files and cached
project eval ID by @​OvesN in
https://github.com/dotnet/msbuild/pull/13480
* Filter out approving review from pr-reviewer agent by @​JanKrivanek in
https://github.com/dotnet/msbuild/pull/13553
* Use a unique task name per invocation to tabilize
RoslynCodeTaskFactory_ReuseCompilation test by @​huulinhnguyen-dev in
https://github.com/dotnet/msbuild/pull/13551
* Brief doc on feedback/logging/data systems by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/13554
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 13881982 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/13437
* Stage 3: Forward BuildProjectFile* callbacks from OOP TaskHost to
worker node by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/13350
* Enable TaskHost Callbacks by default by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/13579
* Remove unactionable info from reviewer agent by @​JanKrivanek in
https://github.com/dotnet/msbuild/pull/13578
* Enlighten RequiresFramework35SP1Assembly task for multithreaded mode
by @​jankratochvilcz in https://github.com/dotnet/msbuild/pull/13575
* Make SdkResolver-provided environment variables take precedence over
ambient environment by @​Copilot in
https://github.com/dotnet/msbuild/pull/12655
* Add dotnet/skills marketplace and enable plugins by @​Evangelink in
https://github.com/dotnet/msbuild/pull/13582
* The skills/agents check filters-in only touched files by @​JanKrivanek
in https://github.com/dotnet/msbuild/pull/13586
* Fix skill-validation workflow failing when agents directory is deleted
by @​JeremyKuhne in https://github.com/dotnet/msbuild/pull/13592
 ... (truncated)

## 18.6.3

## What's Changed
* Improve cross-platform node discovery for reuse with NodeMode
filtering by @​Copilot in https://github.com/dotnet/msbuild/pull/13256
* Updated common types XSD to remove errors from redefining `Include`
attributes by @​glektarssza in
https://github.com/dotnet/msbuild/pull/13284
* Update VersionPrefix to 18.6.0 + insertion flow by @​MichalPavlik in
https://github.com/dotnet/msbuild/pull/13296
* Log warnings for skipped STR resource keys instead of failing the
build by @​OvesN in https://github.com/dotnet/msbuild/pull/13291
* Isolate MSBuildTaskHost from the rest of MSBuild Codebase by
@​DustinCampbell in https://github.com/dotnet/msbuild/pull/13232
* Improve error messages when ToolTask overrides exit code 0 to -1 due
to logged errors by @​OvesN in
https://github.com/dotnet/msbuild/pull/13303
* Migrate Exec task to TaskEnvironment API by @​Copilot in
https://github.com/dotnet/msbuild/pull/13171
* Enhance crash telemetry with richer diagnostics and EndBuild hang
detection by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13304
* [main] Update dependencies from nuget/nuget.client by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13309
* [IBuildEngine callbacks] Stage 2: RequestCores/ReleaseCores by
@​JanProvaznik in https://github.com/dotnet/msbuild/pull/13306
* Only get command line args names on modern .NET by @​baronfel in
https://github.com/dotnet/msbuild/pull/13314
* Detect and correct worker node over-provisioning by @​Copilot in
https://github.com/dotnet/msbuild/pull/13220
* Add App Host Support for MSBuild by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13175
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13311
* Fix ObjectDisposedException in BuildsWhileBuildIsRunningOnServer test
by @​Copilot in https://github.com/dotnet/msbuild/pull/13316
* Add PoC of pipelines check skill by @​JanKrivanek in
https://github.com/dotnet/msbuild/pull/13242
* Fix CodeSign.MissingSigningCert for xsd/Update-MSBuildXsds.ps1 by
@​JanProvaznik in https://github.com/dotnet/msbuild/pull/13320
* Fix task host launch regressions from apphost support by
@​YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13325
* Enlighten GetFrameworkPath and GetFrameworkSdkPath. by @​AR-May in
https://github.com/dotnet/msbuild/pull/13282
* Add VMR codeflow health check to pipelines skill by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/13326
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13281
* Fix GenerateResource to track all ResXFileRef linked files for
incremental builds by @​OvesN in
https://github.com/dotnet/msbuild/pull/13327
* Add escape hatch for not sharing assemblies from tools directory by
@​AR-May in https://github.com/dotnet/msbuild/pull/13305
* Add merge-dependency-updates skill for bot PR triage by @​JanProvaznik
in https://github.com/dotnet/msbuild/pull/13331
* Add diagnostic data to crash/hang telemetry and move null-Project
check after RetrieveFromCache by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13332
* Update remote-host-object.md with SDK .tlb shipping and IDispatch
example by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13324
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13341
* improve task migration skill by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/13234
* Fix telemetry PII concerns: sanitize exceptions, project paths, and
custom names by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13344
* Use .exe.config when loading "as full Framework" by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/13349
* Fix RequestCores/ReleaseCores fallback in OOP TaskHost: throw
NotImplementedException instead of logging error by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/13345
* Fixed indentation for
_GetCopyToOutputDirectoryItemsFromTransitiveProjectReferences by
@​CEbbinghaus in https://github.com/dotnet/msbuild/pull/13358
* Fix Unix SessionId in handshake to enable cross-terminal node reuse by
@​JakeRadMSFT in https://github.com/dotnet/msbuild/pull/13354
* Revert "Migrate Exec task to TaskEnvironment API" by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/13367
* Look for apphost when considering node reuse by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/13368
* Move lots of shared code to Microsoft.Build.Framework by
@​DustinCampbell in https://github.com/dotnet/msbuild/pull/13364
* [main] Source code updates from dotnet/dotnet by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13353
* Fix ScheduleTimeRecord.AccumulatedTime hang during solution close by
@​YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13375
* Update runtime package references to 10.0.3 by @​Copilot in
https://github.com/dotnet/msbuild/pull/13376
* [main] Source code updates from dotnet/dotnet by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13378
* Fix ProjectImports.zip regression from shared FileUtilities statics by
@​JanProvaznik in https://github.com/dotnet/msbuild/pull/13382
* Enrich EndBuild hang diagnostics with logging service and submission
state by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13385
* Enhance path normalization: add handling for consecutive directory
separators by @​tommcdon in https://github.com/dotnet/msbuild/pull/13369
* Move task environment drivers to Framework. by @​AR-May in
https://github.com/dotnet/msbuild/pull/13380
* Update MicrosoftBuildVersion in analyzer template by
@​github-actions[bot] in https://github.com/dotnet/msbuild/pull/13298
* Replace ProjectCacheService null Project crash with diagnostic
telemetry by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13396
* Add agentic workflow to auto-close PRs older than 180 days by
@​Copilot in https://github.com/dotnet/msbuild/pull/13400
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 13575337 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/13394
* Respect MSBUILDPRESERVETOOLTEMPFILES in ProcessExit cleanup by
@​DmitriyShepelev in https://github.com/dotnet/msbuild/pull/13395
 ... (truncated)

## 18.5.4

## What's Changed
* remove dead code by @​SimaTian in
https://github.com/dotnet/msbuild/pull/13125
* Update VersionPrefix to 18.5.0 + insertion flow by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13134
* add multithreaded task migration agent skill by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/13131
* Update MicrosoftBuildVersion in analyzer template by
@​github-actions[bot] in https://github.com/dotnet/msbuild/pull/13139
* Migrate VerifyFileHash task to TaskEnvironment API by @​Copilot in
https://github.com/dotnet/msbuild/pull/13112
* Migrate GetFileHash tasks to TaskEnvironment API by @​Copilot in
https://github.com/dotnet/msbuild/pull/13111
* Diagram of VS/SDK component interactions by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/13127
* Fix package validation telemetry assembly resolution warnings by
@​JanProvaznik in https://github.com/dotnet/msbuild/pull/13144
* Adds validation to throw MSB4259 when property references contain
leading or trailing whitespace outside of conditions. by
@​huulinhnguyen-dev in https://github.com/dotnet/msbuild/pull/13076
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 13203963 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/13151
* Add MSBuild app host design by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/12857
* Add Stabilize-Release.ps1 script for release process by
@​rainersigwald in https://github.com/dotnet/msbuild/pull/13146
* Fix chained item function empty result comparison in conditions by
@​JanProvaznik in https://github.com/dotnet/msbuild/pull/12901
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13162
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13160
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 13217622 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/13163
* Fix items logged as type name during -getitem argument by @​Copilot in
https://github.com/dotnet/msbuild/pull/13166
* Respect NetCoreSdkRoot property for TaskHostParameters by
@​ViktorHofer in https://github.com/dotnet/msbuild/pull/13176
* Remove MachineIndependent configuration by @​Copilot in
https://github.com/dotnet/msbuild/pull/13180
* Remove redundant #nullable disable from 153 files by @​Copilot in
https://github.com/dotnet/msbuild/pull/13157
* Revert #​13076 "Adds validation to throw MSB4259 when property
references contain leading or trailing whitespace outside of conditions.
by @​JanProvaznik in https://github.com/dotnet/msbuild/pull/13184
* Convert MSBuild.sln to slnx format and upate refs by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/13185
* Implement IMultiThreadableTask for Move task by @​Copilot in
https://github.com/dotnet/msbuild/pull/13108
* Add hostservices translation support for clr 4 task host by
@​YuliiaKovalova in https://github.com/dotnet/msbuild/pull/13154
* Handle null ProjectFile in InvalidProjectFileException by
@​ViktorHofer in https://github.com/dotnet/msbuild/pull/13179
* Add $(LatestDotNetCoreForMSBuild) infrastructure for centralized
framework targeting by @​Copilot in
https://github.com/dotnet/msbuild/pull/13189
* Fix TaskHost crash when task returns string[] with null elements by
@​JanProvaznik in https://github.com/dotnet/msbuild/pull/13190
* Revert "Refactor Microsoft.IO usage" by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13194
* Allow null SdkResult from SdkResolver.Resolve by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/13197
* Skill to test changes using just-built MSBuild by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/13202
* Tell Copilot not to allow breaking changes by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/13200
* Make nologo switch accept boolean values to enable explicit logo
display control by @​Copilot in
https://github.com/dotnet/msbuild/pull/12541
* Migrate Unzip task to use TaskEnvironment API by @​Copilot in
https://github.com/dotnet/msbuild/pull/13109
* Migrate ZipDirectory task to TaskEnvironment API by @​Copilot in
https://github.com/dotnet/msbuild/pull/13110
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 13246767 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/13204
* Add .NET Standard compatibility warnings by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/13187
* Make WriteCodeFragment task locale-independent for reproducible builds
by @​Copilot in https://github.com/dotnet/msbuild/pull/13192
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 13249478 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/13207
* Fix TerminalLogger IndexOutOfRangeException when replaying binlog with
fewer nodes by @​Copilot in https://github.com/dotnet/msbuild/pull/12809
* Migrate DownloadFile task to use TaskEnvironment API by @​Copilot in
https://github.com/dotnet/msbuild/pull/13113
* Add CI job for 2-stage build with -mt mode by @​Copilot in
https://github.com/dotnet/msbuild/pull/13124
* Localize AbsolutePath validation messages by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/13115
* Refactor FrameworkFileUtilities for better performance by @​AR-May in
https://github.com/dotnet/msbuild/pull/13143
* Add agent instructions for MSBuild repository by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13198
* Add GetCanonicalForm to the AbsolutePath API by @​AR-May in
https://github.com/dotnet/msbuild/pull/13088
* Shouldly 4.3.0 by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/13213
* Migrate WriteCodeFragment task to use TaskEnvironment API by @​Copilot
in https://github.com/dotnet/msbuild/pull/13169
* Run the issue-labeler over pull requests using polling by @​Copilot in
https://github.com/dotnet/msbuild/pull/13223
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13225
 ... (truncated)

## 18.4.0

## What's Changed
* Fix terminal logger quiet mode to show project context for
warnings/errors by @​Copilot in
https://github.com/dotnet/msbuild/pull/12930
* Replace OpenTelemetry with Microsoft.VisualStudio.Telemetry for VS by
@​YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12843
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 13050856 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/12982
* [main] Source code updates from dotnet/dotnet by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/12979
* eliminate test data serialization warnings by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/12983
* Add the feature flag that allows users to opt out automatic UTF8
console encoding by @​GangWang01 in
https://github.com/dotnet/msbuild/pull/12637
* Polyfill clean up and source package organization by @​DustinCampbell
in https://github.com/dotnet/msbuild/pull/12977
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 13052367 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/12984
* Add documentation for enabling binlog collection via env var by
@​YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12805
* Support multiple binary logs from command line arguments by @​Copilot
in https://github.com/dotnet/msbuild/pull/12706
* Add VcxprojReader.exe to ngenApplications by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/12986
* Add HostServices support in Out-of-Process Task Host by
@​YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12753
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13002
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13000
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 13078382 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/13003
* Add telemetry tracking for task factory names and runtime usage by
@​Copilot in https://github.com/dotnet/msbuild/pull/12989
* [main] Source code updates from dotnet/dotnet by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/12987
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 13079827 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/13010
* Snap for VS 18.3 and update branding to VS 18.4 by @​Copilot in
https://github.com/dotnet/msbuild/pull/13005
* [main] Source code updates from dotnet/dotnet by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13012
* Add telemetry to categorize build failure reasons by @​Copilot in
https://github.com/dotnet/msbuild/pull/13007
* Update MicrosoftBuildVersion in analyzer template by
@​github-actions[bot] in https://github.com/dotnet/msbuild/pull/13011
* Update OptProf drop metadata configuration by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13020
* Fix MSB1025 error when using DistributedFileLogger (-dfl flag) by
@​Copilot in https://github.com/dotnet/msbuild/pull/13036
* CmdLine parsing was extracted from XMake and the implementation is
visible to dotnet (attempt 2) by @​MichalPavlik in
https://github.com/dotnet/msbuild/pull/12836
* Make task environment path absolutization not throw. by @​AR-May in
https://github.com/dotnet/msbuild/pull/13035
* Fix flaky test TestTerminalLoggerTogetherWithOtherLoggers by @​Copilot
in https://github.com/dotnet/msbuild/pull/13044
* Enlighten more tasks that require no change by @​AR-May in
https://github.com/dotnet/msbuild/pull/13045
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13050
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13048
* Add support for MSBUILD_LOGGING_ARGS by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/12993
* Fix MSBuildEventSource by @​dfederm in
https://github.com/dotnet/msbuild/pull/13030
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 13124182 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/13053
* [main] Source code updates from dotnet/dotnet by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/13031
* Add incrementality tracking support and more detailed analysis of the
build errors reported by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13057
* [automated] Merge branch 'vs18.3' => 'main' by @​github-actions[bot]
in https://github.com/dotnet/msbuild/pull/13055
* Enable com support for clr4 in task host by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13033
* Add 'rel/d18.3' to insertion target branch options by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/13067
* add OriginalValue property to AbsolutePath by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/13077
* [automated] Merge branch 'vs18.3' => 'main' by @​github-actions[bot]
in https://github.com/dotnet/msbuild/pull/13074
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 13137486 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/13075
* Refactor FileUtilities.cs and add methods for absolute paths. by
@​AR-May in https://github.com/dotnet/msbuild/pull/13079
* Limit extended flag usage to NET and CLR4 runtimes by @​YuliiaKovalova
in https://github.com/dotnet/msbuild/pull/13080
* [main] Update dependencies from nuget/nuget.client by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/13065
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 13137926 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/13081
* Update to 10.0.1 references by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/13072
* Undo COM support in out of proc task host CLR4 by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/13089
* Add Managed Identity for bootstrapper creation by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/13092
* Add warning MSB4280 when DOTNET_HOST_PATH is set to a directory by
@​Copilot in https://github.com/dotnet/msbuild/pull/13091
 ... (truncated)

## 18.3.3

## What's Changed
* Streamline BuildGlobResultFromIncludeItem by @​Erarndt in
https://github.com/dotnet/msbuild/pull/12178
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/12576
* [main] Update dependencies from nuget/nuget.client by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12573
* Add new project telemetry to telemetry documentation by @​AR-May in
https://github.com/dotnet/msbuild/pull/12565
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/12574
* [main] Source code updates from dotnet/dotnet by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/12564
* Add 17.14->18.0->main automerges by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/12567
* Perf: Reimplement Lookup.Scope tables without ItemDictionary by
@​ccastanedaucf in https://github.com/dotnet/msbuild/pull/12320
* Report line number in app.config error by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/12535
* Use Builder in ImmutableDictionary.SetItems extension by
@​ccastanedaucf in https://github.com/dotnet/msbuild/pull/12402
* Thread-Safe Tasks spec by @​AR-May in
https://github.com/dotnet/msbuild/pull/12111
* Branding for 18.1 by @​AR-May in
https://github.com/dotnet/msbuild/pull/12586
* Fix Copy task case sensitivity issue on Unix systems by @​Copilot in
https://github.com/dotnet/msbuild/pull/12147
* Add null check for environmentVariableProperties by @​YuliiaKovalova
in https://github.com/dotnet/msbuild/pull/12594
* Clarify property tracking capabilities in documentation by
@​YuliiaKovalova in https://github.com/dotnet/msbuild/pull/12600
* enable out of process execution of inline tasks by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/11948
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/12605
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/12604
* [automated] Merge branch 'vs18.0' => 'main' by @​github-actions[bot]
in https://github.com/dotnet/msbuild/pull/12592
* Remove outdated logging + fix the test by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/12607
* Move version label next to version prefix by @​AR-May in
https://github.com/dotnet/msbuild/pull/12609
* Perf: Avoid unnecessary ProjectMetadataInstance allocations by
@​ccastanedaucf in https://github.com/dotnet/msbuild/pull/12599
* Allow NodeProviderOutOfProcTaskHost to manage multiple nodes instead
of one per arch by @​surayya-MS in
https://github.com/dotnet/msbuild/pull/12577
* Systematically use FileSystems abstraction instead of BCL file
operations by @​Copilot in https://github.com/dotnet/msbuild/pull/12602
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 12531490 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/12613
* Enable code coverage for Linux/Mac by @​fhnaseer in
https://github.com/dotnet/msbuild/pull/11920
* Fix the crash when doing preprocess by @​GangWang01 in
https://github.com/dotnet/msbuild/pull/12396
* Track subclasses of MSBuild tasks for telemetry by @​Copilot in
https://github.com/dotnet/msbuild/pull/12623
* Update localization comment for main by @​AR-May in
https://github.com/dotnet/msbuild/pull/12618
* Perf: Use struct for WorkUnitResult by @​ccastanedaucf in
https://github.com/dotnet/msbuild/pull/12403
* Revert "Smaller thread stack size for copy threads" by @​JanProvaznik
in https://github.com/dotnet/msbuild/pull/12626
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 12551716 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/12628
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 12558527 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/12629
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/12635
* [main] Update dependencies from nuget/nuget.client by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/12634
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 12567344 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/12633
* allow a parameter to disable the live-updating nodes display by
@​baronfel in https://github.com/dotnet/msbuild/pull/12581
* Drafts of build scenario and persistent-problems docs by
@​rainersigwald in https://github.com/dotnet/msbuild/pull/11002
* Lookup.ExplicitModifications switch to concrete dictionary type for
enumerator. by @​ttstanley in
https://github.com/dotnet/msbuild/pull/11985
* Add new multithreaded APIs by @​AR-May in
https://github.com/dotnet/msbuild/pull/12625
* /mt implies inline task factories out of proc by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/12614
* Fix bug with not passing scheduled node id to the task host task by
@​AR-May in https://github.com/dotnet/msbuild/pull/12639
* Remove audit sources from NuGet.config by @​akoeplinger in
https://github.com/dotnet/msbuild/pull/12641
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/12673
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/12674
* Update codeflow metadata to fix backflow by @​premun in
https://github.com/dotnet/msbuild/pull/12678
* Optimize for single capture case by @​Erarndt in
https://github.com/dotnet/msbuild/pull/12569
* [automated] Merge branch 'vs18.0' => 'main' by @​github-actions[bot]
in https://github.com/dotnet/msbuild/pull/12685
* Multithreaded task routing by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/12617
 ... (truncated)

## 18.0.2

## What's Changed
* asking terminal for dimensions during every frame is expensive by
@​SimaTian in https://github.com/dotnet/msbuild/pull/11504
* Fix the head parameter when search the created PRs by @​JaynieBai in
https://github.com/dotnet/msbuild/pull/11569
* [main] Update dependencies from nuget/nuget.client by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11552
* Fix test to take warning MSB5018 by @​JaynieBai in
https://github.com/dotnet/msbuild/pull/11499
* Update tsa config by @​AR-May in
https://github.com/dotnet/msbuild/pull/11578
* Switch to AwesomeAssertions by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/11577
* Update MicrosoftBuildVersion in analyzer template by
@​github-actions[bot] in https://github.com/dotnet/msbuild/pull/11581
* Update branding to 17.15 by @​maridematte in
https://github.com/dotnet/msbuild/pull/11582
* using virtual fuction instead of reflection by @​SimaTian in
https://github.com/dotnet/msbuild/pull/11513
* Address some low-hanging fruit to use newer/better .NET features by
@​stephentoub in https://github.com/dotnet/msbuild/pull/11448
* Delete .exp-insertions.yml by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/11601
* Microsoft.Common.CurrentVersion.targets:
_SplitProjectReferencesByFileExistence DependsOn
AssignProjectConfiguration by @​vikukush in
https://github.com/dotnet/msbuild/pull/11167
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/11600
* [main] Update dependencies from dotnet/arcade by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/11587
* Add null check when iterating through TargetOutputs in terminal logger
by @​mruxmohan4 in https://github.com/dotnet/msbuild/pull/11606
* [automated] Merge branch 'vs17.14' => 'main' by @​github-actions[bot]
in https://github.com/dotnet/msbuild/pull/11572
* Assert instead of ! for nullable by @​rainersigwald in
https://github.com/dotnet/msbuild/pull/11545
* Consolidate common IPC / named pipe code by @​ccastanedaucf in
https://github.com/dotnet/msbuild/pull/11546
* [main] Update dependencies from dotnet/source-build-reference-packages
by @​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11592
* Update maintenance-packages versions by @​carlossanlop in
https://github.com/dotnet/msbuild/pull/11457
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/11615
* Update MicrosoftBuildVersion in analyzer template by
@​github-actions[bot] in https://github.com/dotnet/msbuild/pull/11590
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 11273384 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/11608
* Don't force shipping versions to be used in VMR builds by
@​jkoritzinsky in https://github.com/dotnet/msbuild/pull/11625
* Fix url formatting in BuildCheck/Codes.md by @​MaceWindu in
https://github.com/dotnet/msbuild/pull/11631
* `/documentation/specs/*.md` formatting/linting/cleanup by
@​BenjaminBrienen in https://github.com/dotnet/msbuild/pull/11611
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 11285593 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/11639
* [main] Update dependencies from nuget/nuget.client by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11599
* add telemetry e2e test, address code quality issues by @​JanProvaznik
in https://github.com/dotnet/msbuild/pull/11602
* Remove MSBuildRuntimeType conditions by @​ViktorHofer in
https://github.com/dotnet/msbuild/pull/11641
* Set IDE0005 (Remove unnecessary using directives) severity to Warning
by @​JaynieBai in https://github.com/dotnet/msbuild/pull/11643
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/11646
* Remove RichCodeNavIndexer from .vsts-dotnet-ci.yml by @​akoeplinger in
https://github.com/dotnet/msbuild/pull/11647
* [REVERT] 11546 refactor common pipe code by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/11648
* [automated] Merge branch 'vs17.14' => 'main' by @​github-actions[bot]
in https://github.com/dotnet/msbuild/pull/11651
* [main] Update dependencies from nuget/nuget.client by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11645
* Implement ExecCliBuild build check to warn if the Exec task is used to
build a project by @​IliaShuliatikov in
https://github.com/dotnet/msbuild/pull/11523
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 11312841 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/11653
* Improve TargetFrameworkConfusionCheck by @​stan-sz in
https://github.com/dotnet/msbuild/pull/11656
* [automated] Merge branch 'vs17.14' => 'main' by @​github-actions[bot]
in https://github.com/dotnet/msbuild/pull/11664
* VS Telemetry design documentation by @​JanProvaznik in
https://github.com/dotnet/msbuild/pull/11175
* [automated] Merge branch 'vs17.14' => 'main' by @​github-actions[bot]
in https://github.com/dotnet/msbuild/pull/11667
* Localized file check-in by OneLocBuild Task: Build definition ID 9434:
Build ID 11332988 by @​dotnet-bot in
https://github.com/dotnet/msbuild/pull/11675
* [main] Update dependencies from dotnet/source-build-reference-packages
by @​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11685
* [automated] Merge branch 'vs17.14' => 'main' by @​github-actions[bot]
in https://github.com/dotnet/msbuild/pull/11682
* Add separate DeserializePacket() to INodePacketFactory by
@​ccastanedaucf in https://github.com/dotnet/msbuild/pull/11650
* [main] Update dependencies from dotnet/roslyn by @​dotnet-maestro[bot]
in https://github.com/dotnet/msbuild/pull/11695
* Update BuildCheck code BC0109 -> BC0302 by @​YuliiaKovalova in
https://github.com/dotnet/msbuild/pull/11696
* [main] Update dependencies from nuget/nuget.client by
@​dotnet-maestro[bot] in https://github.com/dotnet/msbuild/pull/11689
 ... (truncated)

Commits viewable in [compare
view](https://github.com/dotnet/msbuild/compare/v17.14.28...v18.11.0).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Microsoft.Build&package-manager=nuget&previous-version=17.14.28&new-version=18.11.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
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.

Investigate RestoreTask performance in the task host

4 participants