diff --git a/.build/.build.csproj b/.build/.build.csproj index 2a8c0a78..67d554b7 100644 --- a/.build/.build.csproj +++ b/.build/.build.csproj @@ -1,17 +1,14 @@  - Exe - net5.0 - false - + net6.0 + False CS0649;CS0169 - @@ -22,5 +19,4 @@ - - + \ No newline at end of file diff --git a/.build/Build.CI.cs b/.build/Build.CI.cs index 35834fe4..d4d3664b 100644 --- a/.build/Build.CI.cs +++ b/.build/Build.CI.cs @@ -6,8 +6,11 @@ using Rocket.Surgery.Nuke.DotNetCore; using Rocket.Surgery.Nuke.GithubActions; - -[GitHubActionsSteps("ci", GitHubActionsImage.MacOsLatest, GitHubActionsImage.WindowsLatest, GitHubActionsImage.UbuntuLatest, +[GitHubActionsSteps( + "ci", + GitHubActionsImage.MacOsLatest, + GitHubActionsImage.WindowsLatest, + GitHubActionsImage.UbuntuLatest, AutoGenerate = false, On = new[] { GitHubActionsTrigger.Push }, OnPushTags = new[] { "v*" }, @@ -27,7 +30,9 @@ ExcludedTargets = new[] { nameof(ICanClean.Clean), nameof(ICanRestoreWithDotNetCore.DotnetToolRestore) }, Enhancements = new[] { nameof(Middleware) } )] -[PrintBuildVersion, PrintCIEnvironment, UploadLogs] +[PrintBuildVersion] +[PrintCIEnvironment] +[UploadLogs] public partial class Solution { public static RocketSurgeonGitHubActionsConfiguration Middleware(RocketSurgeonGitHubActionsConfiguration configuration) @@ -36,76 +41,80 @@ public static RocketSurgeonGitHubActionsConfiguration Middleware(RocketSurgeonGi var checkoutStep = buildJob.Steps.OfType().Single(); // For fetch all checkoutStep.FetchDepth = 0; - buildJob.Steps.InsertRange(buildJob.Steps.IndexOf(checkoutStep) + 1, new BaseGitHubActionsStep[] { - new RunStep("Fetch all history for all tags and branches") { - Run = "git fetch --prune" - }, - new SetupDotNetStep("Use .NET Core 2.1 SDK") { - DotNetVersion = "2.1.x" - }, - new SetupDotNetStep("Use .NET Core 3.1 SDK") { - DotNetVersion = "3.1.x" - }, - new SetupDotNetStep("Use .NET Core 5.0 SDK") { - DotNetVersion = "5.0.x" - }, - }); - - buildJob.Steps.Add(new UsingStep("Publish Coverage") - { - Uses = "codecov/codecov-action@v1", - With = new Dictionary + buildJob.Steps.InsertRange( + buildJob.Steps.IndexOf(checkoutStep) + 1, + new BaseGitHubActionsStep[] { - ["name"] = "actions-${{ matrix.os }}", + new RunStep("Fetch all history for all tags and branches") + { + Run = "git fetch --prune" + }, + new SetupDotNetStep("Use .NET Core 2.1 SDK") + { + DotNetVersion = "2.1.x" + }, + new SetupDotNetStep("Use .NET Core 3.1 SDK") + { + DotNetVersion = "3.1.x" + }, + new SetupDotNetStep("Use .NET Core 5.0 SDK") + { + DotNetVersion = "5.0.x" + }, + new SetupDotNetStep("Use .NET Core 6.0 SDK") + { + DotNetVersion = "6.0.x" + }, } - }); - - buildJob.Steps.Add(new UploadArtifactStep("Publish logs") - { - Name = "logs", - Path = "artifacts/logs/", - If = "always()" - }); - - buildJob.Steps.Add(new UploadArtifactStep("Publish coverage data") - { - Name = "coverage", - Path = "coverage/", - If = "always()" - }); + ); - buildJob.Steps.Add(new UploadArtifactStep("Publish test data") - { - Name = "test data", - Path = "artifacts/test/", - If = "always()" - }); - - buildJob.Steps.Add(new UploadArtifactStep("Publish NuGet Packages") - { - Name = "nuget", - Path = "artifacts/nuget/", - If = "always()" - }); + buildJob.Steps.Add( + new UsingStep("Publish Coverage") + { + Uses = "codecov/codecov-action@v1", + With = new Dictionary + { + ["name"] = "actions-${{ matrix.os }}", + } + } + ); + buildJob.Steps.Add( + new UploadArtifactStep("Publish logs") + { + Name = "logs", + Path = "artifacts/logs/", + If = "always()" + } + ); - /* + buildJob.Steps.Add( + new UploadArtifactStep("Publish coverage data") + { + Name = "coverage", + Path = "coverage/", + If = "always()" + } + ); - - publish: "${{ parameters.Artifacts }}/logs/" - displayName: Publish Logs - artifact: "Logs${{ parameters.Postfix }}" - condition: always() + buildJob.Steps.Add( + new UploadArtifactStep("Publish test data") + { + Name = "test data", + Path = "artifacts/test/", + If = "always()" + } + ); - - publish: ${{ parameters.Coverage }} - displayName: Publish Coverage - artifact: "Coverage${{ parameters.Postfix }}" - condition: always() + buildJob.Steps.Add( + new UploadArtifactStep("Publish NuGet Packages") + { + Name = "nuget", + Path = "artifacts/nuget/", + If = "always()" + } + ); - - publish: "${{ parameters.Artifacts }}/nuget/" - displayName: Publish NuGet Artifacts - artifact: "NuGet${{ parameters.Postfix }}" - condition: always() - */ return configuration; } -} +} \ No newline at end of file diff --git a/.build/Build.cs b/.build/Build.cs index 05b75cee..110e1446 100644 --- a/.build/Build.cs +++ b/.build/Build.cs @@ -1,8 +1,6 @@ -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; using JetBrains.Annotations; using Nuke.Common; +using Nuke.Common.CI; using Nuke.Common.Execution; using Nuke.Common.Git; using Nuke.Common.Tools.DotNet; @@ -16,23 +14,24 @@ [UnsetVisualStudioEnvironmentVariables] [PackageIcon("https://raw.githubusercontent.com/RocketSurgeonsGuild/graphics/master/png/social-square-thrust-rounded.png")] [EnsureGitHooks(GitHook.PreCommit)] -[EnsureReadmeIsUpdated] +[EnsureReadmeIsUpdated("Readme.md")] [DotNetVerbosityMapping] [MSBuildVerbosityMapping] [NuGetVerbosityMapping] +[ShutdownDotNetAfterServerBuild] public partial class Solution : NukeBuild, - ICanRestoreWithDotNetCore, - ICanBuildWithDotNetCore, - ICanTestWithDotNetCore, - ICanPackWithDotNetCore, - IHaveDataCollector, - ICanClean, - ICanUpdateReadme, - IGenerateCodeCoverageReport, - IGenerateCodeCoverageSummary, - IGenerateCodeCoverageBadges, - IHaveConfiguration, - ICanLint + ICanRestoreWithDotNetCore, + ICanBuildWithDotNetCore, + ICanTestWithDotNetCore, + ICanPackWithDotNetCore, + IHaveDataCollector, + ICanClean, + ICanUpdateReadme, + IGenerateCodeCoverageReport, + IGenerateCodeCoverageSummary, + IGenerateCodeCoverageBadges, + IHaveConfiguration, + ICanLint { /// /// Support plugins are available for: @@ -61,6 +60,7 @@ public partial class Solution : NukeBuild, public GitVersion GitVersion { get; } = null!; public Target Clean => _ => _.Inherit(x => x.Clean); + public Target Lint => _ => _.Inherit(x => x.Lint); public Target Restore => _ => _.Inherit(x => x.CoreRestore); public Target Test => _ => _.Inherit(x => x.CoreTest); @@ -70,4 +70,4 @@ public partial class Solution : NukeBuild, [Parameter("Configuration to build")] public Configuration Configuration { get; } = IsLocalBuild ? Configuration.Debug : Configuration.Release; -} +} \ No newline at end of file diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 9a4d9637..681b78b2 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -1,36 +1,34 @@ { - "version": 1, - "isRoot": true, - "tools": { - "dotnet-outdated": { - "version": "2.11.0", - "commands": [ - "dotnet-outdated" - ] - }, - "gitversion.tool": { - "version": "5.6.9", - "commands": [ - "dotnet-gitversion" - ] - }, - "dotnet-reportgenerator-globaltool": { - "version": "4.8.8", - "commands": [ - "reportgenerator" - ] - }, - "nuke.globaltool": { - "version": "5.1.1", - "commands": [ - "nuke" - ] - }, - "codecov.tool": { - "version": "1.13.0", - "commands": [ - "codecov" - ] + "version": 1, + "isRoot": true, + "tools": { + "dotnet-outdated": { + "version": "2.11.0", + "commands": ["dotnet-outdated"] + }, + "gitversion.tool": { + "version": "5.6.8", + "commands": ["dotnet-gitversion"] + }, + "dotnet-reportgenerator-globaltool": { + "version": "4.8.7", + "commands": ["reportgenerator"] + }, + "nuke.globaltool": { + "version": "5.2.1", + "commands": ["nuke"] + }, + "codecov.tool": { + "version": "1.13.0", + "commands": ["codecov"] + }, + "jetbrains.resharper.globaltools": { + "version": "2021.3.0-eap02", + "commands": ["jb"] + }, + "dotnet-format": { + "version": "5.1.225507", + "commands": ["dotnet-format"] + } } - } -} \ No newline at end of file +} diff --git a/.editorconfig b/.editorconfig index 864a9f7d..e22c49c8 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,270 +1,265 @@ -root=true - -[*.{cs,cshtml}] -charset=utf-8 -indent_style=space -indent_size=4 -insert_final_newline=true - -[*.{js,ts,vue}] -indent_style=space -indent_size=4 -insert_final_newline=true - -[*.{json,xml,yml,yaml}] -indent_style=space -indent_size=2 -insert_final_newline=true +root = true + +[*.{cs, cshtml}] +charset = utf-8 +indent_style = space +indent_size = 4 +max_line_length = 160 +insert_final_newline = true + +[*.{js, ts, vue}] +indent_style = space +indent_size = 4 +insert_final_newline = true +max_line_length = 160 + +[*.{json, xml, yml, yaml}] +indent_style = space +indent_size = 2 +insert_final_newline = true +max_line_length = 160 [*] -insert_final_newline=false -max_line_length=160 +insert_final_newline = false #### .NET Coding Conventions #### # Organize usings -dotnet_separate_import_directive_groups=false -dotnet_sort_system_directives_first=false +dotnet_separate_import_directive_groups = false +dotnet_sort_system_directives_first = true # this. and Me. preferences -dotnet_style_qualification_for_event=false:warning -dotnet_style_qualification_for_field=false:warning -dotnet_style_qualification_for_method=false:warning -dotnet_style_qualification_for_property=false:warning +dotnet_style_qualification_for_event = false:warning +dotnet_style_qualification_for_field = false:warning +dotnet_style_qualification_for_method = false:warning +dotnet_style_qualification_for_property = false:warning # Language keywords vs BCL types preferences -dotnet_style_predefined_type_for_locals_parameters_members=true:suggestion -dotnet_style_predefined_type_for_member_access=true:suggestion +dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion +dotnet_style_predefined_type_for_member_access = true:suggestion # Parentheses preferences -dotnet_style_parentheses_in_arithmetic_binary_operators=always_for_clarity:warning -dotnet_style_parentheses_in_other_binary_operators=always_for_clarity:warning -dotnet_style_parentheses_in_other_operators=never_if_unnecessary:warning -dotnet_style_parentheses_in_relational_binary_operators=always_for_clarity:warning +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:warning +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:warning +dotnet_style_parentheses_in_other_operators = never_if_unnecessary:warning +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:warning # Modifier preferences -dotnet_style_require_accessibility_modifiers=for_non_interface_members:suggestion +dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion # Expression-level preferences -csharp_style_deconstructed_variable_declaration=true:warning -csharp_style_inlined_variable_declaration=true:warning -csharp_style_throw_expression=true:warning -dotnet_style_coalesce_expression=true:warning -dotnet_style_collection_initializer=true:warning -dotnet_style_explicit_tuple_names=true:warning -dotnet_style_null_propagation=true:warning -dotnet_style_object_initializer=true:warning -dotnet_style_prefer_auto_properties=true:suggestion -dotnet_style_prefer_compound_assignment=true:suggestion -dotnet_style_prefer_conditional_expression_over_assignment=true:suggestion -dotnet_style_prefer_conditional_expression_over_return=true:suggestion -dotnet_style_prefer_inferred_anonymous_type_member_names=true:warning -dotnet_style_prefer_inferred_tuple_names=true:warning -dotnet_style_prefer_is_null_check_over_reference_equality_method=true:warning +csharp_style_deconstructed_variable_declaration = true:warning +csharp_style_inlined_variable_declaration = true:warning +csharp_style_throw_expression = true:warning +dotnet_style_coalesce_expression = true:warning +dotnet_style_collection_initializer = true:warning +dotnet_style_explicit_tuple_names = true:warning +dotnet_style_null_propagation = true:warning +dotnet_style_object_initializer = true:warning +dotnet_style_prefer_auto_properties = true:suggestion +dotnet_style_prefer_compound_assignment = true:suggestion +dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion +dotnet_style_prefer_conditional_expression_over_return = true:suggestion +dotnet_style_prefer_inferred_anonymous_type_member_names = true:warning +dotnet_style_prefer_inferred_tuple_names = true:warning +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:warning # Field preferences -dotnet_style_readonly_field=true:warning +dotnet_style_readonly_field = true:warning # Parameter preferences -dotnet_code_quality_unused_parameters=non_public:suggestion +dotnet_code_quality_unused_parameters = non_public:suggestion #### C# Coding Conventions #### # var preferences -csharp_style_var_elsewhere=true:suggestion -csharp_style_var_for_built_in_types=true:suggestion -csharp_style_var_when_type_is_apparent=true:suggestion +csharp_style_var_elsewhere = true:suggestion +csharp_style_var_for_built_in_types = true:suggestion +csharp_style_var_when_type_is_apparent = true:suggestion # Expression-bodied members -csharp_style_expression_bodied_accessors=true:suggestion -csharp_style_expression_bodied_constructors=true:suggestion -csharp_style_expression_bodied_indexers=true:suggestion -csharp_style_expression_bodied_lambdas=true:suggestion -csharp_style_expression_bodied_local_functions=true:suggestion -csharp_style_expression_bodied_methods=true:suggestion -csharp_style_expression_bodied_operators=true:suggestion -csharp_style_expression_bodied_properties=true:suggestion +csharp_style_expression_bodied_accessors = true:suggestion +csharp_style_expression_bodied_constructors = true:suggestion +csharp_style_expression_bodied_indexers = true:suggestion +csharp_style_expression_bodied_lambdas = true:suggestion +csharp_style_expression_bodied_local_functions = true:suggestion +csharp_style_expression_bodied_methods = true:suggestion +csharp_style_expression_bodied_operators = true:suggestion +csharp_style_expression_bodied_properties = true:suggestion # Pattern matching preferences -csharp_style_pattern_matching_over_as_with_null_check=true:warning -csharp_style_pattern_matching_over_is_with_cast_check=true:warning -csharp_style_prefer_switch_expression=true:warning +csharp_style_pattern_matching_over_as_with_null_check = true:warning +csharp_style_pattern_matching_over_is_with_cast_check = true:warning +csharp_style_prefer_switch_expression = true:warning # Null-checking preferences -csharp_style_conditional_delegate_call=true:warning +csharp_style_conditional_delegate_call = true:warning # Modifier preferences -csharp_prefer_static_local_function=true:warning -csharp_preferred_modifier_order=public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async +csharp_prefer_static_local_function = true:warning +csharp_preferred_modifier_order = public, private, protected, internal, new, abstract, virtual, sealed, static, readonly, override, extern, unsafe, volatile, async:suggestion # Code-block preferences -csharp_prefer_braces=true:none -csharp_prefer_simple_using_statement=true:suggestion +csharp_prefer_braces = true:none +csharp_prefer_simple_using_statement = true:suggestion # Expression-level preferences -csharp_prefer_simple_default_expression=true:warning -csharp_style_pattern_local_over_anonymous_function=true:warning -csharp_style_prefer_index_operator=true:warning -csharp_style_prefer_range_operator=true:warning -csharp_style_unused_value_assignment_preference=discard_variable:suggestion -csharp_style_unused_value_expression_statement_preference=discard_variable:suggestion +csharp_prefer_simple_default_expression = true:warning +csharp_style_pattern_local_over_anonymous_function = true:warning +csharp_style_prefer_index_operator = true:warning +csharp_style_prefer_range_operator = true:warning +csharp_style_unused_value_assignment_preference = discard_variable:suggestion +csharp_style_unused_value_expression_statement_preference = discard_variable:suggestion # 'using' directive preferences -csharp_using_directive_placement=outside_namespace:error #### C# Formatting Rules #### # New line preferences -csharp_new_line_before_catch=true -csharp_new_line_before_else=true -csharp_new_line_before_finally=true -csharp_new_line_before_members_in_anonymous_types=true -csharp_new_line_before_members_in_object_initializers=false -csharp_new_line_before_open_brace=all -csharp_new_line_between_query_expression_clauses=true +csharp_new_line_before_catch = true +csharp_new_line_before_else = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_before_members_in_object_initializers = false +csharp_new_line_before_open_brace = all +csharp_new_line_between_query_expression_clauses = true # Indentation preferences -csharp_indent_block_contents=true -csharp_indent_braces=false -csharp_indent_case_contents=true -csharp_indent_case_contents_when_block=true -csharp_indent_labels=no_change -csharp_indent_switch_labels=true +csharp_indent_block_contents = true +csharp_indent_braces = false +csharp_indent_case_contents = true +csharp_indent_case_contents_when_block = true +csharp_indent_labels = no_change +csharp_indent_switch_labels = true # Space preferences -csharp_space_after_cast=false -csharp_space_after_colon_in_inheritance_clause=true -csharp_space_after_comma=true -csharp_space_after_dot=false -csharp_space_after_keywords_in_control_flow_statements=true -csharp_space_after_semicolon_in_for_statement=true -csharp_space_around_binary_operators=before_and_after -csharp_space_around_declaration_statements=false -csharp_space_before_colon_in_inheritance_clause=true -csharp_space_before_comma=false -csharp_space_before_dot=false -csharp_space_before_open_square_brackets=false -csharp_space_before_semicolon_in_for_statement=false -csharp_space_between_empty_square_brackets=false -csharp_space_between_method_call_empty_parameter_list_parentheses=false -csharp_space_between_method_call_name_and_opening_parenthesis=false -csharp_space_between_method_call_parameter_list_parentheses=false -csharp_space_between_method_declaration_empty_parameter_list_parentheses=false -csharp_space_between_method_declaration_name_and_open_parenthesis=false -csharp_space_between_method_declaration_parameter_list_parentheses=false -csharp_space_between_parentheses=expressions -csharp_space_between_square_brackets=false +csharp_space_after_cast = false +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_after_comma = true +csharp_space_after_dot = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_after_semicolon_in_for_statement = true +csharp_space_around_binary_operators = before_and_after +csharp_space_around_declaration_statements = false +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_before_comma = false +csharp_space_before_dot = false +csharp_space_before_open_square_brackets = false +csharp_space_before_semicolon_in_for_statement = false +csharp_space_between_empty_square_brackets = false +csharp_space_between_method_call_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +csharp_space_between_method_declaration_name_and_open_parenthesis = false +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_parentheses = expressions +csharp_space_between_square_brackets = false # Wrapping preferences -csharp_preserve_single_line_blocks=true -csharp_preserve_single_line_statements=true +csharp_preserve_single_line_blocks = true +csharp_preserve_single_line_statements = true #### Naming styles #### # Naming rules -dotnet_naming_rule.interface_should_be_begins_with_i.severity=suggestion -dotnet_naming_rule.interface_should_be_begins_with_i.symbols=interface -dotnet_naming_rule.interface_should_be_begins_with_i.style=begins_with_i +dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion +dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface +dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i -dotnet_naming_rule.type_parameter_should_be_begins_with_t.severity=suggestion -dotnet_naming_rule.type_parameter_should_be_begins_with_t.symbols=type_parameter -dotnet_naming_rule.type_parameter_should_be_begins_with_t.style=begins_with_t +dotnet_naming_rule.type_parameter_should_be_begins_with_t.severity = suggestion +dotnet_naming_rule.type_parameter_should_be_begins_with_t.symbols = type_parameter +dotnet_naming_rule.type_parameter_should_be_begins_with_t.style = begins_with_t -dotnet_naming_rule.locals_should_be_camel_case.severity=suggestion -dotnet_naming_rule.locals_should_be_camel_case.symbols=local -dotnet_naming_rule.locals_should_be_camel_case.style=camel_case +dotnet_naming_rule.locals_should_be_camel_case.severity = suggestion +dotnet_naming_rule.locals_should_be_camel_case.symbols = local +dotnet_naming_rule.locals_should_be_camel_case.style = camel_case -dotnet_naming_rule.static_field_should_be_pascal_case.severity=suggestion -dotnet_naming_rule.static_field_should_be_pascal_case.symbols=static_field -dotnet_naming_rule.static_field_should_be_pascal_case.style=pascal_case +dotnet_naming_rule.static_field_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.static_field_should_be_pascal_case.symbols = static_field +dotnet_naming_rule.static_field_should_be_pascal_case.style = pascal_case -dotnet_naming_rule.const_field_should_be_pascal_case.severity=suggestion -dotnet_naming_rule.const_field_should_be_pascal_case.symbols=const_field -dotnet_naming_rule.const_field_should_be_pascal_case.style=pascal_case +dotnet_naming_rule.const_field_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.const_field_should_be_pascal_case.symbols = const_field +dotnet_naming_rule.const_field_should_be_pascal_case.style = pascal_case -dotnet_naming_rule.private_field_members_should_be_underscore_camel_case.severity=suggestion -dotnet_naming_rule.private_field_members_should_be_underscore_camel_case.symbols=private_field -dotnet_naming_rule.private_field_members_should_be_underscore_camel_case.style=_camel_case +dotnet_naming_rule.private_field_members_should_be_underscore_camel_case.severity = suggestion +dotnet_naming_rule.private_field_members_should_be_underscore_camel_case.symbols = private_field +dotnet_naming_rule.private_field_members_should_be_underscore_camel_case.style = _camel_case -dotnet_naming_rule.field_should_be_camel_case.severity=suggestion -dotnet_naming_rule.field_should_be_camel_case.symbols=field -dotnet_naming_rule.field_should_be_camel_case.style=camel_case +dotnet_naming_rule.field_should_be_camel_case.severity = suggestion +dotnet_naming_rule.field_should_be_camel_case.symbols = field +dotnet_naming_rule.field_should_be_camel_case.style = camel_case -dotnet_naming_rule.types_should_be_pascal_case.severity=suggestion -dotnet_naming_rule.types_should_be_pascal_case.symbols=types -dotnet_naming_rule.types_should_be_pascal_case.style=pascal_case +dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.types_should_be_pascal_case.symbols = types +dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case -dotnet_naming_rule.non_field_members_should_be_pascal_case.severity=suggestion -dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols=non_field_members -dotnet_naming_rule.non_field_members_should_be_pascal_case.style=pascal_case +dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members +dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case # Symbol specifications -dotnet_naming_symbols.interface.applicable_kinds=interface -dotnet_naming_symbols.interface.applicable_accessibilities=* -dotnet_naming_symbols.interface.required_modifiers=* - -dotnet_naming_symbols.local.applicable_kinds=local, local_function -dotnet_naming_symbols.local.applicable_accessibilities=* -dotnet_naming_symbols.local.required_modifiers= - -dotnet_naming_symbols.type_parameter.applicable_kinds=type_parameter -dotnet_naming_symbols.type_parameter.applicable_accessibilities=* -dotnet_naming_symbols.type_parameter.required_modifiers= - -dotnet_naming_symbols.types.applicable_kinds=class, struct, interface, enum, delegate -dotnet_naming_symbols.types.applicable_accessibilities=* -dotnet_naming_symbols.types.required_modifiers= - -dotnet_naming_symbols.non_field_members.applicable_kinds=property, event, method -dotnet_naming_symbols.non_field_members.applicable_accessibilities=* -dotnet_naming_symbols.non_field_members.required_modifiers= - -dotnet_naming_symbols.private_field.applicable_kinds=field -dotnet_naming_symbols.private_field.applicable_accessibilities=private, private_protected -dotnet_naming_symbols.private_field.required_modifiers= - -dotnet_naming_symbols.field.applicable_kinds=field -dotnet_naming_symbols.field.applicable_accessibilities=public, internal, friend, protected, protected_internal, protected_friend -dotnet_naming_symbols.field.required_modifiers= - -dotnet_naming_symbols.static_field.applicable_kinds=field -dotnet_naming_symbols.static_field.applicable_accessibilities=* -dotnet_naming_symbols.static_field.required_modifiers=static - -dotnet_naming_symbols.const_field.applicable_kinds=field -dotnet_naming_symbols.const_field.applicable_accessibilities=* -dotnet_naming_symbols.const_field.required_modifiers=const +dotnet_naming_symbols.interface.applicable_kinds = interface +dotnet_naming_symbols.interface.applicable_accessibilities = * +dotnet_naming_symbols.interface.required_modifiers = * + +dotnet_naming_symbols.local.applicable_kinds = local, local_function +dotnet_naming_symbols.local.applicable_accessibilities = * +dotnet_naming_symbols.local.required_modifiers = dotnet_naming_symbols +.type_parameter.applicable_kinds = type_parameter +dotnet_naming_symbols.type_parameter.applicable_accessibilities = * +dotnet_naming_symbols.type_parameter.required_modifiers = dotnet_naming_symbols +.types.applicable_kinds = class, struct, interface, enum, delegate +dotnet_naming_symbols.types.applicable_accessibilities = * +dotnet_naming_symbols.types.required_modifiers = dotnet_naming_symbols +.non_field_members.applicable_kinds = property, event, method +dotnet_naming_symbols.non_field_members.applicable_accessibilities = * +dotnet_naming_symbols.non_field_members.required_modifiers = dotnet_naming_symbols +.private_field.applicable_kinds = field +dotnet_naming_symbols.private_field.applicable_accessibilities = private, private_protected +dotnet_naming_symbols.private_field.required_modifiers = dotnet_naming_symbols +.field.applicable_kinds = field +dotnet_naming_symbols.field.applicable_accessibilities = public, internal, friend, protected, protected_internal, protected_friend +dotnet_naming_symbols.field.required_modifiers = dotnet_naming_symbols +.static_field.applicable_kinds = field +dotnet_naming_symbols.static_field.applicable_accessibilities = * +dotnet_naming_symbols.static_field.required_modifiers = static + +dotnet_naming_symbols.const_field.applicable_kinds = field +dotnet_naming_symbols.const_field.applicable_accessibilities = * +dotnet_naming_symbols.const_field.required_modifiers = const # Naming styles -dotnet_naming_style.pascal_case.required_prefix= -dotnet_naming_style.pascal_case.required_suffix= -dotnet_naming_style.pascal_case.word_separator= -dotnet_naming_style.pascal_case.capitalization=pascal_case +dotnet_naming_style.pascal_case.required_prefix = dotnet_naming_style +.pascal_case.required_suffix = dotnet_naming_style +.pascal_case.word_separator = dotnet_naming_style +.pascal_case.capitalization = pascal_case -dotnet_naming_style.camel_case.required_prefix= -dotnet_naming_style.camel_case.required_suffix= -dotnet_naming_style.camel_case.word_separator= -dotnet_naming_style.camel_case.capitalization=camel_case +dotnet_naming_style.camel_case.required_prefix = dotnet_naming_style +.camel_case.required_suffix = dotnet_naming_style +.camel_case.word_separator = dotnet_naming_style +.camel_case.capitalization = camel_case -dotnet_naming_style._camel_case.required_prefix=_ -dotnet_naming_style._camel_case.required_suffix= -dotnet_naming_style._camel_case.word_separator= -dotnet_naming_style._camel_case.capitalization=camel_case +dotnet_naming_style._camel_case.required_prefix = _ +dotnet_naming_style._camel_case.required_suffix = dotnet_naming_style +._camel_case.word_separator = dotnet_naming_style +._camel_case.capitalization = camel_case -dotnet_naming_style.begins_with_i.required_prefix=I -dotnet_naming_style.begins_with_i.required_suffix= -dotnet_naming_style.begins_with_i.word_separator= -dotnet_naming_style.begins_with_i.capitalization=pascal_case +dotnet_naming_style.begins_with_i.required_prefix = I +dotnet_naming_style.begins_with_i.required_suffix = dotnet_naming_style +.begins_with_i.word_separator = dotnet_naming_style +.begins_with_i.capitalization = pascal_case -dotnet_naming_style.begins_with_t.required_prefix=T -dotnet_naming_style.begins_with_t.required_suffix= -dotnet_naming_style.begins_with_t.word_separator= -dotnet_naming_style.begins_with_t.capitalization=pascal_case +dotnet_naming_style.begins_with_t.required_prefix = T +dotnet_naming_style.begins_with_t.required_suffix = dotnet_naming_style +.begins_with_t.word_separator = dotnet_naming_style +.begins_with_t.capitalization = pascal_case -dotnet_diagnostic.IDE0058.severity = none +dotnet_diagnostic.ide0058.severity = none # CodeQuality # CA1000: Do not declare static members on generic types @@ -364,7 +359,7 @@ dotnet_diagnostic.IDE0058.severity = none # dotnet_diagnostic.CA1061.severity = warning # CA1062: Validate arguments of public methods -# dotnet_diagnostic.CA1062.severity = warning +dotnet_diagnostic.ca1062.severity = none # CA1063: Implement IDisposable Correctly # dotnet_diagnostic.CA1063.severity = none @@ -478,7 +473,7 @@ dotnet_diagnostic.IDE0058.severity = none # dotnet_diagnostic.CA1823.severity = warning # CA2007: Consider calling ConfigureAwait on the awaited task -# dotnet_diagnostic.CA2007.severity = warning +dotnet_diagnostic.ca2007.severity = none # CA2119: Seal methods that satisfy private interfaces # dotnet_diagnostic.CA2119.severity = warning @@ -907,96 +902,145 @@ dotnet_diagnostic.IDE0058.severity = none # dotnet_diagnostic.RS0027.severity = warning # ReSharper properties -resharper_align_linq_query=true -resharper_align_multiline_argument=true -resharper_align_multiline_array_and_object_initializer=false -resharper_align_multiline_binary_expressions_chain=false -resharper_align_multiline_calls_chain=false -resharper_align_multiline_expression=true -resharper_align_multiline_extends_list=true -resharper_align_multiline_for_stmt=true -resharper_align_multiline_parameter=true -resharper_align_multiline_switch_expression=false -resharper_align_multiple_declaration=true -resharper_align_multline_type_parameter_constrains=true -resharper_align_multline_type_parameter_list=true -resharper_align_tuple_components=true -resharper_always_use_end_of_line_brace_style=true -resharper_arguments_anonymous_function=positional -resharper_arguments_skip_single=true -resharper_braces_redundant=true -resharper_continuous_indent_multiplier=1 -resharper_csharp_align_multiline_argument=false -resharper_csharp_align_multiline_expression=false -resharper_csharp_blank_lines_inside_region=0 -resharper_csharp_max_line_length=180 -resharper_csharp_stick_comment=false -resharper_csharp_wrap_arguments_style=chop_if_long -resharper_csharp_wrap_extends_list_style=chop_if_long -resharper_csharp_wrap_multiple_declaration_style=chop_if_long -resharper_csharp_wrap_parameters_style=chop_if_long -resharper_empty_block_style=together_same_line -resharper_html_attribute_style=first_attribute_on_single_line -resharper_html_blank_line_after_pi=false -resharper_html_max_blank_lines_between_tags=1 -resharper_html_pi_attribute_style=first_attribute_on_single_line -resharper_html_space_after_last_pi_attribute=true -resharper_indent_anonymous_method_block=false -resharper_int_align_switch_expressions=true -resharper_int_align_switch_sections=true -resharper_keep_existing_declaration_block_arrangement=false -resharper_keep_existing_embedded_arrangement=false -resharper_keep_existing_embedded_block_arrangement=false -resharper_keep_existing_enum_arrangement=false -resharper_keep_existing_expr_member_arrangement=false -resharper_keep_existing_invocation_parens_arrangement=true -resharper_keep_existing_linebreaks=true -resharper_keep_existing_switch_expression_arrangement=false -resharper_keep_user_linebreaks=true -resharper_local_function_body=expression_body -resharper_max_enum_members_on_line=0 -resharper_max_formal_parameters_on_line=6 -resharper_max_initializer_elements_on_line=3 -resharper_max_invocation_arguments_on_line=6 -resharper_nested_ternary_style=compact -resharper_normalize_tag_names=true -resharper_outdent_binary_ops=true -resharper_outdent_commas=true -resharper_outdent_dots=true -resharper_place_accessorholder_attribute_on_same_line=False -resharper_place_expr_accessor_on_single_line=True -resharper_place_expr_method_on_single_line=True -resharper_place_expr_property_on_single_line=True -resharper_place_linq_into_on_new_line=false -resharper_place_simple_embedded_statement_on_same_line=False -resharper_place_type_constraints_on_same_line=false -resharper_prefer_explicit_discard_declaration=true -resharper_remove_blank_lines_near_braces=true -resharper_sort_attributes=true -resharper_sort_class_selectors=true -resharper_space_around_arrow_op=true -resharper_space_within_single_line_array_initializer_braces=true -resharper_wrap_after_declaration_lpar=true -resharper_wrap_after_invocation_lpar=true -resharper_wrap_arguments_style=wrap_if_long -resharper_wrap_array_initializer_style=chop_if_long -resharper_wrap_before_arrow_with_expressions=true -resharper_wrap_before_declaration_rpar=true -resharper_wrap_before_first_type_parameter_constraint=true -resharper_wrap_before_invocation_rpar=true -resharper_wrap_chained_method_calls=wrap_if_long -resharper_wrap_for_stmt_header_style=wrap_if_long -resharper_wrap_linq_expressions=chop_always -resharper_wrap_multiple_declaration_style=chop_if_long -resharper_wrap_multiple_type_parameter_constraints_style=chop_always -resharper_wrap_object_and_collection_initializer_style=chop_if_long -resharper_wrap_verbatim_interpolated_strings=chop_if_long -resharper_xmldoc_attribute_style=on_single_line -resharper_xmldoc_indent_child_elements=ZeroIndent -resharper_xmldoc_indent_text=ZeroIndent -resharper_xmldoc_max_line_length=180 -resharper_xmldoc_pi_attribute_style=on_single_line -resharper_xmldoc_space_before_self_closing=true +resharper_align_linq_query = true +resharper_align_multiline_argument = true +resharper_align_multiline_array_and_object_initializer = false +resharper_align_multiline_binary_expressions_chain = false +resharper_align_multiline_calls_chain = true +resharper_align_multiline_expression = true +resharper_align_multiline_extends_list = true +resharper_align_multiline_for_stmt = true +resharper_align_multiline_parameter = true +resharper_align_multiline_switch_expression = false +resharper_align_multiple_declaration = true +resharper_align_multline_type_parameter_constrains = true +resharper_align_multline_type_parameter_list = true +resharper_align_tuple_components = true +resharper_arguments_anonymous_function = positional +resharper_autodetect_indent_settings = true +resharper_braces_for_for = not_required +resharper_braces_for_foreach = not_required +resharper_braces_for_ifelse = not_required_for_both +resharper_braces_for_while = not_required +resharper_braces_redundant = false +resharper_constructor_or_destructor_body = block_body +resharper_continuous_indent_multiplier = 1 +resharper_cpp_empty_block_style = multiline +resharper_cpp_outdent_commas = false +resharper_cpp_outdent_dots = false +resharper_cpp_wrap_after_declaration_lpar = false +resharper_cpp_wrap_after_invocation_lpar = false +resharper_cpp_wrap_before_declaration_rpar = false +resharper_cpp_wrap_before_invocation_rpar = false +resharper_csharp_align_multiline_argument = true +resharper_csharp_align_multiline_binary_expressions_chain = true +resharper_csharp_align_multiline_expression = false +resharper_csharp_brace_style = next_line +resharper_csharp_empty_block_style = multiline +resharper_csharp_outdent_commas = true +resharper_csharp_outdent_dots = true +resharper_csharp_place_comments_at_first_column = true +resharper_csharp_wrap_after_declaration_lpar = true +resharper_csharp_wrap_after_invocation_lpar = true +resharper_csharp_wrap_before_binary_opsign = true +resharper_csharp_wrap_before_declaration_rpar = true +resharper_csharp_wrap_before_invocation_rpar = true +resharper_csharp_wrap_multiple_declaration_style = chop_if_long +resharper_empty_block_style = together_same_line +resharper_indent_anonymous_method_block = false +resharper_int_align_switch_expressions = true +resharper_int_align_switch_sections = true +resharper_keep_existing_declaration_block_arrangement = false +resharper_keep_existing_embedded_block_arrangement = false +resharper_keep_existing_enum_arrangement = true +resharper_keep_existing_invocation_parens_arrangement = true +resharper_keep_existing_linebreaks = true +resharper_keep_existing_switch_expression_arrangement = false +resharper_keep_user_linebreaks = true +resharper_max_initializer_elements_on_line = 2 +resharper_method_or_operator_body = block_body +resharper_outdent_binary_ops = true +resharper_outdent_commas = true +resharper_outdent_dots = true +resharper_space_around_arrow_op = true +resharper_space_within_single_line_array_initializer_braces = true +resharper_use_heuristics_for_body_style = true +resharper_use_indent_from_vs = false +resharper_wrap_after_declaration_lpar = true +resharper_wrap_after_invocation_lpar = true +resharper_wrap_arguments_style = wrap_if_long +resharper_wrap_before_declaration_rpar = true +resharper_wrap_before_invocation_rpar = true +resharper_wrap_chained_method_calls = wrap_if_long +resharper_wrap_multiple_declaration_style = chop_if_long +resharper_wrap_object_and_collection_initializer_style = chop_if_long +resharper_xmldoc_attribute_style = on_single_line +resharper_xmldoc_pi_attribute_style = on_single_line +resharper_xmldoc_space_after_last_pi_attribute = true +resharper_xmldoc_space_before_self_closing = true # ReSharper inspection severities -resharper_arrange_local_function_body_highlighting=suggestion +resharper_annotate_can_be_null_parameter_highlighting = warning +resharper_annotate_can_be_null_type_member_highlighting = warning +resharper_arrange_constructor_or_destructor_body_highlighting = none +resharper_arrange_method_or_operator_body_highlighting = none +resharper_arrange_redundant_parentheses_highlighting = hint +resharper_arrange_this_qualifier_highlighting = hint +resharper_arrange_type_member_modifiers_highlighting = hint +resharper_arrange_type_modifiers_highlighting = hint +resharper_built_in_type_reference_style_for_member_access_highlighting = hint +resharper_built_in_type_reference_style_highlighting = hint +resharper_enforce_do_while_statement_braces_highlighting = warning +resharper_enforce_fixed_statement_braces_highlighting = warning +resharper_enforce_foreach_statement_braces_highlighting = warning +resharper_enforce_for_statement_braces_highlighting = warning +resharper_enforce_if_statement_braces_highlighting = warning +resharper_enforce_lock_statement_braces_highlighting = warning +resharper_enforce_using_statement_braces_highlighting = warning +resharper_enforce_while_statement_braces_highlighting = warning +resharper_redundant_base_qualifier_highlighting = warning +resharper_redundant_default_member_initializer_highlighting = hint +resharper_remove_redundant_braces_highlighting = warning +resharper_suggest_var_or_type_built_in_types_highlighting = hint +resharper_suggest_var_or_type_elsewhere_highlighting = hint +resharper_suggest_var_or_type_simple_types_highlighting = hint +resharper_unnecessary_whitespace_highlighting = warning +resharper_use_null_propagation_when_possible_highlighting = suggestion +resharper_web_config_module_not_resolved_highlighting = warning +resharper_web_config_type_not_resolved_highlighting = warning +resharper_web_config_wrong_module_highlighting = warning + +ij_xml_align_attributes = true +ij_xml_align_text = false +ij_xml_attribute_wrap = normal +ij_xml_block_comment_at_first_column = true +ij_xml_keep_blank_lines = 2 +ij_xml_keep_indents_on_empty_lines = false +ij_xml_keep_line_breaks = true +ij_xml_keep_line_breaks_in_text = true +ij_xml_keep_whitespaces = true +ij_xml_keep_whitespaces_around_cdata = preserve +ij_xml_keep_whitespaces_inside_cdata = false +ij_xml_line_comment_at_first_column = true +ij_xml_space_after_tag_name = false +ij_xml_space_around_equals_in_attribute = false +ij_xml_space_inside_empty_tag = true +ij_xml_text_wrap = off + +# Microsoft .NET properties +dotnet_naming_rule.unity_serialized_field_rule.import_to_resharper = True +dotnet_naming_rule.unity_serialized_field_rule.resharper_description = Unity serialized field +dotnet_naming_rule.unity_serialized_field_rule.resharper_guid = 5f0fdb63-c892-4d2c-9324-15c80b22a7ef +dotnet_naming_rule.unity_serialized_field_rule.severity = warning +dotnet_naming_rule.unity_serialized_field_rule.style = lower_camel_case_style +dotnet_naming_rule.unity_serialized_field_rule.symbols = unity_serialized_field_symbols +dotnet_naming_style.lower_camel_case_style.capitalization = camel_case +dotnet_naming_symbols.unity_serialized_field_symbols.applicable_accessibilities = * +dotnet_naming_symbols.unity_serialized_field_symbols.applicable_kinds = +dotnet_naming_symbols.unity_serialized_field_symbols.resharper_applicable_kinds = unity_serialised_field +dotnet_naming_symbols.unity_serialized_field_symbols.resharper_required_modifiers = instance + +[*.{appxmanifest,asax,ascx,aspx,axaml,build,cg,cginc,compute,cs,cshtml,dtd,fs,fsi,fsscript,fsx,hlsl,hlsli,hlslinc,master,ml,mli,nuspec,paml,razor,resw,resx,shader,skin,usf,ush,vb,xaml,xamlx,xoml,xsd}] +indent_style = space +indent_size = 4 +tab_width = 4 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d56b7f1a..611b55b2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,7 +37,7 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v2.3.4 with: clean: 'false' fetch-depth: '0' @@ -45,18 +45,22 @@ jobs: run: | git fetch --prune - name: 🔨 Use .NET Core 2.1 SDK - uses: actions/setup-dotnet@v1.8.0 + uses: actions/setup-dotnet@v1.8.2 with: dotnet-version: '2.1.x' - name: 🔨 Use .NET Core 3.1 SDK - uses: actions/setup-dotnet@v1.8.0 + uses: actions/setup-dotnet@v1.8.2 with: dotnet-version: '3.1.x' - name: 🔨 Use .NET Core 5.0 SDK - uses: actions/setup-dotnet@v1.8.0 + uses: actions/setup-dotnet@v1.8.2 with: dotnet-version: '5.0.x' - + - name: 🔨 Use .NET Core 6.0 SDK + uses: actions/setup-dotnet@v1.8.2 + with: + dotnet-version: '6.0.x' + include-prerelease: true - name: 🎁 dotnet tool restore run: | dotnet tool restore @@ -78,25 +82,25 @@ jobs: name: 'actions-${{ matrix.os }}' - name: 🏺 Publish logs if: always() - uses: actions/upload-artifact@v2.2.3 + uses: actions/upload-artifact@v2.2.4 with: name: 'logs' path: 'artifacts/logs/' - name: 🏺 Publish coverage data if: always() - uses: actions/upload-artifact@v2.2.3 + uses: actions/upload-artifact@v2.2.4 with: name: 'coverage' path: 'coverage/' - name: 🏺 Publish test data if: always() - uses: actions/upload-artifact@v2.2.3 + uses: actions/upload-artifact@v2.2.4 with: name: 'test data' path: 'artifacts/test/' - name: 🏺 Publish NuGet Packages if: always() - uses: actions/upload-artifact@v2.2.3 + uses: actions/upload-artifact@v2.2.4 with: name: 'nuget' path: 'artifacts/nuget/' diff --git a/.github/workflows/close-milestone.yml b/.github/workflows/close-milestone.yml index 91d20d8c..c7df8c97 100644 --- a/.github/workflows/close-milestone.yml +++ b/.github/workflows/close-milestone.yml @@ -8,23 +8,23 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v2.3.4 with: fetch-depth: 0 - name: Install GitVersion - uses: gittools/actions/gitversion/setup@master + uses: gittools/actions/gitversion/setup@v0.9.10 with: versionSpec: '5.x' - name: Install GitReleaseManager - uses: gittools/actions/gitreleasemanager/setup@master + uses: gittools/actions/gitreleasemanager/setup@v0.9.10 with: versionSpec: '0.11.x' - name: Use GitVersion id: gitversion - uses: gittools/actions/gitversion/execute@master + uses: gittools/actions/gitversion/execute@v0.9.10 # Ensure the milestone exists - name: Create Milestone diff --git a/.github/workflows/dependabot-merge.yml b/.github/workflows/dependabot-merge.yml index 541d43f3..106e558c 100644 --- a/.github/workflows/dependabot-merge.yml +++ b/.github/workflows/dependabot-merge.yml @@ -4,6 +4,9 @@ on: pull_request_target: types: - labeled + - opened + - reopened + - closed jobs: comment: @@ -13,6 +16,7 @@ jobs: env: GITHUB_CONTEXT: ${{ toJson(github) }} run: echo "$GITHUB_CONTEXT" + - name: Dump job context env: JOB_CONTEXT: ${{ toJson(job) }} @@ -25,13 +29,70 @@ jobs: env: RUNNER_CONTEXT: ${{ toJson(runner) }} run: echo "$RUNNER_CONTEXT" - - uses: actions/checkout@v2 + - uses: actions/checkout@v2.3.4 with: ref: master - name: Dependabot Commenter if: | - (github.event.label.name == ':shipit: merge') && (github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'dependabot-preview[bot]') - uses: peaceiris/actions-label-commenter@v1.9.1 + ( + ( + github.event.action == 'labeled' + && ( + contains(github.event.label.name, ':shipit: merge') + || contains(github.event.label.name, 'javascript') + || contains(github.event.label.name, 'github-actions') + ) + ) + || + ( + contains(github.event.action, 'opened') && + ( + ( + contains(github.event.pull_request.labels.*.name, ':shipit: merge') + || contains(github.event.pull_request.labels.*.name, 'javascript') + || contains(github.event.pull_request.labels.*.name, 'github-actions') + ) + || startsWith(github.event.pull_request.title, 'Bump JetBrains.ReSharper.CommandLineTools') + || startsWith(github.event.pull_request.title, 'Bump ReportGenerator') + || startsWith(github.event.pull_request.title, 'Bump Nuke.Common') + || startsWith(github.event.pull_request.title, 'Bump GitVersion.Tool') + || startsWith(github.event.pull_request.title, 'Bump Bogus') + || startsWith(github.event.pull_request.title, 'Bump coverlet') + || startsWith(github.event.pull_request.title, 'Bump FakeItEasy') + || startsWith(github.event.pull_request.title, 'Bump FluentAssertions') + || startsWith(github.event.pull_request.title, 'Bump xunit') + || startsWith(github.event.pull_request.title, 'Bump Microsoft.NET.Test.Sdk') + ) + ) + ) && ( + github.event.pull_request.user.login == 'dependabot[bot]' + || github.event.pull_request.user.login == 'dependabot-preview[bot]' + ) + uses: peaceiris/actions-label-commenter@v1.10.0 with: github_token: ${{ secrets.RSG_BOT_TOKEN }} config_file: .github/label-commenter-dependabot.yml + + - name: GitHub Automerge + if: | + ( + github.event.label.name == ':shipit: merge' + ) && ( + github.event.pull_request.user.login != 'dependabot[bot]' + || github.event.pull_request.user.login != 'dependabot-preview[bot]' + ) + uses: alexwilson/enable-github-automerge-action@1.0.0 + with: + github-token: "${{ secrets.GITHUB_TOKEN }}" + merge-method: "SQUASH" + + - name: GitHub Remove Labels + if: | + github.event.action == 'closed' + uses: actions-ecosystem/action-remove-labels@v1 + with: + labels: | + :shipit: merge + github-actions + javascript + .NET diff --git a/.github/workflows/draft-release.yml b/.github/workflows/draft-release.yml index 987af97d..7e50dfa5 100644 --- a/.github/workflows/draft-release.yml +++ b/.github/workflows/draft-release.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v2.3.4 with: fetch-depth: 0 @@ -18,18 +18,18 @@ jobs: run: git fetch --prune - name: Install GitVersion - uses: gittools/actions/gitversion/setup@master + uses: gittools/actions/gitversion/setup@v0.9.10 with: versionSpec: '5.x' - name: Install GitReleaseManager - uses: gittools/actions/gitreleasemanager/setup@master + uses: gittools/actions/gitreleasemanager/setup@v0.9.10 with: versionSpec: '0.11.x' - name: Use GitVersion id: gitversion - uses: gittools/actions/gitversion/execute@master + uses: gittools/actions/gitversion/execute@v0.9.10 - name: Create Milestone uses: WyriHaximus/github-action-create-milestone@v1 diff --git a/.github/workflows/publish-nuget.yml b/.github/workflows/publish-nuget.yml index 8f9b5899..88a13199 100644 --- a/.github/workflows/publish-nuget.yml +++ b/.github/workflows/publish-nuget.yml @@ -21,7 +21,7 @@ jobs: nuget-version: '5.x' - name: Download artifact - uses: dawidd6/action-download-artifact@v2 + uses: dawidd6/action-download-artifact@v2.14.1 if: github.event.workflow_run.conclusion == 'success' with: github_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index 777dd978..7f5d23e7 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -14,10 +14,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v2.3.4 - name: Checkout tools repo - uses: actions/checkout@v2 + uses: actions/checkout@v2.3.4 with: repository: RocketSurgeonsGuild/.github path: .rsg diff --git a/.github/workflows/update-milestone.yml b/.github/workflows/update-milestone.yml index d9ff3569..bfcaff3d 100644 --- a/.github/workflows/update-milestone.yml +++ b/.github/workflows/update-milestone.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v2.3.4 - name: sync milestones uses: RocketSurgeonsGuild/actions/sync-milestone@v0.2.4 diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 00000000..c32e97ff --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npx lint-staged -d -r diff --git a/.huskyrc b/.huskyrc deleted file mode 100644 index 80f5453b..00000000 --- a/.huskyrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "hooks": { - "pre-commit": "lint-staged" - } -} \ No newline at end of file diff --git a/.lintstagedrc b/.lintstagedrc deleted file mode 100644 index 31c611e4..00000000 --- a/.lintstagedrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "*.{cs,vb}": ["dotnet nuke lint --no-logo --lint-files", "git add"], - "*.{js,ts,jsx,tsx,json,yml,yaml}": ["prettier --write", "git add"] -} \ No newline at end of file diff --git a/.lintstagedrc.js b/.lintstagedrc.js new file mode 100644 index 00000000..8403c010 --- /dev/null +++ b/.lintstagedrc.js @@ -0,0 +1,28 @@ +function forEachChunk(chunks, callback, chunkSize = 50) { + var mappedFiles = []; + var files = chunks.concat(); + while (files.length > 0) { + var chunk = files.splice(0, chunkSize); + mappedFiles = mappedFiles.concat(callback(chunk)); + } + return mappedFiles; +} + +function cleanupcode(filenames) { + var sln = require('./.nuke/parameters.json').Solution; + return forEachChunk(filenames, chunk => [ + `dotnet jb cleanupcode ${sln} "--profile=Full Cleanup" "--disable-settings-layers=GlobalAll;GlobalPerProduct;SolutionPersonal;ProjectPersonal" "--include=${chunk.join( + ';' + )}"`, + ]); +} + +module.exports = { + '*.cs': filenames => { + return [`echo "'${filenames.join(`' '`)}'" | dotnet format --include -`].concat(cleanupcode(filenames)); + }, + '*.{csproj,targets,props,xml}': filenames => + forEachChunk(filenames, chunk => [`prettier --write '${chunk.join(`' '`)}'`]), + '*.{js,ts,jsx,tsx,json,yml,yaml}': filenames => + forEachChunk(filenames, chunk => [`prettier --write '${chunk.join(`' '`)}'`]), +}; diff --git a/.mergify.yml b/.mergify.yml deleted file mode 100644 index 6cf95efd..00000000 --- a/.mergify.yml +++ /dev/null @@ -1,125 +0,0 @@ -pull_request_rules: - - name: automatic merge when GitHub branch protection passes (others) - conditions: - - base=master - - -author~=^dependabot(|-preview)\[bot\]$ - - 'label=:shipit: merge' - actions: - merge: - method: squash - strict: smart+fasttrack - - name: auto merge javascript - conditions: - - 'label=javascript' - - author~=^dependabot(|-preview)\[bot\]$ - actions: - label: - add: - - ':shipit: merge' - - name: auto merge github-actions - conditions: - - 'label=github-actions' - - author~=^dependabot(|-preview)\[bot\]$ - actions: - label: - add: - - ':shipit: merge' - - name: automatic merge when GitHub branch protection passes - conditions: - - merged - - 'label=:shipit: merge' - actions: - label: - remove: - - ':shipit: merge' - - name: delete head branch after merge - conditions: - - merged - actions: - label: - remove: - - ':shipit: merge' - - 'github-actions' - - 'javascript' - - '.NET' - delete_head_branch: {} - - name: automatic merge for JetBrains.ReSharper.GlobalTools pull requests - conditions: - - title~=^Bump JetBrains\.ReSharper\.CommandLineTools.*$ - - author~=^dependabot(|-preview)\[bot\]$ - actions: - label: - add: - - ':shipit: merge' - - name: automatic merge for ReportGenerator pull requests - conditions: - - title~=^Bump ReportGenerator.*$ - - author~=^dependabot(|-preview)\[bot\]$ - actions: - label: - add: - - ':shipit: merge' - - name: automatic merge for Nuke.Common pull requests - conditions: - - title~=^Bump Nuke\.Common.*$ - - author~=^dependabot(|-preview)\[bot\]$ - actions: - label: - add: - - ':shipit: merge' - - name: automatic merge for GitVersion.Tool pull requests - conditions: - - title~=^Bump GitVersion\.Tool.*$ - - author~=^dependabot(|-preview)\[bot\]$ - actions: - label: - add: - - ':shipit: merge' - - name: automatic merge for Bogus pull requests - conditions: - - title~=^Bump Bogus.*$ - - author~=^dependabot(|-preview)\[bot\]$ - actions: - label: - add: - - ':shipit: merge' - - name: automatic merge for coverlet pull requests - conditions: - - title~=^Bump coverlet.*$ - - author~=^dependabot(|-preview)\[bot\]$ - actions: - label: - add: - - ':shipit: merge' - - name: automatic merge for FakeItEasy pull requests - conditions: - - title~=^Bump FakeItEasy.*$ - - author~=^dependabot(|-preview)\[bot\]$ - actions: - label: - add: - - ':shipit: merge' - - name: automatic merge for FluentAssertions pull requests - conditions: - - title~=^Bump FluentAssertions.*$ - - author~=^dependabot(|-preview)\[bot\]$ - actions: - label: - add: - - ':shipit: merge' - - name: automatic merge for xunit pull requests - conditions: - - title~=^Bump xunit.*$ - - author~=^dependabot(|-preview)\[bot\]$ - actions: - label: - add: - - ':shipit: merge' - - name: automatic merge for Microsoft.NET.Test.Sdk pull requests - conditions: - - title~=^Bump Microsoft\.NET\.Test\.Sdk.*$ - - author~=^dependabot(|-preview)\[bot\]$ - actions: - label: - add: - - ':shipit: merge' diff --git a/Directory.Build.props b/Directory.Build.props index 2f1cf4ff..7daadd85 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -7,13 +7,19 @@ true images/packageicon.png LICENSE - rocket surgery;rocket surgeons;rsg;rocket surgeons guild - $(PackageTags);abstractions + preview strict enable AllEnabledByDefault true + 1 + true diff --git a/Packages.props b/Packages.props index c78aea7b..b0068831 100644 --- a/Packages.props +++ b/Packages.props @@ -8,7 +8,6 @@ - diff --git a/build.ps1 b/build.ps1 old mode 100644 new mode 100755 index 61754e89..fb38b26a --- a/build.ps1 +++ b/build.ps1 @@ -14,9 +14,9 @@ $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent ########################################################################### $BuildProjectFile = "$PSScriptRoot\.build\.build.csproj" -$TempDirectory = "$PSScriptRoot\\.nuke\temp" +$TempDirectory = "$PSScriptRoot\.nuke\temp" -$DotNetGlobalFile = "$PSScriptRoot\\global.json" +$DotNetGlobalFile = "$PSScriptRoot\global.json" $DotNetInstallUrl = "https://dot.net/v1/dotnet-install.ps1" $DotNetChannel = "Current" @@ -50,6 +50,9 @@ else { $DotNetGlobal = $(Get-Content $DotNetGlobalFile | Out-String | ConvertFrom-Json) if ($DotNetGlobal.PSObject.Properties["sdk"] -and $DotNetGlobal.sdk.PSObject.Properties["version"]) { $DotNetVersion = $DotNetGlobal.sdk.version + if ($DotNetVersion -match '-') { + $DotNetVersion = $DotNetVersion.Substring(0, $DotNetVersion.IndexOf('-')) + } } } diff --git a/build.sh b/build.sh index 75f7d993..5318f1c9 100755 --- a/build.sh +++ b/build.sh @@ -41,9 +41,13 @@ else # If global.json exists, load expected version if [[ -f "$DOTNET_GLOBAL_FILE" ]]; then DOTNET_VERSION=$(FirstJsonValue "version" "$(cat "$DOTNET_GLOBAL_FILE")") + if [[ "$DOTNET_VERSION" == *"-"* ]]; then + DOTNET_VERSION=$(cut -d '-' -f 1 <<< "$DOTNET_VERSION") + fi if [[ "$DOTNET_VERSION" == "" ]]; then unset DOTNET_VERSION fi + fi # Install by channel or version diff --git a/package-lock.json b/package-lock.json index 2eab99fc..ebba2abf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3,81 +3,39 @@ "lockfileVersion": 1, "dependencies": { "@babel/code-frame": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", - "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", + "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", "dev": true, "requires": { - "@babel/highlight": "^7.12.13" + "@babel/highlight": "^7.14.5" } }, "@babel/helper-validator-identifier": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", - "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", + "version": "7.15.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", + "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", "dev": true }, "@babel/highlight": { - "version": "7.14.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", - "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", + "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.14.0", + "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } + } + }, + "@prettier/plugin-xml": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-1.1.0.tgz", + "integrity": "sha512-ftQAIB3icdzvfMWmQ6HhxWFwIkVE2bZaPb2Z2YgX9BVqq3ucf33eQAdPwD1wWvPwXwbeZvDoz60vYZv/Qjq+rg==", + "dev": true, + "requires": { + "@xml-tools/parser": "^1.0.11", + "prettier": ">=2.3" } }, "@types/parse-json": { @@ -86,6 +44,15 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, + "@xml-tools/parser": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@xml-tools/parser/-/parser-1.0.11.tgz", + "integrity": "sha512-aKqQ077XnR+oQtHJlrAflaZaL7qZsulWc/i/ZEooar5JiWj1eLt0+Wg28cpa+XLney107wXqneC+oG1IZvxkTA==", + "dev": true, + "requires": { + "chevrotain": "7.1.1" + } + }, "aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -112,9 +79,9 @@ } }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, "ansi-styles": { @@ -148,13 +115,58 @@ "dev": true }, "chalk": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", - "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "chevrotain": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chevrotain/-/chevrotain-7.1.1.tgz", + "integrity": "sha512-wy3mC1x4ye+O+QkEinVJkPf5u2vsrDIYW9G7ZuwFl6v/Yu0LwUuT2POsb+NUWApebyxfkQq6+yDfRExbnI5rcw==", "dev": true, "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "regexp-to-ast": "0.5.0" } }, "clean-stack": { @@ -197,16 +209,22 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "colorette": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz", + "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", + "dev": true + }, "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.2.0.tgz", + "integrity": "sha512-LLKxDvHeL91/8MIyTAD5BFMNtoIwztGPMiM/7Bl8rIPmHCZXRxmSWr91h57dpOpnQ6jIUqEWdXE/uBYMfiVZDA==", "dev": true }, "cosmiconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz", - "integrity": "sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", @@ -228,20 +246,14 @@ } }, "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", + "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, "requires": { "ms": "2.1.2" } }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -273,9 +285,9 @@ "dev": true }, "execa": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.0.tgz", - "integrity": "sha512-ov6w/2LCiuyO4RLYGdpFGjkcs0wMTgGE8PrkTHikeUy5iJekXyPIKUjifk5CsE0pt7sMCrMZ3YNqoCj6idQOnQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { "cross-spawn": "^7.0.3", @@ -289,15 +301,6 @@ "strip-final-newline": "^2.0.0" } }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -320,9 +323,9 @@ "dev": true }, "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "human-signals": { @@ -332,9 +335,9 @@ "dev": true }, "husky": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/husky/-/husky-6.0.0.tgz", - "integrity": "sha512-SQS2gDTB7tBN486QSoKPKQItZw97BMOd+Kdb6ghfpBc0yXyzrddI0oDV5MkDAbuB4X2mO3/nj60TRMcYxwzZeQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/husky/-/husky-7.0.2.tgz", + "integrity": "sha512-8yKEWNX4z2YsofXAMT7KvA1g8p+GxtB1ffV8XtpAEGuXNAbCV5wdNKH+qTpw8SM9fh4aMPDR+yQuKfgnreyZlg==", "dev": true }, "import-fresh": { @@ -384,15 +387,9 @@ "dev": true }, "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, "isexe": { @@ -420,38 +417,35 @@ "dev": true }, "lint-staged": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.0.0.tgz", - "integrity": "sha512-3rsRIoyaE8IphSUtO1RVTFl1e0SLBtxxUOPBtHxQgBHS5/i6nqvjcUfNioMa4BU9yGnPzbO+xkfLtXtxBpCzjw==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-11.2.0.tgz", + "integrity": "sha512-0KIcRuO4HQS2Su7qWtjrfTXgSklvyIb9Fk9qVWRZkGHa5S81Vj6WBbs+ogQBvHUwLJYq1eQ4R+H82GSak4OM7w==", "dev": true, "requires": { - "chalk": "^4.1.1", - "cli-truncate": "^2.1.0", - "commander": "^7.2.0", - "cosmiconfig": "^7.0.0", - "debug": "^4.3.1", - "dedent": "^0.7.0", + "cli-truncate": "2.1.0", + "colorette": "^1.4.0", + "commander": "^8.2.0", + "cosmiconfig": "^7.0.1", + "debug": "^4.3.2", "enquirer": "^2.3.6", - "execa": "^5.0.0", - "listr2": "^3.8.2", - "log-symbols": "^4.1.0", + "execa": "^5.1.1", + "listr2": "^3.12.2", "micromatch": "^4.0.4", "normalize-path": "^3.0.0", "please-upgrade-node": "^3.2.0", "string-argv": "0.3.1", - "stringify-object": "^3.3.0" + "stringify-object": "3.3.0", + "supports-color": "8.1.1" } }, "listr2": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.8.2.tgz", - "integrity": "sha512-E28Fw7Zd3HQlCJKzb9a8C8M0HtFWQeucE+S8YrSrqZObuCLPRHMRrR8gNmYt65cU9orXYHwvN5agXC36lYt7VQ==", + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.12.2.tgz", + "integrity": "sha512-64xC2CJ/As/xgVI3wbhlPWVPx0wfTqbUAkpb7bjDi0thSWMqrf07UFhrfsGoo8YSXmF049Rp9C0cjLC8rZxK9A==", "dev": true, "requires": { - "chalk": "^4.1.1", "cli-truncate": "^2.1.0", - "figures": "^3.2.0", - "indent-string": "^4.0.0", + "colorette": "^1.4.0", "log-update": "^4.0.0", "p-map": "^4.0.0", "rxjs": "^6.6.7", @@ -459,16 +453,6 @@ "wrap-ansi": "^7.0.0" } }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - } - }, "log-update": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz", @@ -600,9 +584,9 @@ "dev": true }, "picomatch": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.3.tgz", - "integrity": "sha512-KpELjfwcCDUb9PeigTs2mBJzXUPzAuP2oPcA989He8Rte0+YUAjw1JVedDhuTKPkHjSYzMN3npC9luThGYEKdg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", "dev": true }, "please-upgrade-node": { @@ -615,9 +599,15 @@ } }, "prettier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", - "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz", + "integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==", + "dev": true + }, + "regexp-to-ast": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz", + "integrity": "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw==", "dev": true }, "resolve-from": { @@ -667,9 +657,9 @@ "dev": true }, "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", + "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", "dev": true }, "slice-ansi": { @@ -690,14 +680,14 @@ "dev": true }, "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "stringify-object": { @@ -712,12 +702,12 @@ } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } }, "strip-final-newline": { @@ -727,12 +717,20 @@ "dev": true }, "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { "has-flag": "^4.0.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + } } }, "through": { diff --git a/package.json b/package.json index 2eca075b..4dcdaa7c 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,12 @@ { "private": true, "devDependencies": { - "husky": "^6.0.0", - "lint-staged": "^11.0.0", - "prettier": "^2.3.0" + "@prettier/plugin-xml": "^1.1.0", + "husky": "^7.0.0", + "lint-staged": "^11.2.0", + "prettier": "^2.4.1" + }, + "scripts": { + "prepare": "husky install" } }