Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[tests] Run tests in parallel on non-Windows #2224

Merged
merged 1 commit into from
Oct 15, 2018

Conversation

jonpryor
Copy link
Member

@jonpryor jonpryor commented Sep 25, 2018

What do we want? Faster unit test execution!

How do we do that? By running things in parallel!

Some of our existing tests are already run in parallel, such as the
src/Xamarin.Android.Build.Tasks/Tests tests which use NUnit's
[Parallelizable (ParallelScope.Children)], but there is currently no
way to run the Xamarin.Android.Build.Tasks NUnit tests
concurrently with the on-device .apk tests concurrently with the
Java.Interop unit tests concurrently with...

We think there might be a "win" here, as the
Xamarin.Android.Build.Tasks unit tests are heavily I/O bound, while
the .apk BCL tests are -- presumably -- CPU bound, so executing
these at the same time might net some nice time savings.

Spike the idea by updating the RunAllTests target to generate a
shell script
which executes msbuild to run the appropriate test
target, in the background, then waiting for all jobs to finish.

The generated bin/Test$(Configuration)/parallel-targets.sh file
resembles:

echo Executing in background: msbuild …/build-tools/scripts/RunTests.targets /v:normal /binaryLogger:"…/msbuild-20181012T083249-Target-RunNUnitTests.binlog" /t:RunNUnitTests
msbuild …/build-tools/scripts/RunTests.targets /v:normal /binaryLogger:"…/msbuild-20181012T083249-Target-RunNUnitTests.binlog" /t:RunNUnitTests &
wait
exit 0

Copy link
Member

@jonathanpeppers jonathanpeppers left a comment

Choose a reason for hiding this comment

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

This looks good.

The only thing I wonder. What will happen in monodroid? We have some MSBuild tests (InstallTests and InstantRunTests) that deploy to the device. Will those work in parallel with the APK tests?

grendello
grendello previously approved these changes Sep 25, 2018
@jonpryor
Copy link
Member Author

@jonathanpeppers asked:

What will happen in monodroid?

Nothing; monodroid doesn't use make run-all-tests. (It probably should, but it doesn't now.)

@jonpryor
Copy link
Member Author

Alas, the macOS PR Build is unstable, but wow is it not happy:

  Java.Interop/JreRuntime.cs(76,28): error CS0012: The type 'Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. […xamarin-android/external/Java.Interop/src/Java.Runtime.Environment/Java.Runtime.Environment.csproj] […/xamarin-android/build-tools/scripts/RunTests.targets] 
...
  …/xamarin-android/build-tools/scripts/RunTests.targets(65,5): error MSB3073: The command "make -C "/Users/builder/jenkins/workspace/xamarin-android-pr-builder/xa
marin-android/external/Java.Interop" CONFIGURATION=Debug all" exited with code 2.
  …/xamarin-android/build-tools/scripts/RunTests.targets(137,5): error MSB3073: The command "build-tools/scripts/parallel-targets.sh -t RunNUnitTests -t RunJavaInteropTests -t RunApkTests -t RunPerformanceTests /Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/build-tools/scripts/../../bin/Debug/bin/xabuild /v:diag /p:Configuration=Debug /p:XAIntegratedTests=False /Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/build-tools/scripts/RunTests.targets" exited with code -1

    953 Warning(s)
    315 Error(s)

Eep!

I suspect we have a build order dependency problem.

@jonpryor
Copy link
Member Author

Merged PR #2001 (so that we'd get separate .binlog files for unit tests), then rebased this commit on top of now-current master (so that we'd get separate .binlog files for unit tests), which will hopefully let us know why things became unstable.

@jonpryor
Copy link
Member Author

@jonpryor mentioned:

...wow is it not happy:
...
I suspect we have a build order dependency problem.

The actual problem appears to be because the initial effort was using xabuild to run the test targets, not msbuild (which is what make run-all-tests uses).

The latest effort uses msbuild, so I have high hopes it might actually work this time. (Maybe.)

@jonpryor jonpryor dismissed grendello’s stale review October 12, 2018 13:46

Review is out of date because of most recent changes.

@jonpryor
Copy link
Member Author

The macOS PR Build timed out:

  /Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/build-tools/scripts/../../bin/TestDebug/parallel-targets.sh: line 9: 12452 Terminated: 15          msbuild /Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/build-tools/scripts/RunTests.targets /v:normal /binaryLogger:"/Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/build-tools/scripts//../../bin/BuildDebug/msbuild-20181012T111859-Target-RunJavaInteropTests.binlog" /t:RunJavaInteropTests

Retrying, in the hope it'll actually work.

@jonpryor
Copy link
Member Author

@jonpryor wrote

Retrying, in the hope it'll actually work.

Behold, it is green.

Now, is it worth it?

The PR build for this PR took 2h2min.

Meanwhile, perusing the green PR builds on xam-mac-mini-7 shows:

I'll immediately discount #2019; 4h36min is an outlier.

I've also restarted this PR, so that we have an additional data point, i.e. "how consistent" is 2h2min? https://jenkins.mono-project.com/job/xamarin-android-pr-builder/4285/

