diff --git a/.ci/build-steps.yml b/.ci/build-steps.yml index b3d6d0895..95e8d67a6 100644 --- a/.ci/build-steps.yml +++ b/.ci/build-steps.yml @@ -27,52 +27,52 @@ steps: displayName: 'Publish MySqlConnector.Tests' inputs: command: 'publish' - arguments: '-c Release -f net9.0 --no-build tests/MySqlConnector.Tests/MySqlConnector.Tests.csproj' + arguments: '-c Release -f net10.0 --no-build tests/MySqlConnector.Tests/MySqlConnector.Tests.csproj' publishWebProjects: false zipAfterPublish: false - task: PublishPipelineArtifact@1 inputs: - artifact: 'MySqlConnector.Tests-9.0-$(Agent.OS)' - targetPath: 'artifacts/publish/MySqlConnector.Tests/release_net9.0' + artifact: 'MySqlConnector.Tests-10.0-$(Agent.OS)' + targetPath: 'artifacts/publish/MySqlConnector.Tests/release_net10.0' publishLocation: 'pipeline' - task: DotNetCoreCLI@2 displayName: 'Publish Conformance.Tests' inputs: command: 'publish' - arguments: '-c Release -f net9.0 --no-build tests/Conformance.Tests/Conformance.Tests.csproj' + arguments: '-c Release -f net10.0 --no-build tests/Conformance.Tests/Conformance.Tests.csproj' publishWebProjects: false zipAfterPublish: false - task: PublishPipelineArtifact@1 inputs: - artifact: 'Conformance.Tests-9.0-$(Agent.OS)' - targetPath: 'artifacts/publish/Conformance.Tests/release_net9.0' + artifact: 'Conformance.Tests-10.0-$(Agent.OS)' + targetPath: 'artifacts/publish/Conformance.Tests/release_net10.0' publishLocation: 'pipeline' - task: DotNetCoreCLI@2 displayName: 'Publish MySqlConnector.DependencyInjection.Tests' inputs: command: 'publish' - arguments: '-c Release -f net9.0 --no-build tests/MySqlConnector.DependencyInjection.Tests/MySqlConnector.DependencyInjection.Tests.csproj' + arguments: '-c Release -f net10.0 --no-build tests/MySqlConnector.DependencyInjection.Tests/MySqlConnector.DependencyInjection.Tests.csproj' publishWebProjects: false zipAfterPublish: false - task: PublishPipelineArtifact@1 inputs: - artifact: 'MySqlConnector.DependencyInjection.Tests-9.0-$(Agent.OS)' - targetPath: 'artifacts/publish/MySqlConnector.DependencyInjection.Tests/release_net9.0' + artifact: 'MySqlConnector.DependencyInjection.Tests-10.0-$(Agent.OS)' + targetPath: 'artifacts/publish/MySqlConnector.DependencyInjection.Tests/release_net10.0' publishLocation: 'pipeline' - task: DotNetCoreCLI@2 - displayName: 'Publish IntegrationTests (9.0)' + displayName: 'Publish IntegrationTests (10.0)' inputs: command: 'publish' - arguments: '-c Release -f net9.0 --no-build tests/IntegrationTests/IntegrationTests.csproj' + arguments: '-c Release -f net10.0 --no-build tests/IntegrationTests/IntegrationTests.csproj' publishWebProjects: false zipAfterPublish: false - task: PublishPipelineArtifact@1 inputs: - artifact: 'IntegrationTests-net9.0-$(Agent.OS)' - targetPath: 'artifacts/publish/IntegrationTests/release_net9.0' + artifact: 'IntegrationTests-net10.0-$(Agent.OS)' + targetPath: 'artifacts/publish/IntegrationTests/release_net10.0' publishLocation: 'pipeline' - task: DotNetCoreCLI@2 diff --git a/.ci/conformance-test-steps.yml b/.ci/conformance-test-steps.yml index 87cdf035e..fd6d13992 100644 --- a/.ci/conformance-test-steps.yml +++ b/.ci/conformance-test-steps.yml @@ -11,7 +11,7 @@ steps: condition: always() inputs: buildType: 'current' - artifactName: 'Conformance.Tests-9.0-$(Agent.OS)' + artifactName: 'Conformance.Tests-10.0-$(Agent.OS)' targetPath: '$(Build.BinariesDirectory)/9.0' - task: DotNetCoreCLI@2 displayName: 'Conformance Tests' diff --git a/.ci/integration-tests-steps.yml b/.ci/integration-tests-steps.yml index db26b23ed..9b6dd8a0f 100644 --- a/.ci/integration-tests-steps.yml +++ b/.ci/integration-tests-steps.yml @@ -45,12 +45,12 @@ steps: image: ${{ parameters.image }} unsupportedFeatures: ${{ parameters.unsupportedFeatures }} connectionString: 'server=localhost;port=3300;user id=mysqltest;password=test;database=mysqltest;ssl mode=none;DefaultCommandTimeout=3600;${{ parameters.connectionStringExtra }}' - platform: 'net9.0' + platform: 'net10.0' description: 'No SSL' - template: 'integration-test-steps.yml' parameters: image: ${{ parameters.image }} unsupportedFeatures: ${{ parameters.unsupportedFeatures }} connectionString: server=localhost;port=3300;user id=mysqltest;password=test;database=mysqltest;ssl mode=required;DefaultCommandTimeout=3600;certificate file=$(Build.Repository.LocalPath)/.ci/server/certs/ssl-client.pfx;${{ parameters.connectionStringExtra }} - platform: 'net9.0' + platform: 'net10.0' description: 'SSL' diff --git a/.ci/mysqlconnector-tests-steps.yml b/.ci/mysqlconnector-tests-steps.yml index 0ddc01fc9..b4d422ccc 100644 --- a/.ci/mysqlconnector-tests-steps.yml +++ b/.ci/mysqlconnector-tests-steps.yml @@ -7,7 +7,7 @@ steps: - task: DownloadPipelineArtifact@2 inputs: buildType: 'current' - artifactName: 'MySqlConnector.Tests-9.0-$(Agent.OS)' + artifactName: 'MySqlConnector.Tests-10.0-$(Agent.OS)' targetPath: $(System.DefaultWorkingDirectory) - task: DotNetCoreCLI@2 displayName: 'Run MySqlConnector.Tests' @@ -18,7 +18,7 @@ steps: - task: DownloadPipelineArtifact@2 inputs: buildType: 'current' - artifactName: 'MySqlConnector.DependencyInjection.Tests-9.0-$(Agent.OS)' + artifactName: 'MySqlConnector.DependencyInjection.Tests-10.0-$(Agent.OS)' targetPath: $(System.DefaultWorkingDirectory) - task: DotNetCoreCLI@2 displayName: 'Run MySqlConnector.DependencyInjection.Tests' @@ -30,4 +30,4 @@ steps: inputs: testResultsFormat: VSTest testResultsFiles: '**/*.trx' - testRunTitle: 'MySqlConnector.Tests-9.0-$(Agent.OS)' + testRunTitle: 'MySqlConnector.Tests-10.0-$(Agent.OS)' diff --git a/.ci/test.ps1 b/.ci/test.ps1 index 7d595e35e..40c3615f8 100644 --- a/.ci/test.ps1 +++ b/.ci/test.ps1 @@ -38,7 +38,7 @@ dotnet test -c Release -f net462 if ($LASTEXITCODE -ne 0){ exit $LASTEXITCODE; } -dotnet test -c Release -f net9.0 +dotnet test -c Release -f net10.0 if ($LASTEXITCODE -ne 0){ exit $LASTEXITCODE; } diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 68dda7743..cf1b606bb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - tfm: [ 'net8.0', 'net9.0' ] + tfm: [ 'net8.0', 'net10.0' ] services: mysql: image: mysql:9.3 diff --git a/appveyor.yml b/appveyor.yml index ef905dcaa..e8dae43f0 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -9,7 +9,7 @@ install: - ps: Invoke-WebRequest -Uri "https://dot.net/v1/dotnet-install.ps1" -OutFile "install-dotnet.ps1" - ps: .\install-dotnet.ps1 -Channel 6.0 -InstallDir "dotnetcli" - ps: .\install-dotnet.ps1 -Channel 8.0 -InstallDir "dotnetcli" - - ps: .\install-dotnet.ps1 -Channel 9.0 -InstallDir "dotnetcli" + - ps: .\install-dotnet.ps1 -Channel 10.0 -InstallDir "dotnetcli" build_script: - dotnet --info before_test: diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 2d692f5d9..be48d78e4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,5 +1,5 @@ variables: - DotNetCoreSdkVersion: '9.x' + DotNetCoreSdkVersion: '10.x' NUGET_PACKAGES: '$(Pipeline.Workspace)/.nuget/packages' jobs: @@ -107,18 +107,18 @@ jobs: displayName: 'Remove target frameworks' inputs: targetType: 'inline' - script: '((Get-Content .\tests\IntegrationTests\IntegrationTests.csproj -Raw) -replace(''.*'', ''net481;net9.0'')) | Set-Content .\tests\IntegrationTests\IntegrationTests.csproj' + script: '((Get-Content .\tests\IntegrationTests\IntegrationTests.csproj -Raw) -replace(''.*'', ''net481;net10.0'')) | Set-Content .\tests\IntegrationTests\IntegrationTests.csproj' - task: DotNetCoreCLI@2 displayName: 'Restore packages' inputs: command: 'restore' - task: DotNetCoreCLI@2 - displayName: 'Integration tests (net481/net9.0)' + displayName: 'Integration tests (net481/net10.0)' inputs: command: 'test' projects: 'tests/IntegrationTests/IntegrationTests.csproj' arguments: '-c Release --no-restore -p:TestTfmsInParallel=false' - testRunTitle: ${{ format('{0}, $(Agent.OS), {1}, {2}', 'mysql:8.0', 'net481/net9.0', 'No SSL') }} + testRunTitle: ${{ format('{0}, $(Agent.OS), {1}, {2}', 'mysql:8.0', 'net481/net10.0', 'No SSL') }} env: DATA__UNSUPPORTEDFEATURES: 'Ed25519,QueryAttributes,Redirection,StreamingResults,Tls11,TlsFingerprintValidation,UnixDomainSocket' DATA__CONNECTIONSTRING: 'server=localhost;port=3306;user id=mysqltest;password=test;database=mysqltest;ssl mode=none;DefaultCommandTimeout=3600;AllowPublicKeyRetrieval=True;UseCompression=True' diff --git a/global.json b/global.json index a02bac5a2..eb5dc781d 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "9.0.200", + "version": "10.0.100-preview.4", "rollForward": "latestFeature" } } diff --git a/src/MySqlConnector/Logging/Log.cs b/src/MySqlConnector/Logging/Log.cs index e9b4f88bc..b5cbbed1b 100644 --- a/src/MySqlConnector/Logging/Log.cs +++ b/src/MySqlConnector/Logging/Log.cs @@ -166,10 +166,10 @@ internal static partial class Log #if NETCOREAPP3_0_OR_GREATER [LoggerMessage(EventIds.ConnectedTlsBasic, LogLevel.Debug, "Session {SessionId} connected TLS using {SslProtocol} and {NegotiatedCipherSuite}")] public static partial void ConnectedTlsBasic(ILogger logger, string sessionId, SslProtocols sslProtocol, TlsCipherSuite negotiatedCipherSuite); -#endif - +#else [LoggerMessage(EventIds.ConnectedTlsDetailed, LogLevel.Debug, "Session {SessionId} connected TLS using {SslProtocol}, {CipherAlgorithm}, {HashAlgorithm}, {KeyExchangeAlgorithm}, {KeyExchangeStrength}")] public static partial void ConnectedTlsDetailed(ILogger logger, string sessionId, SslProtocols sslProtocol, CipherAlgorithmType cipherAlgorithm, HashAlgorithmType hashAlgorithm, ExchangeAlgorithmType keyExchangeAlgorithm, int keyExchangeStrength); +#endif [LoggerMessage(EventIds.CouldNotInitializeTlsConnection, LogLevel.Error, "Session {SessionId} couldn't initialize TLS connection")] public static partial void CouldNotInitializeTlsConnection(ILogger logger, Exception exception, string sessionId); @@ -204,10 +204,10 @@ internal static partial class Log #if NETCOREAPP3_0_OR_GREATER [LoggerMessage(EventIds.ConnectedTlsBasicPreliminary, LogLevel.Debug, "Session {SessionId} provisionally connected TLS with error {SslPolicyErrors} using {SslProtocol} and {NegotiatedCipherSuite}")] public static partial void ConnectedTlsBasicPreliminary(ILogger logger, string sessionId, SslPolicyErrors sslPolicyErrors, SslProtocols sslProtocol, TlsCipherSuite negotiatedCipherSuite); -#endif - +#else [LoggerMessage(EventIds.ConnectedTlsDetailedPreliminary, LogLevel.Debug, "Session {SessionId} provisionally connected TLS with error {SslPolicyErrors} using {SslProtocol}, {CipherAlgorithm}, {HashAlgorithm}, {KeyExchangeAlgorithm}, {KeyExchangeStrength}")] public static partial void ConnectedTlsDetailedPreliminary(ILogger logger, string sessionId, SslPolicyErrors sslPolicyErrors, SslProtocols sslProtocol, CipherAlgorithmType cipherAlgorithm, HashAlgorithmType hashAlgorithm, ExchangeAlgorithmType keyExchangeAlgorithm, int keyExchangeStrength); +#endif [LoggerMessage(EventIds.CertificateErrorUnixSocket, LogLevel.Trace, "Session {SessionId} ignoring remote certificate error {SslPolicyErrors} due to Unix socket connection")] public static partial void CertificateErrorUnixSocket(ILogger logger, string sessionId, SslPolicyErrors sslPolicyErrors); diff --git a/src/MySqlConnector/MySqlConnector.csproj b/src/MySqlConnector/MySqlConnector.csproj index 023a6e28e..0baa1a010 100644 --- a/src/MySqlConnector/MySqlConnector.csproj +++ b/src/MySqlConnector/MySqlConnector.csproj @@ -1,7 +1,7 @@ - net462;net471;net48;netstandard2.0;netstandard2.1;net6.0;net8.0;net9.0 + net462;net471;net48;netstandard2.0;netstandard2.1;net6.0;net8.0;net9.0;net10.0 A truly async MySQL ADO.NET provider, supporting MySQL Server, MariaDB, Amazon Aurora, Azure Database for MySQL, Google Cloud SQL, and more. Copyright 2016–2024 Bradley Grainger Bradley Grainger diff --git a/tests/Conformance.Tests/Conformance.Tests.csproj b/tests/Conformance.Tests/Conformance.Tests.csproj index e2a4ca928..289f2b5f1 100644 --- a/tests/Conformance.Tests/Conformance.Tests.csproj +++ b/tests/Conformance.Tests/Conformance.Tests.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 0.1.0 true true diff --git a/tests/IntegrationTests/IntegrationTests.csproj b/tests/IntegrationTests/IntegrationTests.csproj index bb388f662..7127ab248 100644 --- a/tests/IntegrationTests/IntegrationTests.csproj +++ b/tests/IntegrationTests/IntegrationTests.csproj @@ -1,12 +1,12 @@ - net462;net481;net6.0;net8.0;net9.0 + net462;net481;net6.0;net8.0;net10.0 false - net9.0 + net10.0 MYSQL_DATA $(NoWarn);MSB3246 @@ -41,7 +41,6 @@ - diff --git a/tests/MySqlConnector.DependencyInjection.Tests/MySqlConnector.DependencyInjection.Tests.csproj b/tests/MySqlConnector.DependencyInjection.Tests/MySqlConnector.DependencyInjection.Tests.csproj index ebeeef845..c14cde477 100644 --- a/tests/MySqlConnector.DependencyInjection.Tests/MySqlConnector.DependencyInjection.Tests.csproj +++ b/tests/MySqlConnector.DependencyInjection.Tests/MySqlConnector.DependencyInjection.Tests.csproj @@ -1,7 +1,7 @@ - net9.0 + net10.0 true true ..\..\MySqlConnector.snk diff --git a/tests/MySqlConnector.NativeAot.Tests/MySqlConnector.NativeAot.Tests.csproj b/tests/MySqlConnector.NativeAot.Tests/MySqlConnector.NativeAot.Tests.csproj index 3797dedb8..f9d651b2b 100644 --- a/tests/MySqlConnector.NativeAot.Tests/MySqlConnector.NativeAot.Tests.csproj +++ b/tests/MySqlConnector.NativeAot.Tests/MySqlConnector.NativeAot.Tests.csproj @@ -2,7 +2,7 @@ Exe - net8.0;net9.0 + net8.0;net10.0 enable enable true diff --git a/tests/MySqlConnector.Tests/MySqlConnector.Tests.csproj b/tests/MySqlConnector.Tests/MySqlConnector.Tests.csproj index b375b14ae..770710f29 100644 --- a/tests/MySqlConnector.Tests/MySqlConnector.Tests.csproj +++ b/tests/MySqlConnector.Tests/MySqlConnector.Tests.csproj @@ -1,7 +1,7 @@ - net481;net9.0 + net481;net10.0 diff --git a/tools/SchemaCollectionGenerator/SchemaCollectionGenerator.csproj b/tools/SchemaCollectionGenerator/SchemaCollectionGenerator.csproj index 85c1ed799..cfbfc836c 100644 --- a/tools/SchemaCollectionGenerator/SchemaCollectionGenerator.csproj +++ b/tools/SchemaCollectionGenerator/SchemaCollectionGenerator.csproj @@ -2,7 +2,7 @@ Exe - net9.0 + net10.0 enable enable true