diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 28b79c5f..e2eae7c2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,9 +18,9 @@ jobs: strategy: matrix: include: - - os: windows-2022 + - os: windows-latest name: Windows - - os: ubuntu-22.04 + - os: ubuntu-latest name: Linux fail-fast: false steps: @@ -51,7 +51,7 @@ jobs: shell: bash - name: Fix Azure Functions Core Tools permissions - Linux if: runner.os == 'Linux' - run: sudo chmod +x /usr/lib/azure-functions-core-tools/in-proc6/func + run: sudo chmod +x /usr/lib/azure-functions-core-tools/in-proc8/func - name: Build run: dotnet build src --configuration Release - name: Upload packages diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 65aa2fdf..6b4981b8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -11,7 +11,7 @@ defaults: shell: pwsh jobs: release: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4.1.6 diff --git a/.gitignore b/.gitignore index 190ac12b..5bf25cca 100644 --- a/.gitignore +++ b/.gitignore @@ -67,6 +67,7 @@ build/ bld/ [Bb]in/ [Oo]bj/ +*.binlog # Roslyn cache directories *.ide/ diff --git a/src/.editorconfig b/src/.editorconfig index 6a059494..a751d64a 100644 --- a/src/.editorconfig +++ b/src/.editorconfig @@ -41,14 +41,17 @@ dotnet_style_qualification_for_field = false:error dotnet_style_qualification_for_method = false:error dotnet_style_qualification_for_property = false:error +# Namespace/folder matching +dotnet_style_namespace_match_folder = false + # Language keywords vs BCL types preferences dotnet_diagnostic.IDE0049.severity = error dotnet_style_predefined_type_for_locals_parameters_members = true:error dotnet_style_predefined_type_for_member_access = true:error # Modifier preferences -dotnet_diagnostic.IDE0040.severity = error -dotnet_style_require_accessibility_modifiers = omit_if_default:error +dotnet_diagnostic.IDE0040.severity = warning +dotnet_style_require_accessibility_modifiers = omit_if_default:warning # TODO: Change to error dotnet_diagnostic.IDE0044.severity = suggestion @@ -63,8 +66,8 @@ dotnet_style_parentheses_in_other_operators = never_if_unnecessary:error dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:error # Expression-level preferences -dotnet_diagnostic.IDE0017.severity = error -dotnet_style_object_initializer = true:error +dotnet_diagnostic.IDE0017.severity = warning +dotnet_style_object_initializer = true:warning dotnet_diagnostic.IDE0028.severity = error dotnet_style_collection_initializer = true:error @@ -223,22 +226,22 @@ file_header_template = unset dotnet_diagnostic.IDE0001.severity = error dotnet_diagnostic.IDE0002.severity = error dotnet_diagnostic.IDE0004.severity = error -dotnet_diagnostic.IDE0005.severity = error +dotnet_diagnostic.IDE0005.severity = warning dotnet_diagnostic.IDE0035.severity = error -dotnet_diagnostic.IDE0051.severity = error -dotnet_diagnostic.IDE0052.severity = error +dotnet_diagnostic.IDE0051.severity = warning +dotnet_diagnostic.IDE0052.severity = warning # TODO: Change to error dotnet_diagnostic.IDE0058.severity = suggestion csharp_style_unused_value_expression_statement_preference = discard_variable -dotnet_diagnostic.IDE0059.severity = error +dotnet_diagnostic.IDE0059.severity = warning csharp_style_unused_value_assignment_preference = discard_variable -dotnet_diagnostic.IDE0060.severity = error +dotnet_diagnostic.IDE0060.severity = warning dotnet_code_quality_unused_parameters = non_public -dotnet_diagnostic.IDE0079.severity = error +dotnet_diagnostic.IDE0079.severity = error # Diagnostic does not fail build dotnet_remove_unnecessary_suppression_exclusions = none dotnet_diagnostic.IDE0080.severity = error @@ -249,7 +252,7 @@ dotnet_diagnostic.IDE0110.severity = error #### Formatting Rules #### -dotnet_diagnostic.IDE0055.severity = error +dotnet_diagnostic.IDE0055.severity = warning # New line preferences csharp_new_line_before_catch = true @@ -322,6 +325,14 @@ dotnet_naming_rule.fields.style = camel_case dotnet_naming_rule.fields.symbols = fields dotnet_naming_rule.fields.severity = none +dotnet_naming_rule.local_constants.severity = none +dotnet_naming_rule.local_constants.symbols = local_constants +dotnet_naming_rule.local_constants.style = camel_case + +dotnet_naming_rule.local_variables.severity = suggestion +dotnet_naming_rule.local_variables.symbols = local_variables +dotnet_naming_rule.local_variables.style = camel_case + # Symbol specifications dotnet_naming_symbols.interface.applicable_kinds = interface dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected @@ -339,6 +350,12 @@ dotnet_naming_symbols.fields.applicable_kinds = field dotnet_naming_symbols.fields.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected dotnet_naming_symbols.fields.required_modifiers = +dotnet_naming_symbols.local_constants.applicable_kinds = local +dotnet_naming_symbols.local_constants.required_modifiers = const + +dotnet_naming_symbols.local_variables.applicable_kinds = local +dotnet_naming_symbols.local_variables.required_modifiers = + # Naming styles dotnet_naming_style.pascal_case.required_prefix = dotnet_naming_style.pascal_case.required_suffix = diff --git a/src/IntegrationTests.HostV4/IntegrationTests.HostV4.csproj b/src/IntegrationTests.HostV4/IntegrationTests.HostV4.csproj index 71a9094a..519e9cad 100644 --- a/src/IntegrationTests.HostV4/IntegrationTests.HostV4.csproj +++ b/src/IntegrationTests.HostV4/IntegrationTests.HostV4.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 v4 true $(BaseIntermediateOutputPath)\GeneratedFiles diff --git a/src/IntegrationTests.HostV4/Startup.cs b/src/IntegrationTests.HostV4/Startup.cs index e4397b49..04e914f6 100644 --- a/src/IntegrationTests.HostV4/Startup.cs +++ b/src/IntegrationTests.HostV4/Startup.cs @@ -8,6 +8,10 @@ public class Startup : FunctionsStartup { public override void Configure(IFunctionsHostBuilder builder) { - builder.UseNServiceBus(c => c.AdvancedConfiguration.EnableInstallers()); + builder.UseNServiceBus(c => + { + c.AdvancedConfiguration.EnableInstallers(); + c.AdvancedConfiguration.AssemblyScanner().ExcludeAssemblies("System.ClientModel.dll"); + }); } } \ No newline at end of file diff --git a/src/IntegrationTests.HostV4/local.settings.json b/src/IntegrationTests.HostV4/local.settings.json index 71e6cd3e..6dc60d3c 100644 --- a/src/IntegrationTests.HostV4/local.settings.json +++ b/src/IntegrationTests.HostV4/local.settings.json @@ -5,6 +5,8 @@ "FUNCTIONS_WORKER_RUNTIME": "dotnet", "AzureWebJobsServiceBus": "", - "CustomComponentValue": "Custom Component" + "CustomComponentValue": "Custom Component", + + "FUNCTIONS_INPROC_NET8_ENABLED": 1 } -} \ No newline at end of file +} diff --git a/src/NServiceBus.AzureFunctions.Analyzer.Tests/NServiceBus.AzureFunctions.Analyzer.Tests.csproj b/src/NServiceBus.AzureFunctions.Analyzer.Tests/NServiceBus.AzureFunctions.Analyzer.Tests.csproj index 83b11c6a..c36d232a 100644 --- a/src/NServiceBus.AzureFunctions.Analyzer.Tests/NServiceBus.AzureFunctions.Analyzer.Tests.csproj +++ b/src/NServiceBus.AzureFunctions.Analyzer.Tests/NServiceBus.AzureFunctions.Analyzer.Tests.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 diff --git a/src/NServiceBus.AzureFunctions.SourceGenerator.Tests/NServiceBus.AzureFunctions.SourceGenerator.Tests.csproj b/src/NServiceBus.AzureFunctions.SourceGenerator.Tests/NServiceBus.AzureFunctions.SourceGenerator.Tests.csproj index 2f70cd2f..2c144240 100644 --- a/src/NServiceBus.AzureFunctions.SourceGenerator.Tests/NServiceBus.AzureFunctions.SourceGenerator.Tests.csproj +++ b/src/NServiceBus.AzureFunctions.SourceGenerator.Tests/NServiceBus.AzureFunctions.SourceGenerator.Tests.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 true ..\NServiceBusTests.snk diff --git a/src/NServiceBus.AzureFunctions.SourceGenerator.Tests/SourceGeneratorApprovals.cs b/src/NServiceBus.AzureFunctions.SourceGenerator.Tests/SourceGeneratorApprovals.cs index b667875f..ed95c1dc 100644 --- a/src/NServiceBus.AzureFunctions.SourceGenerator.Tests/SourceGeneratorApprovals.cs +++ b/src/NServiceBus.AzureFunctions.SourceGenerator.Tests/SourceGeneratorApprovals.cs @@ -229,7 +229,11 @@ static CSharpCompilation Compile(IEnumerable syntaxTrees, IEnumerabl // Verify the code compiled: var compilationErrors = compilation .GetDiagnostics() - .Where(d => d.Severity >= DiagnosticSeverity.Warning); + .Where(d => d.Severity >= DiagnosticSeverity.Warning) + // Ignoring warning CS1701: Assuming Microsoft.Extensions.Logging.Abstractions v6 and v8 are the same thing + // because component targets net6 while tests are now net8. SDK suppresses this for you but hits here due + // to direct compiler invocation. See https://github.com/dotnet/roslyn/issues/19640 + .Where(d => d.Id != "CS1701"); // Assert.IsEmpty(compilationErrors, compilationErrors.FirstOrDefault()?.GetMessage()); return compilation; diff --git a/src/ServiceBus.AcceptanceTests/FunctionEndpointComponent.cs b/src/ServiceBus.AcceptanceTests/FunctionEndpointComponent.cs index adbe3c16..2b9f2b85 100644 --- a/src/ServiceBus.AcceptanceTests/FunctionEndpointComponent.cs +++ b/src/ServiceBus.AcceptanceTests/FunctionEndpointComponent.cs @@ -47,7 +47,7 @@ public Task CreateRunner(RunDescriptor runDescriptor) => sendsAtomicWithReceive, ServiceBusMessageActionsFactory)); - protected IList Messages { get; } = new List(); + protected IList Messages { get; } = []; protected bool DoNotFailOnErrorMessages { get; init; } diff --git a/src/ServiceBus.AcceptanceTests/ServiceBus.AcceptanceTests.csproj b/src/ServiceBus.AcceptanceTests/ServiceBus.AcceptanceTests.csproj index 10d5b350..ee50408c 100644 --- a/src/ServiceBus.AcceptanceTests/ServiceBus.AcceptanceTests.csproj +++ b/src/ServiceBus.AcceptanceTests/ServiceBus.AcceptanceTests.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 true ..\NServiceBusTests.snk diff --git a/src/ServiceBus.Tests/ServiceBus.Tests.csproj b/src/ServiceBus.Tests/ServiceBus.Tests.csproj index c8645caa..e670f559 100644 --- a/src/ServiceBus.Tests/ServiceBus.Tests.csproj +++ b/src/ServiceBus.Tests/ServiceBus.Tests.csproj @@ -1,7 +1,7 @@  - net6.0 + net8.0 true ..\NServiceBusTests.snk diff --git a/src/Testing.Handlers/Testing.Handlers.csproj b/src/Testing.Handlers/Testing.Handlers.csproj index 8e209c3d..89473b06 100644 --- a/src/Testing.Handlers/Testing.Handlers.csproj +++ b/src/Testing.Handlers/Testing.Handlers.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0