Assuming 2h2min is consistent, then we're seeing build time improvements between 7% (vs. 2h11min) and 15% (vs 2h23min). That seems pretty good.

@grendello, @jonathanpeppers: Thoughts? Is this worth merging?

@jonpryor
Copy link
Member Author

I've also restarted this PR, so that we have an additional data point, i.e. "how consistent" is 2h2min? https://jenkins.mono-project.com/job/xamarin-android-pr-builder/4285/

The rebuild is 2h3min, which is 6.1% faster than the 2h11min time.

@jonathanpeppers
Copy link
Member

@jonpryor my only concern is if it’s going to make our plots have slower times and make them fluctuate a lot? Could RunPerformanceTests still happen last, but not parallel? I think it only takes 5 min (I think that was my machine), so I would have to look on Jenkins.

We could also try this for a while and see what the plots do.

What do we want?  Faster unit test execution!

How do we do that?  By running things in parallel!

Some of our existing tests are already run in parallel, such as the
`src/Xamarin.Android.Build.Tasks/Tests` tests which use NUnit's
`[Parallelizable (ParallelScope.Children)]`, but there is currently no
way to run the `Xamarin.Android.Build.Tasks` NUnit tests
*concurrently* with the on-device `.apk` tests concurrently with the
Java.Interop unit tests concurrently with...

We *think* there might be a "win" here, as the
`Xamarin.Android.Build.Tasks` unit tests are heavily I/O bound, while
the `.apk` BCL tests are -- presumably -- CPU bound, so executing
these at the same time might net some nice time savings.

Spike the idea by updating the `RunAllTests` target to *generate a
shell script* which executes `msbuild` to run the appropriate test
target, in the background, then waiting for all jobs to finish.

The generated `bin/Test$(Configuration)/parallel-targets.sh` file
resembles:

	echo Executing in background: msbuild …/build-tools/scripts/RunTests.targets /v:normal /binaryLogger:"…/msbuild-20181012T083249-Target-RunNUnitTests.binlog" /t:RunNUnitTests
	msbuild …/build-tools/scripts/RunTests.targets /v:normal /binaryLogger:"…/msbuild-20181012T083249-Target-RunNUnitTests.binlog" /t:RunNUnitTests &
	wait
	exit 0
@jonpryor
Copy link
Member Author

Updated the PR so that the RunPerformanceTests target isn't executed in parallel.

@jonpryor
Copy link
Member Author

By not executing the RunPerformanceTests target in parallel, we get a build time of 1h54min.

Wait, what?

(Consistency, Conschmistency!)

Copy link
Member

@jonathanpeppers jonathanpeppers left a comment

Choose a reason for hiding this comment

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

I would double check the log that they all ran since it was faster, but it looks right to me.

@grendello
Copy link
Contributor

@jonpryor my only concern is if it’s going to make our plots have slower times and make them fluctuate a lot? Could RunPerformanceTests still happen last, but not parallel? I think it only takes 5 min (I think that was my machine), so I would have to look on Jenkins.

We could also try this for a while and see what the plots do.

That's why we need to apply some statistical treatment to the raw data, so that aberrations like PR 2019 don't blur the image

@grendello
Copy link
Contributor

By not executing the RunPerformanceTests target in parallel, we get a build time of 1h54min.

Wait, what?

(Consistency, Conschmistency!)

