diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index fd3a04477..3be1c5ee5 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,19 +3,19 @@
"isRoot": true,
"tools": {
"dotnet-counters": {
- "version": "6.0.351802",
+ "version": "8.0.452401",
"commands": [
"dotnet-counters"
]
},
"dotnet-dump": {
- "version": "6.0.351802",
+ "version": "8.0.452401",
"commands": [
"dotnet-dump"
]
},
"dotnet-ilverify": {
- "version": "7.0.0",
+ "version": "8.0.0",
"commands": [
"ilverify"
]
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 34b3d7c97..3c5c097b8 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -26,10 +26,10 @@ jobs:
uses: NuGet/setup-nuget@v1
with:
nuget-version: '6.x'
- - name: Setup .NET 7.0 SDK
+ - name: Setup .NET 8.0 SDK
uses: actions/setup-dotnet@v1
with:
- dotnet-version: '7.0.x'
+ dotnet-version: '8.0.x'
- name: Set environment variables
run: echo "COYOTE_CLI_TELEMETRY_OPTOUT=1" >> $GITHUB_ENV
# Initializes the CodeQL tools for scanning.
diff --git a/.github/workflows/test-coyote.yml b/.github/workflows/test-coyote.yml
index a48f02906..af4a77433 100644
--- a/.github/workflows/test-coyote.yml
+++ b/.github/workflows/test-coyote.yml
@@ -25,23 +25,19 @@ jobs:
env:
COYOTE_CLI_TELEMETRY_OPTOUT: 1
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: Setup NuGet.exe
uses: NuGet/setup-nuget@v1
with:
nuget-version: '6.x'
- - name: Setup .NET 7.0 SDK
- uses: actions/setup-dotnet@v1
+ - name: Setup .NET SDK
+ uses: actions/setup-dotnet@v3
with:
- dotnet-version: '7.0.x'
- - name: Setup .NET 6.0 SDK
- uses: actions/setup-dotnet@v1
- with:
- dotnet-version: '6.0.x'
- - name: Setup .NET Core 3.1 SDK
- uses: actions/setup-dotnet@v1
- with:
- dotnet-version: '3.1.x'
+ dotnet-version: |
+ 3.1.x
+ 6.0.x
+ 7.0.x
+ 8.0.x
- name: Setup debugging tools
if: ${{ matrix.platform == 'windows-latest' }}
run: |
@@ -80,11 +76,15 @@ jobs:
env:
COYOTE_CLI_TELEMETRY_OPTOUT: 1
steps:
- - uses: actions/checkout@v2
- - name: Setup .NET 7.0 SDK
- uses: actions/setup-dotnet@v1
+ - uses: actions/checkout@v4
+ - name: Setup .NET SDK
+ uses: actions/setup-dotnet@v3
with:
- dotnet-version: '7.0.x'
+ dotnet-version: |
+ 3.1.x
+ 6.0.x
+ 7.0.x
+ 8.0.x
- name: Download Coyote binaries
uses: actions/download-artifact@v3
with:
diff --git a/.github/workflows/test-performance.yml b/.github/workflows/test-performance.yml
index 271f0f38b..3482ef588 100644
--- a/.github/workflows/test-performance.yml
+++ b/.github/workflows/test-performance.yml
@@ -23,10 +23,10 @@ jobs:
uses: NuGet/setup-nuget@v1
with:
nuget-version: '6.x'
- - name: Setup .NET 7.0 SDK
+ - name: Setup .NET 8.0 SDK
uses: actions/setup-dotnet@v1
with:
- dotnet-version: '7.0.x'
+ dotnet-version: '8.0.x'
- name: Setup Powershell
run: ./Scripts/install-pwsh.cmd
- name: Build Coyote projects
diff --git a/Common/build.props b/Common/build.props
index a146c2cb6..0c2ff9a64 100644
--- a/Common/build.props
+++ b/Common/build.props
@@ -7,6 +7,8 @@
© Microsoft Corporation. All rights reserved.
https://github.com/microsoft/coyote
git
+
+ false
https://microsoft.github.io/coyote/
@@ -16,10 +18,13 @@
LICENSE
$(MSBuildThisFileDirectory)/../bin/nuget
+
+ 12.0
+
10.0
-
+
8.0
@@ -48,10 +53,15 @@
false
true
true
- net7.0
+ true
+ false
+ true
+ true
+ net8.0
$(TargetFrameworks);netstandard2.0
$(TargetFrameworks);netcoreapp3.1
$(TargetFrameworks);net6.0
+ $(TargetFrameworks);net7.0
$(TargetFrameworks);net462
diff --git a/Samples/CloudMessaging/run-mock.cmd b/Samples/CloudMessaging/run-mock.cmd
index 8baeb9389..54bad474d 100644
--- a/Samples/CloudMessaging/run-mock.cmd
+++ b/Samples/CloudMessaging/run-mock.cmd
@@ -1,2 +1,2 @@
cd %~dp0
-dotnet ..\..\bin\net7.0\coyote.dll test /../bin/net7.0/Raft.Mocking.dll -i 1000 -ms 500 -graph-bug
+dotnet ..\..\bin\net8.0\coyote.dll test /../bin/net8.0/Raft.Mocking.dll -i 1000 -ms 500 -graph-bug
diff --git a/Samples/CloudMessaging/run-nondeterminism.cmd b/Samples/CloudMessaging/run-nondeterminism.cmd
index 6917ef129..3c201ef3c 100644
--- a/Samples/CloudMessaging/run-nondeterminism.cmd
+++ b/Samples/CloudMessaging/run-nondeterminism.cmd
@@ -1,2 +1,2 @@
cd %~dp0
-dotnet ..\..\bin\net7.0\coyote.dll test ../bin/net7.0/Raft.Nondeterminism.dll -i 1000 -ms 500 -graph-bug
+dotnet ..\..\bin\net8.0\coyote.dll test ../bin/net8.0/Raft.Nondeterminism.dll -i 1000 -ms 500 -graph-bug
diff --git a/Samples/CloudMessaging/run.cmd b/Samples/CloudMessaging/run.cmd
index 15eb9ba91..087d83c94 100644
--- a/Samples/CloudMessaging/run.cmd
+++ b/Samples/CloudMessaging/run.cmd
@@ -1 +1 @@
-dotnet %~dp0\..\bin\net7.0\Raft.Azure.dll --connection-string %CONNECTION_STRING% --topic-name rafttopic --num-requests 5 --local-cluster-size 5
+dotnet %~dp0\..\bin\net8.0\Raft.Azure.dll --connection-string %CONNECTION_STRING% --topic-name rafttopic --num-requests 5 --local-cluster-size 5
diff --git a/Samples/Common/TestDriver/rewrite.coyote.json b/Samples/Common/TestDriver/rewrite.coyote.json
index 9a1028ab7..a4aa0a6f4 100644
--- a/Samples/Common/TestDriver/rewrite.coyote.json
+++ b/Samples/Common/TestDriver/rewrite.coyote.json
@@ -1,5 +1,5 @@
{
- "AssembliesPath": "../bin/net7.0",
+ "AssembliesPath": "../bin/net8.0",
"Assemblies": [
"AccountManager.dll",
"AccountManager.ETags.dll",
diff --git a/Samples/Common/build.props b/Samples/Common/build.props
index cc18b0450..17f17cdd9 100644
--- a/Samples/Common/build.props
+++ b/Samples/Common/build.props
@@ -4,8 +4,8 @@
CoyoteSamples
Microsoft Corporation
Copyright © Microsoft Corporation.
- 10.0
- net7.0
+ 12.0
+ net8.0
False
False
True
diff --git a/Samples/README.md b/Samples/README.md
index 7636cbacc..875331663 100644
--- a/Samples/README.md
+++ b/Samples/README.md
@@ -35,8 +35,8 @@ to build reliable applications and services:
To build and run the samples, you will need to:
-- Install the [.NET 7.0 SDK](https://dotnet.microsoft.com/download/dotnet).
-- Install the [.NET 7.0 version of the coyote
+- Install the [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet).
+- Install the [.NET 8.0 version of the coyote
tool](https://microsoft.github.io/coyote/get-started/install/).
Once you are ready, build the samples by running the following script from the root of the
diff --git a/Samples/Scripts/run-tests.ps1 b/Samples/Scripts/run-tests.ps1
index 760099863..0d9e3cec0 100644
--- a/Samples/Scripts/run-tests.ps1
+++ b/Samples/Scripts/run-tests.ps1
@@ -7,7 +7,7 @@ CheckPSVersion
Write-Comment -prefix "." -text "Testing the Coyote samples" -color "yellow"
-$framework = "net7.0"
+$framework = "net8.0"
$tests = "$PSScriptRoot/../Common/bin/$framework/TestDriver.dll"
if (-not (Test-Path $tests)) {
Write-Error "tests for the Coyote samples not found."
diff --git a/Samples/WebApps/ImageGalleryAspNet/ImageGallery/design.dgml b/Samples/WebApps/ImageGalleryAspNet/ImageGallery/design.dgml
index b6d3d0596..0d6d6e9b1 100644
--- a/Samples/WebApps/ImageGalleryAspNet/ImageGallery/design.dgml
+++ b/Samples/WebApps/ImageGalleryAspNet/ImageGallery/design.dgml
@@ -617,7 +617,7 @@
-
+
@@ -869,13 +869,13 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/WebApps/ImageGalleryAspNet/ImageGallery/readme.md b/Samples/WebApps/ImageGalleryAspNet/ImageGallery/readme.md
index 5c4be451c..959629b83 100644
--- a/Samples/WebApps/ImageGalleryAspNet/ImageGallery/readme.md
+++ b/Samples/WebApps/ImageGalleryAspNet/ImageGallery/readme.md
@@ -8,7 +8,7 @@ This is a web client front end that uses the ImageGalleryService middle tier.
The app depends on the following:
-- [.NET 7.0 SDK](https://dotnet.microsoft.com/download/dotnet) must be installed.
+- [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet) must be installed.
- [Azure Storage Emulator](https://docs.microsoft.com/en-us/azure/storage/common/storage-use-emulator) must be hnstalled running.
- [Azure Cosmos Emulator](https://docs.microsoft.com/en-us/azure/cosmos-db/local-emulator?tabs=cli%2Cssl-netstd21) must be installed and running.
- Open Azure Cosmos Data Explorer from taskbar tray and copy the `Primary Connection String` from there into `~/ImageGalleryAspNet/ImageGalleryService/appsettings.json`.
diff --git a/Samples/WebApps/ImageGalleryAspNet/rewrite.coyote.json b/Samples/WebApps/ImageGalleryAspNet/rewrite.coyote.json
index 14ce638a7..6beb421ac 100644
--- a/Samples/WebApps/ImageGalleryAspNet/rewrite.coyote.json
+++ b/Samples/WebApps/ImageGalleryAspNet/rewrite.coyote.json
@@ -1,5 +1,5 @@
{
- "AssembliesPath": "./bin/net7.0",
+ "AssembliesPath": "./bin/net8.0",
"OutputPath": "./bin/coyote",
"Assemblies": [
"ImageGalleryService.dll",
diff --git a/Samples/WebApps/PetImagesAspNet/PetImages.Tests/rewrite.coyote.json b/Samples/WebApps/PetImagesAspNet/PetImages.Tests/rewrite.coyote.json
index b7cc8ff97..2cef38260 100644
--- a/Samples/WebApps/PetImagesAspNet/PetImages.Tests/rewrite.coyote.json
+++ b/Samples/WebApps/PetImagesAspNet/PetImages.Tests/rewrite.coyote.json
@@ -1,5 +1,5 @@
{
- "AssembliesPath": "./bin/net7.0",
+ "AssembliesPath": "./bin/net8.0",
"Assemblies": [
"PetImages.dll",
"PetImages.Tests.dll"
diff --git a/Scripts/CI/azure-nuget-sign-publish.yml b/Scripts/CI/azure-nuget-sign-publish.yml
index 205f322f9..a552c9165 100644
--- a/Scripts/CI/azure-nuget-sign-publish.yml
+++ b/Scripts/CI/azure-nuget-sign-publish.yml
@@ -7,6 +7,11 @@ steps:
inputs:
versionSpec: 6.x
+- task: UseDotNet@2
+ displayName: 'Install .NET 8.0 SDK'
+ inputs:
+ version: 8.0.x
+
- task: UseDotNet@2
displayName: 'Install .NET 7.0 SDK'
inputs:
@@ -38,6 +43,36 @@ steps:
failOnStderr: true
pwsh: true
+- task: EsrpCodeSigning@2
+ displayName: 'ESRP CodeSigning .NET 8.0'
+ inputs:
+ ConnectedServiceName: CoyoteNugetSign
+ FolderPath: bin\net8.0
+ signConfigType: inlineSignParams
+ inlineOperation: |
+ [
+ {
+ "KeyCode": "CP-230012",
+ "OperationCode": "SigntoolSign",
+ "Parameters": {
+ "OpusName": "Microsoft.Coyote",
+ "OpusInfo": "https://github.com/Microsoft/Coyote",
+ "FileDigest": "/fd \"SHA256\"",
+ "PageHash": "/PH",
+ "TimeStamp": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
+ },
+ "ToolName": "sign",
+ "ToolVersion": "1.0"
+ },
+ {
+ "KeyCode": "CP-230012",
+ "OperationCode": "SigntoolVerify",
+ "Parameters": {},
+ "ToolName": "sign",
+ "ToolVersion": "1.0"
+ }
+ ]
+
- task: EsrpCodeSigning@2
displayName: 'ESRP CodeSigning .NET 7.0'
inputs:
diff --git a/Scripts/build.ps1 b/Scripts/build.ps1
index 9432c6b7a..ca643d08d 100644
--- a/Scripts/build.ps1
+++ b/Scripts/build.ps1
@@ -28,6 +28,7 @@ $dotnet_sdk_path = FindDotNetSdkPath -dotnet $dotnet
$version_net4 = $IsWindows -and (Get-ItemProperty "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full").Release -ge 528040
$version_netcore31 = FindMatchingVersion -path $dotnet_sdk_path -version "3.1.0"
$version_net6 = FindMatchingVersion -path $dotnet_sdk_path -version "6.0.0"
+$version_net7 = FindMatchingVersion -path $dotnet_sdk_path -version "7.0.0"
$sdk_version = FindDotNetSdkVersion -dotnet_sdk_path $dotnet_sdk_path
if ($null -eq $sdk_version) {
@@ -53,6 +54,11 @@ if ($ci.IsPresent) {
# Build .NET 6.0 as well as the latest version.
$extra_frameworks = $extra_frameworks + " /p:BUILD_NET6=yes"
}
+
+ if ($null -ne $version_net7 -and $version_net7 -ne $sdk_version) {
+ # Build .NET 7.0 as well as the latest version.
+ $extra_frameworks = $extra_frameworks + " /p:BUILD_NET7=yes"
+ }
}
Write-Comment -text "Using configuration '$configuration'." -color "magenta"
diff --git a/Scripts/common.psm1 b/Scripts/common.psm1
index fe1876210..3cf2b6e3d 100644
--- a/Scripts/common.psm1
+++ b/Scripts/common.psm1
@@ -23,7 +23,7 @@ function Invoke-CoyoteTool([String]$cmd, [String]$dotnet, [String]$framework, [S
$command = "$coyote $cmd $target"
}
- if ($command -eq "rewrite" -and $framework -ne "netcoreapp3.1" -and $framework -ne "net6.0" -and $framework -ne "net7.0" -and $IsWindows) {
+ if ($command -eq "rewrite" -and $framework -ne "netcoreapp3.1" -and $framework -ne "net6.0" -and $framework -ne "net7.0" -and $framework -ne "net8.0" -and $IsWindows) {
# NOTE: Mono.Cecil cannot sign assemblies on unix platforms.
$command = "$command -snk $key"
}
diff --git a/Scripts/gen-docs.ps1 b/Scripts/gen-docs.ps1
index abba4e023..271f8f3fa 100644
--- a/Scripts/gen-docs.ps1
+++ b/Scripts/gen-docs.ps1
@@ -3,7 +3,7 @@
$root_dir = "$PSScriptRoot\.."
$packages_path = "$root_dir\packages"
-$framework = "net7.0"
+$framework = "net8.0"
Import-Module $PSScriptRoot\common.psm1 -Force
diff --git a/Scripts/run-benchmark-history.ps1 b/Scripts/run-benchmark-history.ps1
index 758c5fe30..d4717ad32 100644
--- a/Scripts/run-benchmark-history.ps1
+++ b/Scripts/run-benchmark-history.ps1
@@ -41,7 +41,7 @@ function RestoreBenchmark() {
Invoke-Expression "sed -i 's/\\Performance.Tests.csproj/\\Microsoft.Coyote.Performance.Tests.csproj/' $RootDir\Coyote.sln"
}
-$benchmarks_dir = "$RootDir/Tools/BenchmarkRunner/bin/net7.0"
+$benchmarks_dir = "$RootDir/Tools/BenchmarkRunner/bin/net8.0"
$benchmark_runner = "BenchmarkRunner.exe"
$index = 0
diff --git a/Scripts/run-benchmarks.ps1 b/Scripts/run-benchmarks.ps1
index c59c2c935..f3e2cc786 100644
--- a/Scripts/run-benchmarks.ps1
+++ b/Scripts/run-benchmarks.ps1
@@ -30,7 +30,7 @@ if ($local -eq ""){
}
$current_dir = (Get-Item -Path "./").FullName
-$benchmarks_dir = "$PSScriptRoot/../Tools/BenchmarkRunner/bin/net7.0"
+$benchmarks_dir = "$PSScriptRoot/../Tools/BenchmarkRunner/bin/net8.0"
$benchmark_runner = "BenchmarkRunner.exe"
$artifacts_dir = "$current_dir/benchmark_$commit"
diff --git a/Scripts/run-tests.ps1 b/Scripts/run-tests.ps1
index bfdba5788..46c978b8c 100644
--- a/Scripts/run-tests.ps1
+++ b/Scripts/run-tests.ps1
@@ -2,8 +2,8 @@
# Licensed under the MIT License.
param(
- [ValidateSet("net7.0", "net6.0", "netcoreapp3.1", "net462")]
- [string]$framework = "net7.0",
+ [ValidateSet("net8.0", "net7.0", "net6.0", "netcoreapp3.1", "net462")]
+ [string]$framework = "net8.0",
[ValidateSet("all", "runtime", "rewriting", "testing", "actors", "actors-testing", "tools")]
[string]$test = "all",
[string]$filter = "",
@@ -53,12 +53,12 @@ foreach ($kvp in $targets.GetEnumerator()) {
}
$target = "$PSScriptRoot/../Tests/$($kvp.Value)/$($kvp.Value).csproj"
- if ($f -eq "net7.0") {
+ if ($f -eq "net8.0") {
$AssemblyName = GetAssemblyName($target)
- $command = [IO.Path]::Combine($PSScriptRoot, "..", "Tests", $($kvp.Value), "bin", "net7.0", "$AssemblyName.dll")
+ $command = [IO.Path]::Combine($PSScriptRoot, "..", "Tests", $($kvp.Value), "bin", "net8.0", "$AssemblyName.dll")
$command = $command + ' -r "' + [IO.Path]::Combine( `
- $PSScriptRoot, "..", "Tests", $($kvp.Value), "bin", "net7.0", "*.dll") + '"'
- $command = $command + ' -r "' + [IO.Path]::Combine($PSScriptRoot, "..", "bin", "net7.0", "*.dll") + '"'
+ $PSScriptRoot, "..", "Tests", $($kvp.Value), "bin", "net8.0", "*.dll") + '"'
+ $command = $command + ' -r "' + [IO.Path]::Combine($PSScriptRoot, "..", "bin", "net8.0", "*.dll") + '"'
$command = $command + ' -r "' + [IO.Path]::Combine($dotnet_runtime_path, $runtime_version, "*.dll") + '"'
$command = $command + ' -r "' + [IO.Path]::Combine($aspnet_runtime_path, $runtime_version, "*.dll") + '"'
Invoke-ToolCommand -tool $ilverify -cmd $command -error_msg "found corrupted assembly rewriting"
diff --git a/Source/Core/Runtime/Exceptions/RuntimeException.cs b/Source/Core/Runtime/Exceptions/RuntimeException.cs
index 94ab97a77..0cbb43208 100644
--- a/Source/Core/Runtime/Exceptions/RuntimeException.cs
+++ b/Source/Core/Runtime/Exceptions/RuntimeException.cs
@@ -40,6 +40,9 @@ internal RuntimeException(string message, Exception innerException)
///
/// Initializes a new instance of the class.
///
+#if NET8_0_OR_GREATER
+ [Obsolete("This method is obsolete due to BinaryFormatter obsoleted", DiagnosticId = "SYSLIB0051")]
+#endif
protected RuntimeException(SerializationInfo serializationInfo, StreamingContext streamingContext)
: base(serializationInfo, streamingContext)
{
diff --git a/Source/Test/Rewriting/RewritingOptions.cs b/Source/Test/Rewriting/RewritingOptions.cs
index 21042884a..470619c4b 100644
--- a/Source/Test/Rewriting/RewritingOptions.cs
+++ b/Source/Test/Rewriting/RewritingOptions.cs
@@ -308,7 +308,9 @@ private static bool TryResolveTargetFramework(Assembly assembly, out string reso
{
if (tokens[0] == ".NETCoreApp")
{
- resolvedTargetFramework = tokens[1] is "v7.0" ? "net7.0" :
+ resolvedTargetFramework =
+ tokens[1] is "v8.0" ? "net8.0" :
+ tokens[1] is "v7.0" ? "net7.0" :
tokens[1] is "v6.0" ? "net6.0" :
tokens[1] is "v3.1" ? "netcoreapp3.1" :
resolvedTargetFramework;
@@ -331,10 +333,10 @@ private static bool TryResolveTargetFramework(Assembly assembly, out string reso
/// {
/// // The directory with the assemblies to rewrite. This path is relative
/// // to this configuration file.
- /// "AssembliesPath": "./bin/net7.0",
+ /// "AssembliesPath": "./bin/net8.0",
/// // The output directory where rewritten assemblies are placed. This path
/// // is relative to this configuration file.
- /// "OutputPath": "./bin/net7.0/RewrittenBinaries",
+ /// "OutputPath": "./bin/net8.0/RewrittenBinaries",
/// // The assemblies to rewrite. The paths are relative to 'AssembliesPath'.
/// "Assemblies": [
/// "Example.exe"
diff --git a/Source/Test/Rewriting/Types/Collections/Generic/Dictionary.cs b/Source/Test/Rewriting/Types/Collections/Generic/Dictionary.cs
index 72b774b95..8a7de2f26 100644
--- a/Source/Test/Rewriting/Types/Collections/Generic/Dictionary.cs
+++ b/Source/Test/Rewriting/Types/Collections/Generic/Dictionary.cs
@@ -1,6 +1,7 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
+using System;
using System.Runtime.Serialization;
using Microsoft.Coyote.Runtime;
using SystemGenerics = System.Collections.Generic;
@@ -246,6 +247,9 @@ public static bool TryGetValue(SystemGenerics.Dictionary instance,
/// Implements the interface and returns the data needed
/// to serialize the dictionary instance.
///
+#if NET8_0_OR_GREATER
+ [Obsolete("This method is obsolete due to BinaryFormatter obsoleted", DiagnosticId = "SYSLIB0051")]
+#endif
public static void GetObjectData(SystemGenerics.Dictionary instance,
SerializationInfo info, StreamingContext context)
{
diff --git a/Source/Test/Rewriting/Types/Collections/Generic/HashSet.cs b/Source/Test/Rewriting/Types/Collections/Generic/HashSet.cs
index 1c9880214..c35369346 100644
--- a/Source/Test/Rewriting/Types/Collections/Generic/HashSet.cs
+++ b/Source/Test/Rewriting/Types/Collections/Generic/HashSet.cs
@@ -183,6 +183,9 @@ public static SystemGenerics.HashSet.Enumerator GetEnumerator(SystemGenerics.
/// Implements the interface and returns the data needed to
/// serialize a hash set object.
///
+#if NET8_0_OR_GREATER
+ [Obsolete("This method is obsolete due to BinaryFormatter obsoleted", DiagnosticId = "SYSLIB0051")]
+#endif
public static void GetObjectData(SystemGenerics.HashSet instance, SerializationInfo info,
StreamingContext context)
{
@@ -376,6 +379,9 @@ internal Wrapper(SystemGenerics.IEqualityComparer comparer)
///
/// Initializes a new instance of the class.
///
+#if NET8_0_OR_GREATER
+ [Obsolete("This method is obsolete due to BinaryFormatter obsoleted", DiagnosticId = "SYSLIB0051")]
+#endif
internal Wrapper(SerializationInfo info, StreamingContext context)
: base(info, context) => this.Setup();
diff --git a/Source/Test/Rewriting/Types/Runtime/CompilerServices/ConfiguredTaskAwaitable.cs b/Source/Test/Rewriting/Types/Runtime/CompilerServices/ConfiguredTaskAwaitable.cs
index 3b309cd3b..564e5ab85 100644
--- a/Source/Test/Rewriting/Types/Runtime/CompilerServices/ConfiguredTaskAwaitable.cs
+++ b/Source/Test/Rewriting/Types/Runtime/CompilerServices/ConfiguredTaskAwaitable.cs
@@ -11,7 +11,7 @@
namespace Microsoft.Coyote.Rewriting.Types.Runtime.CompilerServices
{
///
- /// Provides an awaitable object that is the outcome of invoking .
+ /// Provides an awaitable object that is the outcome of invoking .
///
/// This type is intended for compiler use only.
[System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
diff --git a/Source/Test/Test.csproj b/Source/Test/Test.csproj
index bec9d421b..53cb14d7d 100644
--- a/Source/Test/Test.csproj
+++ b/Source/Test/Test.csproj
@@ -19,6 +19,9 @@
+
+
+
diff --git a/Tests/compare-rewriting-diff-logs.ps1 b/Tests/compare-rewriting-diff-logs.ps1
index 91a891910..abc94e1d0 100644
--- a/Tests/compare-rewriting-diff-logs.ps1
+++ b/Tests/compare-rewriting-diff-logs.ps1
@@ -3,7 +3,7 @@
Import-Module $PSScriptRoot/../Scripts/common.psm1 -Force
-$framework = "net7.0"
+$framework = "net8.0"
$targets = [ordered]@{
"rewriting" = "Tests.Rewriting"
"rewriting-helpers" = "Tests.Rewriting.Helpers"
diff --git a/Tests/get-rewriting-diff-logs.ps1 b/Tests/get-rewriting-diff-logs.ps1
index 319c20069..8def4195e 100644
--- a/Tests/get-rewriting-diff-logs.ps1
+++ b/Tests/get-rewriting-diff-logs.ps1
@@ -3,7 +3,7 @@
Import-Module $PSScriptRoot/../Scripts/common.psm1 -Force
-$framework = "net7.0"
+$framework = "net8.0"
$targets = [ordered]@{
"rewriting" = "Tests.Rewriting"
"rewriting-helpers" = "Tests.Rewriting.Helpers"
diff --git a/Tools/CLI/Coyote.CLI.csproj b/Tools/CLI/Coyote.CLI.csproj
index 38da737bf..afd6e52d8 100644
--- a/Tools/CLI/Coyote.CLI.csproj
+++ b/Tools/CLI/Coyote.CLI.csproj
@@ -20,13 +20,9 @@
-
+
-
-
-
-
-
+
diff --git a/Tools/Coyote/Coyote.csproj b/Tools/Coyote/Coyote.csproj
index 8c43ef371..d513cc189 100644
--- a/Tools/Coyote/Coyote.csproj
+++ b/Tools/Coyote/Coyote.csproj
@@ -22,17 +22,10 @@
all
-
+
-
- all
-
-
-
-
-
-
+
all
diff --git a/docs/assets/images/cloudmessaging.dgml b/docs/assets/images/cloudmessaging.dgml
index 17c25fdbe..249e0aa13 100644
--- a/docs/assets/images/cloudmessaging.dgml
+++ b/docs/assets/images/cloudmessaging.dgml
@@ -413,9 +413,9 @@
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/docs/concepts/binary-rewriting.md b/docs/concepts/binary-rewriting.md
index 4db863576..31a82f46b 100644
--- a/docs/concepts/binary-rewriting.md
+++ b/docs/concepts/binary-rewriting.md
@@ -33,8 +33,8 @@ file, which looks like this example:
```json
{
- "AssembliesPath": "bin/net7.0",
- "OutputPath": "bin/net7.0/rewritten",
+ "AssembliesPath": "bin/net8.0",
+ "OutputPath": "bin/net8.0/rewritten",
"Assemblies": [
"BoundedBuffer.dll",
"MyOtherLibrary.dll",
diff --git a/docs/get-started/build-source.md b/docs/get-started/build-source.md
index 921ab8644..feb7493ae 100644
--- a/docs/get-started/build-source.md
+++ b/docs/get-started/build-source.md
@@ -8,7 +8,7 @@ the github repo
### Prerequisites
-- [.NET 7.0 SDK](https://dotnet.microsoft.com/download/dotnet)
+- [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet)
**Optional:**
diff --git a/docs/get-started/install.md b/docs/get-started/install.md
index eb189ccfe..676482c0b 100644
--- a/docs/get-started/install.md
+++ b/docs/get-started/install.md
@@ -10,6 +10,7 @@ frameworks supported by Coyote:
| Target Framework | Operating System |
| :-------------------: | :-------------------: |
+| .NET 8.0 | Linux, macOS, Windows |
| .NET 7.0 | Linux, macOS, Windows |
| .NET 6.0 | Linux, macOS, Windows |
| .NET Core 3.1 | Linux, macOS, Windows |
diff --git a/docs/get-started/using-coyote.md b/docs/get-started/using-coyote.md
index b2731704d..30c8abde1 100644
--- a/docs/get-started/using-coyote.md
+++ b/docs/get-started/using-coyote.md
@@ -216,7 +216,7 @@ explore Coyote further!
**Format of the executable (.exe) or library (.dll) is invalid.**
If you are using a .NET Core target platform then on Windows you will get executable program with
-`.exe` file extension, like `coyote\Samples\bin\net7.0\BoundedBuffer.exe` These are not
+`.exe` file extension, like `coyote\Samples\bin\net8.0\BoundedBuffer.exe` These are not
rewritable assemblies. You must instead rewrite and test the associated library, in this case
`BoundedBuffer.dll`.
diff --git a/docs/how-to/coverage.md b/docs/how-to/coverage.md
index 1d2a69fc9..9634b7a70 100644
--- a/docs/how-to/coverage.md
+++ b/docs/how-to/coverage.md
@@ -89,14 +89,14 @@ Then run `coyote` with one of the coverage flags, as well as the other options y
some minimal examples:
```plain
-coyote test ./bin/net7.0/Monitors.exe -i 10 --coverage
+coyote test ./bin/net8.0/Monitors.exe -i 10 --coverage
```
-This will create the directory `./bin/net7.0/Output/Monitors.exe/CoyoteOutput/`, then it
+This will create the directory `./bin/net8.0/Output/Monitors.exe/CoyoteOutput/`, then it
generates coverage files for code coverage which you can load into Visual Studio to see the results.
```plain
-coyote test ./bin/net7.0/Monitors.exe -i 10 -coverage activity -o "/Coyote_Coverage/Monitors"
+coyote test ./bin/net8.0/Monitors.exe -i 10 -coverage activity -o "/Coyote_Coverage/Monitors"
```
This will create the directory `/Coyote_Coverage/Monitors/CoyoteOutput`, then it generates only
diff --git a/docs/how-to/liveness-checking.md b/docs/how-to/liveness-checking.md
index fa7e91b32..a2c3b7473 100644
--- a/docs/how-to/liveness-checking.md
+++ b/docs/how-to/liveness-checking.md
@@ -29,7 +29,7 @@ the [coyote tool](../get-started/using-coyote.md) as follows, setting N steps as
From the [samples](https://github.com/microsoft/coyote/tree/main/Samples) directory:
```plain
-coyote test ./Samples/bin/net7.0/CoffeeMachineActors.dll -i 10 -ms 200 -s portfolio
+coyote test ./Samples/bin/net8.0/CoffeeMachineActors.dll -i 10 -ms 200 -s portfolio
```
The `coyote test` tool will produce output, ending with something like the following:
@@ -52,7 +52,7 @@ averaging 457 steps. Going by this output, let's decide to increase the bound to
`coyote test`.
```plain
-coyote test ./Samples/bin/net7.0/CoffeeMachineActors.dll -i 10 -ms 1000 -s portfolio
+coyote test ./Samples/bin/net8.0/CoffeeMachineActors.dll -i 10 -ms 1000 -s portfolio
```
This time the output will be something like:
diff --git a/docs/how-to/unit-testing.md b/docs/how-to/unit-testing.md
index b3691fc07..ca21ee32d 100644
--- a/docs/how-to/unit-testing.md
+++ b/docs/how-to/unit-testing.md
@@ -16,7 +16,7 @@ a complete example using xUnit. The project simply includes xUnit and the Coyote
```xml
- net7.0
+ net8.0
diff --git a/docs/samples/actors/failover-robot-navigator.md b/docs/samples/actors/failover-robot-navigator.md
index 1a16d6ea3..5aaacfe59 100644
--- a/docs/samples/actors/failover-robot-navigator.md
+++ b/docs/samples/actors/failover-robot-navigator.md
@@ -110,7 +110,7 @@ before coding and pushing to production.
To run the `DrinksServingRobotActors` example, you will need to:
- Install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/).
-- Install the [.NET 7.0 version of the coyote tool](../../get-started/install.md).
+- Install the [.NET 8.0 version of the coyote tool](../../get-started/install.md).
- Be familiar with the `coyote` tool. See [using Coyote](../../get-started/using-coyote.md).
- Clone the [Coyote git repo](http://github.com/microsoft/coyote).
@@ -124,7 +124,7 @@ You can build the sample by following the instructions
Now you can run the `DrinksServingRobotActors` application:
```plain
-./Samples/bin/net7.0/DrinksServingRobotActors.exe
+./Samples/bin/net8.0/DrinksServingRobotActors.exe
```
When you run the executable like this without using `coyote test` (this is called running in
@@ -238,13 +238,13 @@ You can now use `coyote test` to test the code and see if any bugs can be found.
`CoyoteSamples` folder enter this command:
```plain
-coyote test ./Samples/bin/net7.0/DrinksServingRobotActors.dll -i 1000 -ms 2000 -s prioritization -sv 10
+coyote test ./Samples/bin/net8.0/DrinksServingRobotActors.dll -i 1000 -ms 2000 -s prioritization -sv 10
```
Chances are this will find a bug quickly, and you will see output from the test like this:
```plain
-. Testing .\Samples\bin\net7.0\DrinksServingRobotActors.exe
+. Testing .\Samples\bin\net8.0\DrinksServingRobotActors.exe
Starting TestingProcessScheduler in process 26236
... Created '1' testing task.
... Task 0 is using 'prioritization' strategy (seed:324932188).
@@ -275,7 +275,7 @@ Starting TestingProcessScheduler in process 26236
```
Notice that a log file is produced
-`.bin\net7.0\Output\DrinksServingRobot.exe\CoyoteOutput\DrinksServingRobot_0_1.txt`. This log can be
+`.bin\net8.0\Output\DrinksServingRobot.exe\CoyoteOutput\DrinksServingRobot_0_1.txt`. This log can be
pretty big, it contains the test iteration that failed, and towards the end of this file you will
see something like this:
@@ -471,7 +471,7 @@ liveness bug in hot state 'Busy' at the end of program execution.
If you add to the coyote test command line `--actor-graph`, and test again:
```plain
-coyote test .\Samples\bin\net7.0\DrinksServingRobotActors.dll -i 1000 -ms 2000 -s prioritization -sv 10 --actor-graph
+coyote test .\Samples\bin\net8.0\DrinksServingRobotActors.dll -i 1000 -ms 2000 -s prioritization -sv 10 --actor-graph
```
you'll see in the output of the tester that a DGML diagram has been produced:
@@ -640,7 +640,7 @@ After you perform this fix and rebuild the sample, try running coyote test again
command line which previously reported the liveness bug:
```plain
-coyote test ./Samples/bin/net7.0/DrinksServingRobotActors.dll -i 1000 -ms 2000 -s prioritization -sv 10
+coyote test ./Samples/bin/net8.0/DrinksServingRobotActors.dll -i 1000 -ms 2000 -s prioritization -sv 10
```
And now no bug will be found -- you should get result similar to this:
diff --git a/docs/samples/actors/failure-detector.md b/docs/samples/actors/failure-detector.md
index 1b5bd80ba..666851845 100644
--- a/docs/samples/actors/failure-detector.md
+++ b/docs/samples/actors/failure-detector.md
@@ -11,7 +11,7 @@ late at night scratching your head. Read further to learn how to find this bug u
You will also need to:
- Install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/).
-- Install the [.NET 7.0 version of the coyote tool](../../get-started/install.md).
+- Install the [.NET 8.0 version of the coyote tool](../../get-started/install.md).
- Be familiar with the `coyote` tool. See [using Coyote](../../get-started/using-coyote.md).
- Clone the [Coyote git repo](http://github.com/microsoft/coyote).
@@ -26,7 +26,7 @@ Let's see if Coyote can find the bug in this sample. Type `coyote -?` to see the
sure you have installed it correctly. Now you are ready to run a `coyote` test as follows:
```plain
-coyote test ./Samples/bin/net7.0/Monitors.dll --iterations 1000 -ms 200
+coyote test ./Samples/bin/net8.0/Monitors.dll --iterations 1000 -ms 200
```
This also runs perfectly up to 1000 iterations. So this is indeed a hard bug to find. It can be
@@ -35,7 +35,7 @@ points `--strategy prioritization` (or with the default `random` exploration str
much larger number of iterations, typically more than 100,000 of them).
```plain
-coyote test ./Samples/bin/net7.0/Monitors.dll --iterations 1000 -ms 200 -s prioritization -sv 10
+coyote test ./Samples/bin/net8.0/Monitors.dll --iterations 1000 -ms 200 -s prioritization -sv 10
```
Even then you might need to run it a few times to catch the bug. Set `--iterations` to a bigger
@@ -48,8 +48,8 @@ strategy, you will see a bug report:
```plain
... Task 0 found a bug.
... Emitting task 0 traces:
-..... Writing .\Samples\bin\net7.0\Output\Monitors.exe\CoyoteOutput\Monitors_0_0.txt
-..... Writing .\Samples\bin\net7.0\Output\Monitors.exe\CoyoteOutput\Monitors_0_0.trace
+..... Writing .\Samples\bin\net8.0\Output\Monitors.exe\CoyoteOutput\Monitors_0_0.txt
+..... Writing .\Samples\bin\net8.0\Output\Monitors.exe\CoyoteOutput\Monitors_0_0.trace
```
The `*.txt` file is the text log of the iteration that found the bug. The `*.trace` contains the
@@ -59,10 +59,10 @@ Finding a hard to find bug is one thing, but if you can't reproduce this bug whi
is no point. So the `*.trace` can be used with the `coyote replay` command as follows:
```plain
-coyote replay ./Samples/bin/net7.0/Monitors.dll
- .\Samples\bin\net7.0\Output\Monitors.exe\CoyoteOutput\Monitors_0_0.trace
+coyote replay ./Samples/bin/net8.0/Monitors.dll
+ .\Samples\bin\net8.0\Output\Monitors.exe\CoyoteOutput\Monitors_0_0.trace
-. Reproducing trace in ./Samples/bin/net7.0/Monitors.exe
+. Reproducing trace in ./Samples/bin/net8.0/Monitors.exe
... Reproduced 1 bug.
... Elapsed 0.1724228 sec.
```
@@ -74,14 +74,14 @@ tool can help you with that also. If you run the following command line it will
diagram of the state machines that are being tested:
```plain
-coyote test ./Samples/bin/net7.0/Monitors.dll --iterations 10 --max-steps 20 --actor-graph
+coyote test ./Samples/bin/net8.0/Monitors.dll --iterations 10 --max-steps 20 --actor-graph
```
You will see the following output:
```plain
... Emitting graph:
-..... Writing .\Samples\bin\net7.0\Output\Monitors.exe\CoyoteOutput\Monitors_0_1.dgml
+..... Writing .\Samples\bin\net8.0\Output\Monitors.exe\CoyoteOutput\Monitors_0_1.dgml
```
Open the DGML diagram using Visual Studio 2022 and you will see the following:
diff --git a/docs/samples/tasks/bounded-buffer.md b/docs/samples/tasks/bounded-buffer.md
index 102878ef1..0905315b8 100644
--- a/docs/samples/tasks/bounded-buffer.md
+++ b/docs/samples/tasks/bounded-buffer.md
@@ -10,7 +10,7 @@ article](https://cloudblogs.microsoft.com/opensource/2020/07/14/extreme-programm
To run the `BoundedBuffer` example, you will need to:
- Install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/).
-- Install the [.NET 7.0 version of the coyote tool](../../get-started/install.md).
+- Install the [.NET 8.0 version of the coyote tool](../../get-started/install.md).
- Be familiar with the `coyote` tool. See [using Coyote](../../get-started/using-coyote.md).
- Clone the [Coyote git repo](http://github.com/microsoft/coyote).
@@ -25,13 +25,13 @@ Now you can run the `BoundedBuffer` application in a mode that should trigger th
the time:
```plain
-./Samples/bin/net7.0/BoundedBuffer.exe -m
+./Samples/bin/net8.0/BoundedBuffer.exe -m
```
And you can run it with a fix for the deadlock as follows:
```plain
-./Samples/bin/net7.0/BoundedBuffer.exe -f
+./Samples/bin/net8.0/BoundedBuffer.exe -f
```
### Can you find the deadlock bug in BoundedBuffer class?
diff --git a/docs/tutorials/actors/hello-world.md b/docs/tutorials/actors/hello-world.md
index 3c35733f5..5f024dc4b 100644
--- a/docs/tutorials/actors/hello-world.md
+++ b/docs/tutorials/actors/hello-world.md
@@ -10,7 +10,7 @@ model](../../concepts/actors/overview.md).
To run the Hello World Actors example, you will need to:
- Install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/).
-- Install the [.NET 7.0 version of the coyote tool](../../get-started/install.md).
+- Install the [.NET 8.0 version of the coyote tool](../../get-started/install.md).
- Be familiar with the `coyote` tool. See [using Coyote](../../get-started/using-coyote.md).
- Clone the [Coyote git repo](http://github.com/microsoft/coyote).
@@ -24,7 +24,7 @@ You can build the sample by following the instructions
Now you can run the HelloWorldActors application:
```plain
-"./Samples/bin/net7.0/HelloWorldActors.exe"
+"./Samples/bin/net8.0/HelloWorldActors.exe"
```
Press the ENTER key to terminate the program when it is done. Note that a bug has been inserted into
@@ -59,13 +59,13 @@ find the `coyote` test tool and setup your environment to use it.
Enter the following from the command line:
```plain
-coyote test ./Samples/bin/net7.0/HelloWorldActors.dll --iterations 30
+coyote test ./Samples/bin/net8.0/HelloWorldActors.dll --iterations 30
```
The result is:
```plain
-. Testing .\Samples\bin\net7.0\HelloWorldActors.dll
+. Testing .\Samples\bin\net8.0\HelloWorldActors.dll
Starting TestingProcessScheduler in process 16432
... Created '1' testing task.
... Task 0 is using 'random' strategy (seed:308255541).
@@ -73,8 +73,8 @@ Starting TestingProcessScheduler in process 16432
..... Iteration #2
... Task 0 found a bug.
... Emitting task 0 traces:
-..... Writing .\Samples\bin\net7.0\Output\HelloWorldActors.exe\CoyoteOutput\HelloWorldActors_0_2.txt
-..... Writing .\Samples\bin\net7.0\Output\HelloWorldActors.exe\CoyoteOutput\HelloWorldActors_0_2.trace
+..... Writing .\Samples\bin\net8.0\Output\HelloWorldActors.exe\CoyoteOutput\HelloWorldActors_0_2.txt
+..... Writing .\Samples\bin\net8.0\Output\HelloWorldActors.exe\CoyoteOutput\HelloWorldActors_0_2.trace
... Elapsed 0.0906639 sec.
... Testing statistics:
..... Found 1 bug.
@@ -240,7 +240,7 @@ tool has ways of interrupting and restarting this `Execute` method based on `--i
So now you know what happened when you ran the following command line:
```plain
-coyote test ./Samples/bin/net7.0/HelloWorldActors.exe --iterations 30
+coyote test ./Samples/bin/net8.0/HelloWorldActors.exe --iterations 30
```
A special coyote `TestingEngine` was created, it invoked the `Execute` method 30 times, and during
diff --git a/docs/tutorials/actors/raft-azure.md b/docs/tutorials/actors/raft-azure.md
index b8a59414f..a20a09a83 100644
--- a/docs/tutorials/actors/raft-azure.md
+++ b/docs/tutorials/actors/raft-azure.md
@@ -31,7 +31,7 @@ is called the `Azure CLI`.
You will also need to:
- Install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/).
-- Install the [.NET 7.0 version of the coyote tool](../../get-started/install.md).
+- Install the [.NET 8.0 version of the coyote tool](../../get-started/install.md).
- Be familiar with the `coyote` tool. See [using Coyote](../../get-started/using-coyote.md).
- Clone the [Coyote git repo](http://github.com/microsoft/coyote).
@@ -64,7 +64,7 @@ You can build the sample by following the instructions
Now you can run the Raft.Azure application:
```plain
-"./Samples/bin/net7.0/Raft.Azure.exe" --connection-string "%CONNECTION_STRING%" --topic-name rafttopic --num-requests 5 --local-cluster-size 5
+"./Samples/bin/net8.0/Raft.Azure.exe" --connection-string "%CONNECTION_STRING%" --topic-name rafttopic --num-requests 5 --local-cluster-size 5
```
Note: you don't want to try and run Raft.Azure client using the `coyote test` tool until you
diff --git a/docs/tutorials/actors/raft-mocking.md b/docs/tutorials/actors/raft-mocking.md
index b8eaef301..e854df5c7 100644
--- a/docs/tutorials/actors/raft-mocking.md
+++ b/docs/tutorials/actors/raft-mocking.md
@@ -19,7 +19,7 @@ you achieve a high level of confidence that the code is rock solid.
You will also need to:
- Install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/).
-- Install the [.NET 7.0 version of the coyote tool](../../get-started/install.md).
+- Install the [.NET 8.0 version of the coyote tool](../../get-started/install.md).
- Be familiar with the `coyote` tool. See [using Coyote](../../get-started/using-coyote.md).
- Clone the [Coyote git repo](http://github.com/microsoft/coyote).
@@ -33,12 +33,12 @@ You can build the sample by following the instructions
Now you can run `coyote test` tool on the Raft.Mocking application:
```plain
-coyote test ./Samples/bin/net7.0/Raft.Mocking.dll -i 1000 -ms 200 --coverage activity
+coyote test ./Samples/bin/net8.0/Raft.Mocking.dll -i 1000 -ms 200 --coverage activity
```
You should see the test succeed with output like this, including a coverage report and graph:
```plain
-. Testing ./Samples/bin/net7.0/Raft.Mocking.dll
+. Testing ./Samples/bin/net8.0/Raft.Mocking.dll
Starting TestingProcessScheduler in process 34068
... Created '1' testing task.
... Task 0 is using 'random' strategy (seed:1388735316).
@@ -49,9 +49,9 @@ Starting TestingProcessScheduler in process 34068
..... Iteration #900
..... Iteration #1000
... Emitting coverage reports:
-..... Writing .\Samples\bin\net7.0\Output\Raft.Mocking.dll\CoyoteOutput\Raft.Mocking.dgml
-..... Writing .\Samples\bin\net7.0\Output\Raft.Mocking.dll\CoyoteOutput\Raft.Mocking.coverage.txt
-..... Writing .\Samples\bin\net7.0\Output\Raft.Mocking.dll\CoyoteOutput\Raft.Mocking.coverage.ser
+..... Writing .\Samples\bin\net8.0\Output\Raft.Mocking.dll\CoyoteOutput\Raft.Mocking.dgml
+..... Writing .\Samples\bin\net8.0\Output\Raft.Mocking.dll\CoyoteOutput\Raft.Mocking.coverage.txt
+..... Writing .\Samples\bin\net8.0\Output\Raft.Mocking.dll\CoyoteOutput\Raft.Mocking.coverage.ser
... Testing statistics:
..... Found 0 bugs.
... Exploration statistics:
@@ -127,7 +127,7 @@ async operations. The last option is interesting because it allows you to test m
scheduling strategies at once:
```plain
-coyote test ./Samples/bin/net7.0/Raft.Mocking.dll -i 1000 -ms 200 --coverage activity -s portfolio
+coyote test ./Samples/bin/net8.0/Raft.Mocking.dll -i 1000 -ms 200 --coverage activity -s portfolio
```
When you use this the test will print the chosen strategies at the top of the test output:
diff --git a/docs/tutorials/actors/test-failover.md b/docs/tutorials/actors/test-failover.md
index a7da6c643..fb22c0744 100644
--- a/docs/tutorials/actors/test-failover.md
+++ b/docs/tutorials/actors/test-failover.md
@@ -64,7 +64,7 @@ it happens after failover just to prove the usefulness of this testing methodolo
To run the `CoffeeMachine` example, you will need to:
- Install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/).
-- Install the [.NET 7.0 version of the coyote tool](../../get-started/install.md).
+- Install the [.NET 8.0 version of the coyote tool](../../get-started/install.md).
- Be familiar with the `coyote` tool. See [using Coyote](../../get-started/using-coyote.md).
- Clone the [Coyote git repo](http://github.com/microsoft/coyote).
@@ -78,7 +78,7 @@ You can build the sample by following the instructions
Now you can run the `CoffeeMachine` application:
```plain
-./Samples/bin/net7.0/CoffeeMachineActors.exe
+./Samples/bin/net8.0/CoffeeMachineActors.exe
```
## The coffee machine
@@ -189,15 +189,15 @@ You can now use [coyote test](../../get-started/using-coyote.md) to exercise the
can be found. From the [samples](https://github.com/microsoft/coyote/tree/main/Samples) directory:
```plain
-coyote test ./Samples/bin/net7.0/CoffeeMachineActors.dll -i 100 -ms 2000 -s prioritization -sv 10 --actor-graph
+coyote test ./Samples/bin/net8.0/CoffeeMachineActors.dll -i 100 -ms 2000 -s prioritization -sv 10 --actor-graph
```
Chances are this will find a bug quickly, one of the safety assertions will fire and you will see
that a test output log and a DGML diagram are produced, like this:
```plain
-.\Samples\bin\net7.0\Output\CoffeeMachineActors.exe\CoyoteOutput\CoffeeMachine_0_0.txt
-.\Samples\bin\net7.0\Output\CoffeeMachineActors.exe\CoyoteOutput\CoffeeMachine_0_0.dgml
+.\Samples\bin\net8.0\Output\CoffeeMachineActors.exe\CoyoteOutput\CoffeeMachine_0_0.txt
+.\Samples\bin\net8.0\Output\CoffeeMachineActors.exe\CoyoteOutput\CoffeeMachine_0_0.dgml
```
This log can be pretty big, a couple thousand lines where each line represents one async operation.
diff --git a/docs/tutorials/first-concurrency-unit-test.md b/docs/tutorials/first-concurrency-unit-test.md
index dc90882aa..5dfedf9d5 100644
--- a/docs/tutorials/first-concurrency-unit-test.md
+++ b/docs/tutorials/first-concurrency-unit-test.md
@@ -17,7 +17,7 @@ you in writing correct concurrent code.
To run the code in this tutorial, you will need to:
- Install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/).
-- Install the [.NET 7.0 version of the coyote tool](../get-started/install.md).
+- Install the [.NET 8.0 version of the coyote tool](../get-started/install.md).
- Be familiar with the `coyote` tool. See [using Coyote](../get-started/using-coyote.md).
- Clone the [Coyote git repo](http://github.com/microsoft/coyote).
@@ -410,7 +410,7 @@ You can build the sample by following the instructions
You can now run the tests (without Coyote) like this:
```plain
-cd .\Samples\bin\net7.0
+cd .\Samples\bin\net8.0
.\AccountManager.exe
```
diff --git a/docs/tutorials/mocks/mock-dependencies.md b/docs/tutorials/mocks/mock-dependencies.md
index 0d7122a94..3cd98f4cc 100644
--- a/docs/tutorials/mocks/mock-dependencies.md
+++ b/docs/tutorials/mocks/mock-dependencies.md
@@ -24,7 +24,7 @@ means that using locks in your code will not help you in writing correct concurr
To run the code in this tutorial, you will need to:
- Install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/).
-- Install the [.NET 7.0 version of the coyote tool](../../get-started/install.md).
+- Install the [.NET 8.0 version of the coyote tool](../../get-started/install.md).
- Be familiar with the `coyote` tool. See [using Coyote](../../get-started/using-coyote.md).
- Clone the [Coyote git repo](http://github.com/microsoft/coyote).
- Go through the [write your first concurrency unit test](../first-concurrency-unit-test.md) tutorial.
diff --git a/docs/tutorials/mocks/optimistic-concurrency-control.md b/docs/tutorials/mocks/optimistic-concurrency-control.md
index 714530d11..44287b059 100644
--- a/docs/tutorials/mocks/optimistic-concurrency-control.md
+++ b/docs/tutorials/mocks/optimistic-concurrency-control.md
@@ -27,7 +27,7 @@ trivial.
To run the code in this tutorial, you will need to:
- Install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/).
-- Install the [.NET 7.0 version of the coyote tool](../../get-started/install.md).
+- Install the [.NET 8.0 version of the coyote tool](../../get-started/install.md).
- Be familiar with the `coyote` tool. See [using Coyote](../../get-started/using-coyote.md).
- Clone the [Coyote git repo](http://github.com/microsoft/coyote).
- Go through the [mocking dependencies for testing](mock-dependencies.md) tutorial.
diff --git a/docs/tutorials/test-concurrent-operations.md b/docs/tutorials/test-concurrent-operations.md
index 511a23bd5..fd10f43f8 100644
--- a/docs/tutorials/test-concurrent-operations.md
+++ b/docs/tutorials/test-concurrent-operations.md
@@ -14,7 +14,7 @@ In this follow-up tutorial, you will write a few more tests that exercise the co
To run the code in this tutorial, you will need to:
- Install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/).
-- Install the [.NET 7.0 version of the coyote tool](../get-started/install.md).
+- Install the [.NET 8.0 version of the coyote tool](../get-started/install.md).
- Be familiar with the `coyote` tool. See [using Coyote](../get-started/using-coyote.md).
- Clone the [Coyote git repo](http://github.com/microsoft/coyote).
- Go through the [write your first concurrency unit test](first-concurrency-unit-test.md) tutorial.
diff --git a/docs/tutorials/test-failover.md b/docs/tutorials/test-failover.md
index 49c849cc5..30c7bd7cb 100644
--- a/docs/tutorials/test-failover.md
+++ b/docs/tutorials/test-failover.md
@@ -60,7 +60,7 @@ it happens after failover just to prove the usefulness of this testing methodolo
To run the `CoffeeMachine` example, you will need to:
- Install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/).
-- Install the [.NET 7.0 version of the coyote tool](../get-started/install.md).
+- Install the [.NET 8.0 version of the coyote tool](../get-started/install.md).
- Be familiar with the `coyote` tool. See [using Coyote](../get-started/using-coyote.md).
- Clone the [Coyote git repo](http://github.com/microsoft/coyote).
@@ -74,7 +74,7 @@ You can build the sample by following the instructions
Now you can run the `CoffeeMachine` application:
```plain
-./Samples/bin/net7.0/CoffeeMachineTasks.exe
+./Samples/bin/net8.0/CoffeeMachineTasks.exe
```
## The Coffee Machine
@@ -182,20 +182,20 @@ You can now use [coyote test](../get-started/using-coyote.md) to exercise the co
bugs can be found. First you need to rewrite the assembly, from the `Samples` directory:
```plain
-coyote rewrite ./Samples/bin/net7.0/CoffeeMachineTasks.dll
+coyote rewrite ./Samples/bin/net8.0/CoffeeMachineTasks.dll
```
Then you can run the test:
```plain
-coyote test ./Samples/bin/net7.0/CoffeeMachineTasks.dll -i 1000 -ms 500 -s fair-prioritization -sv 10
+coyote test ./Samples/bin/net8.0/CoffeeMachineTasks.dll -i 1000 -ms 500 -s fair-prioritization -sv 10
```
Chances are this will find a bug quickly, one of the safety assertions will fire and you will see
that a test output log is produced, like this:
```plain
-.\Samples\bin\net7.0\Output\CoffeeMachineTasks.exe\CoyoteOutput\CoffeeMachine_0_0.txt
+.\Samples\bin\net8.0\Output\CoffeeMachineTasks.exe\CoyoteOutput\CoffeeMachine_0_0.txt
```
This log contains only the one test iteration that failed, and towards the end you will see
diff --git a/docs/tutorials/testing-aspnet-service.md b/docs/tutorials/testing-aspnet-service.md
index a1610a3b4..6d376e82c 100644
--- a/docs/tutorials/testing-aspnet-service.md
+++ b/docs/tutorials/testing-aspnet-service.md
@@ -12,7 +12,7 @@ Coyote and you can run the web front end using the Azure storage emulators.
You will also need to:
- Install [Visual Studio 2022](https://visualstudio.microsoft.com/downloads/).
-- Install the [.NET 7.0 version of the coyote tool](../get-started/install.md).
+- Install the [.NET 8.0 version of the coyote tool](../get-started/install.md).
- Be familiar with the `coyote` tool. See [using Coyote](../get-started/using-coyote.md).
- Clone the [Coyote git repo](http://github.com/microsoft/coyote).
@@ -155,7 +155,7 @@ Just run them from inside Visual Studio, or run the following:
```
cd Samples/WebApps/ImageGalleryAspNet/
-dotnet test bin/net7.0/ImageGalleryTests.dll
+dotnet test bin/net8.0/ImageGalleryTests.dll
```
The tests may or may not trigger the bug! Most likely you will see this output:
diff --git a/global.json b/global.json
index 06ce1b485..5ce849551 100644
--- a/global.json
+++ b/global.json
@@ -1,5 +1,5 @@
{
"sdk": {
- "version": "7.0.400"
+ "version": "8.0.100"
}
}