Hm, maybe it kinda sorta makes sense? Those are performance tests, which means they are stressing the machine (I'm guessing)? So running them in parallel may slow things down by increasing process queue time.

@grendello
Copy link
Contributor

All in all, I think it's worth saving the 6-7% of time we spend on build. It's not an insignificant amount of time.

@jonpryor jonpryor merged commit 91a3972 into dotnet:master Oct 15, 2018
jonpryor added a commit to jonpryor/xamarin-android that referenced this pull request Jul 14, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1

  * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (dotnet#2498)
  * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1
  * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (dotnet#2495)
  * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2
  * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (dotnet#2493)
  * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (dotnet#2494)
  * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (dotnet#2473)
  * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (dotnet#2472)
  * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (dotnet#2471)
  * JamesNK/Newtonsoft.Json@0a56633b: Fixes dotnet#2372 - variable typos (dotnet#2465)
  * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (dotnet#2463)
  * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (dotnet#2462)
  * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout
  * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary
  * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (dotnet#2452)
  * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (dotnet#2448)
  * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (dotnet#2442)
  * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (dotnet#2438)
  * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (dotnet#2416)
  * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (dotnet#2383)
  * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (dotnet#2428)
  * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (dotnet#2424)
  * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (dotnet#2304)
  * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (dotnet#2226)
  * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (dotnet#2228)
  * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (dotnet#2224)
jonpryor added a commit to jonpryor/xamarin-android that referenced this pull request Jul 15, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1

  * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (dotnet#2498)
  * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1
  * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (dotnet#2495)
  * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2
  * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (dotnet#2493)
  * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (dotnet#2494)
  * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (dotnet#2473)
  * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (dotnet#2472)
  * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (dotnet#2471)
  * JamesNK/Newtonsoft.Json@0a56633b: Fixes dotnet#2372 - variable typos (dotnet#2465)
  * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (dotnet#2463)
  * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (dotnet#2462)
  * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout
  * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary
  * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (dotnet#2452)
  * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (dotnet#2448)
  * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (dotnet#2442)
  * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (dotnet#2438)
  * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (dotnet#2416)
  * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (dotnet#2383)
  * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (dotnet#2428)
  * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (dotnet#2424)
  * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (dotnet#2304)
  * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (dotnet#2226)
  * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (dotnet#2228)
  * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (dotnet#2224)

The `PackagingTest.NetStandardReferenceTest()` test is updated to no
longer list `Microsoft.CSharp.dll` as an expected file, as with
`Newtonsoft.Json.dll` v13.0.1, our build now consumes the
netstandard2.0-profile version, not the netstandard1.3 version, and
the netstandard 2.0 version doesn't require `Microsoft.CSharp.dll`.
jonpryor added a commit to jonpryor/xamarin-android that referenced this pull request Jul 15, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1

  * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (dotnet#2498)
  * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1
  * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (dotnet#2495)
  * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2
  * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (dotnet#2493)
  * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (dotnet#2494)
  * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (dotnet#2473)
  * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (dotnet#2472)
  * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (dotnet#2471)
  * JamesNK/Newtonsoft.Json@0a56633b: Fixes dotnet#2372 - variable typos (dotnet#2465)
  * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (dotnet#2463)
  * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (dotnet#2462)
  * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout
  * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary
  * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (dotnet#2452)
  * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (dotnet#2448)
  * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (dotnet#2442)
  * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (dotnet#2438)
  * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (dotnet#2416)
  * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (dotnet#2383)
  * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (dotnet#2428)
  * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (dotnet#2424)
  * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (dotnet#2304)
  * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (dotnet#2226)
  * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (dotnet#2228)
  * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (dotnet#2224)

The `PackagingTest.NetStandardReferenceTest()` test is updated, as
the list of implicitly referenced assemblies changed:

  * `Microsoft.CSharp.dll` is no longer referenced
  * `System.Data.dll` is now referenced.

It appears that the primary cause of this change is that with
`Newtonsoft.Json` 12.0.3, the .NET Standard 1.3-profile assemblies
were included into the app, while with 13.0.1, the .NET Standard-2.0
profile assemblies are instead used.
jonpryor added a commit to jonpryor/xamarin-android that referenced this pull request Jul 16, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1

  * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (dotnet#2498)
  * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1
  * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (dotnet#2495)
  * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2
  * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (dotnet#2493)
  * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (dotnet#2494)
  * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (dotnet#2473)
  * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (dotnet#2472)
  * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (dotnet#2471)
  * JamesNK/Newtonsoft.Json@0a56633b: Fixes dotnet#2372 - variable typos (dotnet#2465)
  * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (dotnet#2463)
  * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (dotnet#2462)
  * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout
  * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary
  * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (dotnet#2452)
  * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (dotnet#2448)
  * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (dotnet#2442)
  * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (dotnet#2438)
  * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (dotnet#2416)
  * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (dotnet#2383)
  * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (dotnet#2428)
  * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (dotnet#2424)
  * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (dotnet#2304)
  * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (dotnet#2226)
  * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (dotnet#2228)
  * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (dotnet#2224)

The `PackagingTest.NetStandardReferenceTest()` test is updated, as
the list of implicitly referenced assemblies changed:

  * `Microsoft.CSharp.dll` is no longer referenced
  * `System.Data.dll` is now referenced.

It appears that the primary cause of this change is that with
`Newtonsoft.Json` 12.0.3, the .NET Standard 1.3-profile assemblies
were included into the app, while with 13.0.1, the .NET Standard-2.0
profile assemblies are instead used.
jonpryor added a commit that referenced this pull request Jul 16, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1

  * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (#2498)
  * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1
  * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (#2495)
  * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2
  * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (#2493)
  * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (#2494)
  * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (#2473)
  * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (#2472)
  * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (#2471)
  * JamesNK/Newtonsoft.Json@0a56633b: Fixes #2372 - variable typos (#2465)
  * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (#2463)
  * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (#2462)
  * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout
  * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary
  * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (#2452)
  * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (#2448)
  * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (#2442)
  * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (#2438)
  * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (#2416)
  * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (#2383)
  * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (#2428)
  * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (#2424)
  * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (#2304)
  * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (#2226)
  * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (#2228)
  * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (#2224)

The `PackagingTest.NetStandardReferenceTest()` test is updated, as
the list of implicitly referenced assemblies changed:

  * `Microsoft.CSharp.dll` is no longer referenced
  * `System.Data.dll` is now referenced.

It appears that the primary cause of this change is that with
`Newtonsoft.Json` 12.0.3, the .NET Standard 1.3-profile assemblies
were included into the app, while with 13.0.1, the .NET Standard-2.0
profile assemblies are instead used.
@github-actions github-actions bot locked and limited conversation to collaborators Feb 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants