diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 521c3eee..371d6e75 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,7 +21,7 @@ env: PUBLISH_PROJECT_PATH: TeamTools.TSQL.Linter/TeamTools.TSQL.Linter.csproj OUTPUT_PATH: ${{ github.workspace }}/.bin/ PUBLISH_PATH: ${{ github.workspace }}/.pub - NUPKG_PATH: ${{ github.workspace }}\.nupkgs + NUPKG_PATH: ${{ github.workspace }}/.nupkgs jobs: semver: @@ -85,6 +85,7 @@ jobs: 2.0.x 6.0.x 8.0.x + 10.0.x - name: Display dotnet version run: dotnet --info @@ -144,6 +145,11 @@ jobs: -p:Configuration=${{ matrix.configuration }} -p:BaseOutputPath="${{ env.OUTPUT_PATH }}" -p:PublishDir="${{ env.PUBLISH_PATH }}/Release/net8.0" + && dotnet publish "${{ env.PUBLISH_PROJECT_PATH }}" --no-build + -p:TargetFramework=net10.0 + -p:Configuration=${{ matrix.configuration }} + -p:BaseOutputPath="${{ env.OUTPUT_PATH }}" + -p:PublishDir="${{ env.PUBLISH_PATH }}/Release/net10.0" - name: Pack if: ${{ matrix.publish }} @@ -199,6 +205,14 @@ jobs: path: ${{ env.PUBLISH_PATH }}/${{ matrix.configuration }}/net8.0 if-no-files-found: error + - name: Upload build artifacts 10.0 + uses: actions/upload-artifact@v4 + if: ${{ matrix.publish }} + with: + name: ${{ env.PRODUCT_NAME }}-${{ needs.semver.outputs.next-version }}-${{ matrix.configuration }}-net10.0 + path: ${{ env.PUBLISH_PATH }}/${{ matrix.configuration }}/net10.0 + if-no-files-found: error + - name: Upload nugets uses: actions/upload-artifact@v4 if: ${{ matrix.publish }} @@ -207,7 +221,7 @@ jobs: include-hidden-files: true if-no-files-found: error path: | - ${{ env.NUPKG_PATH }}\*.nupkg + ${{ env.NUPKG_PATH }}/*.nupkg - name: Upload test bundle uses: actions/upload-artifact@v4 diff --git a/.gitignore b/.gitignore index c2a34e5f..b78b6737 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ node_packages/ # Packaged items .nupkg +.nupkgs # Sonar temp folders .sonarqube/ diff --git a/TeamTools.TSQL.Common/TeamTools.Common.Linting.csproj b/TeamTools.TSQL.Common/TeamTools.Common.Linting.csproj index 1c5a5ff2..ae88e178 100644 --- a/TeamTools.TSQL.Common/TeamTools.Common.Linting.csproj +++ b/TeamTools.TSQL.Common/TeamTools.Common.Linting.csproj @@ -1,7 +1,7 @@  - netstandard2.0;net6.0;net8.0 + netstandard2.0;net6.0;net8.0;net10.0 Library Debug;Release diff --git a/TeamTools.TSQL.Common/packages.lock.json b/TeamTools.TSQL.Common/packages.lock.json index f4559ec4..d57002b5 100644 --- a/TeamTools.TSQL.Common/packages.lock.json +++ b/TeamTools.TSQL.Common/packages.lock.json @@ -36,6 +36,32 @@ "contentHash": "Onx6ovGSqXSK07n/0eM3ZusiNdB6cIlJdabQhWGgJp3Vooy9AaLS/tigeybOJAobqbtggTamoWndz72JscZBvw==" } }, + "net10.0": { + "Microsoft.NETCore.Platforms": { + "type": "Direct", + "requested": "[7.0.4, )", + "resolved": "7.0.4", + "contentHash": "yLEHlNN7O5WiND89r42sepgVwy5W/ZoTiFEdJDV7MHR1lW02LL7Nipz2TD5qM/Kx9W3/k3NP+PAP2qUdOm+leg==" + }, + "Newtonsoft.Json": { + "type": "Direct", + "requested": "[13.0.4, )", + "resolved": "13.0.4", + "contentHash": "pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==" + }, + "Roslynator.Analyzers": { + "type": "Direct", + "requested": "[4.14.1, )", + "resolved": "4.14.1", + "contentHash": "yMSjze/xMYDF6PCE60/ULWx0tttNyKAndw2KijNxbKil0FX8nvDeEneDZGma8Uifk17RlfZqIXxf1mmBmhRHjg==" + }, + "StyleCop.Analyzers": { + "type": "Direct", + "requested": "[1.1.118, )", + "resolved": "1.1.118", + "contentHash": "Onx6ovGSqXSK07n/0eM3ZusiNdB6cIlJdabQhWGgJp3Vooy9AaLS/tigeybOJAobqbtggTamoWndz72JscZBvw==" + } + }, "net6.0": { "Microsoft.NETCore.Platforms": { "type": "Direct", diff --git a/TeamTools.TSQL.ExpressionEvaluator/TeamTools.TSQL.ExpressionEvaluator.csproj b/TeamTools.TSQL.ExpressionEvaluator/TeamTools.TSQL.ExpressionEvaluator.csproj index 9df742d4..1a7b5ecf 100644 --- a/TeamTools.TSQL.ExpressionEvaluator/TeamTools.TSQL.ExpressionEvaluator.csproj +++ b/TeamTools.TSQL.ExpressionEvaluator/TeamTools.TSQL.ExpressionEvaluator.csproj @@ -1,7 +1,7 @@  - netstandard2.0;net6.0;net8.0 + netstandard2.0;net6.0;net8.0;net10.0 Library Debug;Release diff --git a/TeamTools.TSQL.ExpressionEvaluator/packages.lock.json b/TeamTools.TSQL.ExpressionEvaluator/packages.lock.json index 824b7b15..8e2d226a 100644 --- a/TeamTools.TSQL.ExpressionEvaluator/packages.lock.json +++ b/TeamTools.TSQL.ExpressionEvaluator/packages.lock.json @@ -85,6 +85,44 @@ } } }, + "net10.0": { + "Microsoft.NETCore.Platforms": { + "type": "Direct", + "requested": "[7.0.4, )", + "resolved": "7.0.4", + "contentHash": "yLEHlNN7O5WiND89r42sepgVwy5W/ZoTiFEdJDV7MHR1lW02LL7Nipz2TD5qM/Kx9W3/k3NP+PAP2qUdOm+leg==" + }, + "Microsoft.SqlServer.TransactSql.ScriptDom": { + "type": "Direct", + "requested": "[170.128.0, )", + "resolved": "170.128.0", + "contentHash": "NUN9NZaTafC1fSuLiOmfFVNomCx4E4IzA3vsfmJ7LTSy2H8fQTD01J7x3lpZ5CjA8/mKysSXXSVaMoMOVFAR9A==" + }, + "Roslynator.Analyzers": { + "type": "Direct", + "requested": "[4.14.1, )", + "resolved": "4.14.1", + "contentHash": "yMSjze/xMYDF6PCE60/ULWx0tttNyKAndw2KijNxbKil0FX8nvDeEneDZGma8Uifk17RlfZqIXxf1mmBmhRHjg==" + }, + "StyleCop.Analyzers": { + "type": "Direct", + "requested": "[1.1.118, )", + "resolved": "1.1.118", + "contentHash": "Onx6ovGSqXSK07n/0eM3ZusiNdB6cIlJdabQhWGgJp3Vooy9AaLS/tigeybOJAobqbtggTamoWndz72JscZBvw==" + }, + "Newtonsoft.Json": { + "type": "Transitive", + "resolved": "13.0.4", + "contentHash": "pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==" + }, + "teamtools.common.linting": { + "type": "Project", + "dependencies": { + "Microsoft.NETCore.Platforms": "[7.0.4, )", + "Newtonsoft.Json": "[13.0.4, )" + } + } + }, "net6.0": { "Microsoft.NETCore.Platforms": { "type": "Direct", diff --git a/TeamTools.TSQL.Linter/FirstTryScanConfig.json b/TeamTools.TSQL.Linter/EvaluateConfig.json similarity index 82% rename from TeamTools.TSQL.Linter/FirstTryScanConfig.json rename to TeamTools.TSQL.Linter/EvaluateConfig.json index 524a51f0..b33a3a04 100644 --- a/TeamTools.TSQL.Linter/FirstTryScanConfig.json +++ b/TeamTools.TSQL.Linter/EvaluateConfig.json @@ -74,7 +74,7 @@ "VU0511:JOB_MANAGEMENT": "warning", "VU0512:PRIVILEGE_MANAGEMENT": "warning", "VU0518:EXECUTE_AS_OWNER": "hint", - "VU0519:SYS_DYNAMIC_VIEW": "warning", + "VU0519:SYS_DYNAMIC_VIEW": "hint", "DE0401:DEPRECATED_UNIT": "warning", "DE0402:DEPRECATED_TYPE": "warning", @@ -90,37 +90,37 @@ "DE0741:INDEX_OPTION_SYNTAX_DEPRECATED": "warning", "DE0819:MODIFY_WITH_NOLOCK": "warning", - "AM0104:EXEC_PROC_SCHEMA": "warning", - "AM0106:COLUMN_NULLABLE": "warning", - "AM0108:CREATE_WITH_SCHEMA": "warning", - "AM0109:TABLE_REF_SCHEMA": "warning", - "AM0114:ORDER_BY_TOP": "warning", - "AM0129:AMBIGUOUS_INDEX_PARTITIONING": "warning", - "AM0154:ORDERBY_DIRECTION_AMBIGUOUS": "warning", - "AM0155:INDEX_DIRECTION_AMBIGUOUS": "warning", - "AM0162:OUTPUT_IN_TRIGGER_AMBIGUOUS_INSDEL": "warning", - "AM0166:INSERT_COLUMN_ALIAS_MATCH_TARGET": "warning", + "AM0104:EXEC_PROC_SCHEMA": "off", + "AM0106:COLUMN_NULLABLE": "off", + "AM0108:CREATE_WITH_SCHEMA": "off", + "AM0109:TABLE_REF_SCHEMA": "off", + "AM0114:ORDER_BY_TOP": "off", + "AM0129:AMBIGUOUS_INDEX_PARTITIONING": "off", + "AM0154:ORDERBY_DIRECTION_AMBIGUOUS": "off", + "AM0155:INDEX_DIRECTION_AMBIGUOUS": "off", + "AM0162:OUTPUT_IN_TRIGGER_AMBIGUOUS_INSDEL": "off", + "AM0166:INSERT_COLUMN_ALIAS_MATCH_TARGET": "off", "AM0168:NONUNIQUE_COLUMN_ALIAS": "warning", "AM0169:NONUNIQUE_TABLE_ALIAS": "warning", "AM0170:TABLE_ALIAS_MIMICKS_OTHER_TABLE": "warning", "AM0903:SAME_VAR_MULTIPLE_OUTPUT": "warning", - "AM0935:AMBIGUOUS_COL_SOURCE": "hint", + "AM0935:AMBIGUOUS_COL_SOURCE": "off", "AM0996:MULTI_SET_SAME_VAR": "warning", - "AM0291:INDEX_CLUSTERED_OR_NOT": "warning", - "AM0702:AMBIGUOUS_UNIQ": "hint", - "AM0718:OBJECT_ID_WITHOUT_TYPE": "warning", - "AM0728:NOT_FOR_COMPLEX_PREDICATE": "hint", - "AM0740:ALTER_DROP_NEEDS_SCHEMA": "warning", + "AM0291:INDEX_CLUSTERED_OR_NOT": "off", + "AM0702:AMBIGUOUS_UNIQ": "off", + "AM0718:OBJECT_ID_WITHOUT_TYPE": "off", + "AM0728:NOT_FOR_COMPLEX_PREDICATE": "off", + "AM0740:ALTER_DROP_NEEDS_SCHEMA": "off", "AM0836:COLUMNS_UPDATED": "hint", - "RD0123:UNUSED_VARIABLE": "hint", - "RD0156:REDUNDANT_OPTION_SWITCH": "warning", + "RD0123:UNUSED_VARIABLE": "off", + "RD0156:REDUNDANT_OPTION_SWITCH": "hint", "RD0185:DEFAULT_NULL": "hint", - "RD0192:EXISTS_OUTPUT_CONTROL": "warning", - "RD0193:REDUNDANT_HAVING": "hint", - "RD0194:REDUNDANT_COALESCE_ARGUMENT": "warning", - "RD0221:BEGIN_BEGIN_END_END": "hint", - "RD0228:GO_GO": "hint", + "RD0192:EXISTS_OUTPUT_CONTROL": "off", + "RD0193:REDUNDANT_HAVING": "off", + "RD0194:REDUNDANT_COALESCE_ARGUMENT": "hint", + "RD0221:BEGIN_BEGIN_END_END": "off", + "RD0228:GO_GO": "off", "RD0235:WHITESPACE_IN_PARENTHESIS": "hint", "RD0236:REDUNDANT_NEWLINE": "off", "RD0240:SL_COMMENT_LEADING_DASHES": "hint", @@ -131,10 +131,10 @@ "RD0249:REDUNDANT_BRACKETS": "hint", "RD0261:ML_COMMENT_REDUNDANT_NEWLINE": "hint", "RD0284:REDUNDANT_FUNCTION_CALL": "hint", - "RD0286:REDUNDANT_NEGATION": "warning", - "RD0287:REDUNDANT_NESTED_CASE": "warning", - "RD0288:REDUNDANT_SELECT_SCALAR": "warning", - "RD0293:REDUNDANT_CASE_ELSE_NULL": "warning", + "RD0286:REDUNDANT_NEGATION": "hint", + "RD0287:REDUNDANT_NESTED_CASE": "hint", + "RD0288:REDUNDANT_SELECT_SCALAR": "hint", + "RD0293:REDUNDANT_CASE_ELSE_NULL": "hint", "RD0296:REDUNDANT_ORDER_BY_CONST": "warning", "RD0307:EOF_REDUNDANT_NEWLINE": "hint", "RD0706:REDUNDANT_TYPE_CONVERSION": "hint", @@ -144,7 +144,7 @@ "RD0719:SCALAR_PREDICATE_AS_EXISTS": "hint", "RD0721:NULL_HANDLING_FOR_CONCAT": "hint", "RD0724:REDUNDANT_INDEX_OPTION": "hint", - "RD0730:REDUNDANT_CONTINUE": "warning", + "RD0730:REDUNDANT_CONTINUE": "hint", "RD0731:SIGNED_ZERO": "warning", "RD0780:JOIN_PREDICATE_PARENTHETHIS": "hint", "RD0782:REDUNDANT_NESTED_CONDITION": "hint", @@ -152,66 +152,69 @@ "RD0798:REDUNDANT_INIT_NULL": "hint", "RD0811:EXECUTE_AS_CALLER": "hint", "RD0814:IN_DUP_VAR": "warning", + "RD0849:REDUNDANT_INDEX_FILTER": "hint", + "RD0850:EXTRA_WHERE_PREDICATE": "hint", "RD0925:REDUNDANT_LIKE": "warning", "RD0926:REDUNDANT_NOT_FOR_REPLICATION": "hint", "RD0927:REDUNDANT_COL_NULLABILITY_CHECK": "hint", - "RD0934:CTE_UNUSED": "warning", - "RD0943:REDUNDANT_AGGREGATE": "warning", + "RD0934:CTE_UNUSED": "hint", + "RD0943:REDUNDANT_AGGREGATE": "hint", "RD0944:EXISTS_INSTEAD_OF_COUNT": "hint", - "RD0945:REDUNDANT_GRANT": "warning", - "RD0983:CURSOR_FETCHED_VAR_UNUSED": "warning", + "RD0945:REDUNDANT_GRANT": "hint", + "RD0983:CURSOR_FETCHED_VAR_UNUSED": "hint", - "PF0130:ROWVERSION_UNIQUE": "warning", - "PF0140:TRIGGER_EXIT_ON_NO_ROWS": "hint", - "PF0144:PROC_SET_NOCOUNT": "warning", - "PF0145:TRIGGER_SET_NOCOUNT": "warning", - "PF0238:UNION_TO_UNION_ALL": "warning", + "PF0130:ROWVERSION_UNIQUE": "hint", + "PF0140:TRIGGER_EXIT_ON_NO_ROWS": "off", + "PF0144:PROC_SET_NOCOUNT": "hint", + "PF0145:TRIGGER_SET_NOCOUNT": "hint", + "PF0238:UNION_TO_UNION_ALL": "hint", "PF0720:SORTED_CTE": "warning", "PF0775:SPARSE_COL_INDEX_FILTER": "warning", - "PF0823:RECOMPILE_RECOMPILE": "hint", + "PF0823:RECOMPILE_RECOMPILE": "off", "PF0910:INDEXING_COL_WITH_DEFAULT": "hint", "PF0928:FILTERED_IDX_FOR_NULL_COL_NOT_INCLUDED": "warning", - "PF0929:NON_SARGABLE_PREDICATE": "hint", - "PF0933:CTE_MULTIPLE_CALLS": "hint", - "PF0951:FN_SORTED_OUTPUT": "warning", - "PF0952:VIEW_SORTED_OUTPUT": "warning", + "PF0929:NON_SARGABLE_PREDICATE": "off", + "PF0933:CTE_MULTIPLE_CALLS": "off", + "PF0951:FN_SORTED_OUTPUT": "hint", + "PF0952:VIEW_SORTED_OUTPUT": "hint", "PF0953:TOP_TAKES_ALL": "hint", "PF0956:SUBSTRING_TO_LIKE": "warning", "MA0115:ORDER_BY_CURSOR": "off", "MA0116:ERROR_SWALLOW": "warning", - "MA0148:UNIQUE_ERR_NO_OR_STATE": "hint", - "MA0167:COMPUTED_OUTPUT_NO_ALIAS": "warning", + "MA0148:UNIQUE_ERR_NO_OR_STATE": "off", + "MA0167:COMPUTED_OUTPUT_NO_ALIAS": "hint", "MA0174:CLOCK_BASED_CODE_FLOW": "off", "MA0812:INSERT_EXEC": "hint", "MA0816:IN_VALUES_TOO_MANY": "hint", - "MA0817:ZERO_ARGS": "hint", - "MA0818:TOO_MANY_ARGS": "hint", + "MA0817:ZERO_ARGS": "off", + "MA0818:TOO_MANY_ARGS": "off", - "HD0121:PARTITIONS_HARDCODED": "warning", - "HD0122:CROSS_DB_REF_HARDCODED": "warning", + "HD0121:PARTITIONS_HARDCODED": "hint", + "HD0122:CROSS_DB_REF_HARDCODED": "hint", "HD0149:HOST_NAME_BASED_FLOW": "warning", "HD0157:LOGIN_BASED_FLOW": "warning", - "HD0180:TEMP_TABLE_FILEGROUP": "warning", - "HD0915:NON_PRIMARY_FILEGROUP": "warning", - "HD0916:PARTITION_SCHEME_FILEGROUPS_HARDCODED": "warning", - "HD0212:SYNONYM_VAR_LINKS": "warning", + "HD0180:TEMP_TABLE_FILEGROUP": "hint", + "HD0915:NON_PRIMARY_FILEGROUP": "off", + "HD0916:PARTITION_SCHEME_FILEGROUPS_HARDCODED": "off", + "HD0212:SYNONYM_VAR_LINKS": "hint", "HD0257:PERSONAL_DATA_EMAIL": "warning", "HD0258:PERSONAL_DATA_PHONE": "warning", "NM0203:CONSTRAINT_NAME_PATTERN": "off", - "NM0204:VAR_NAME_MISSPELLED": "hint", - "NM0205:VAR_NAME_NOTATION_MIX": "hint", - "NM0206:SYS_LIKE_NAME": "warning", + "NM0204:VAR_NAME_MISSPELLED": "off", + "NM0205:VAR_NAME_NOTATION_MIX": "off", + "NM0206:SYS_LIKE_NAME": "hint", "NM0207:ALIAS_LENGTH": "off", "NM0222:ID_FOR_INT": "off", - "NM0259:ALPHABET_MIX_IDENTIFIER": "warning", + "NM0259:ALPHABET_MIX_IDENTIFIER": "hint", "NM0263:KEYWORD_IDENTIFIER": "hint", "NM0264:UNREADABLE_IDENTIFIER": "hint", "NM0265:CAPS_IDENTIFIER": "hint", - "NM0271:MAGIC_@@_##_NAME": "warning", - "NM0712:NON_TEMP_OBJECT_LIKE_TEMP": "warning", + "NM0271:MAGIC_@@_##_NAME": "hint", + "NM0712:NON_TEMP_OBJECT_LIKE_TEMP": "hint", "NM0714:ALIAS_IS_KEYWORD": "hint", + "NM0854:IDENTIFIER_LOOK_ALIKE_CHAR": "hint", "NM0961:INDEX_NAME_PATTERN": "off", "NM0962:TRIGGER_NAME_PATTERN": "off", "NM0963:TABLE_NAME_LOWER_SNAKE_CASE": "off", @@ -227,7 +230,7 @@ "NM0973:VARIABLE_NAME_PASCAL_CASE": "off", "NM0974:VARIABLE_NAME_LOWER_SNAKE_CASE": "off", - "FM0120:BODY_BEGIN_END": "hint", + "FM0120:BODY_BEGIN_END": "off", "FM0137:IF_BEGIN_END": "off", "FM0150:WHILE_BEGIN_END": "off", "FM0210:DECLARE_FORMAT": "off", @@ -298,7 +301,7 @@ "CV0788:TYPE_SYNONYM": "hint", "CV0803:SYSTYPE_HAS_SCHEMA": "off", "CV0805:PRINTING": "hint", - "CV0810:EXEC_WITHOUT_EXEC": "warning", + "CV0810:EXEC_WITHOUT_EXEC": "hint", "CV0837:SP_XML_TO_XQUERY": "hint", "CV0838:SYSTEM_TYPE_UPPERCASE": "off", "CV0839:GLOBAL_VAR_UPPERCASE": "off", @@ -307,6 +310,10 @@ "SI0735:SET_TO_DECLARE": "hint", "SI0753:DROP_STATEMENTS_INTO_ONE": "hint", "SI0754:ALTER_STATEMENTS_INTO_ONE": "hint", + "SI0845:MULTIPLE_OR_TO_IN": "hint", + "SI0846:MULTIPLE_AND_TO_NOT_IN": "hint", + "SI0847:MULTIPLE_IN_TO_SINGLE": "hint", + "SI0848:MULTIPLE_NOT_IN_TO_SINGLE": "hint", "DD0153:FK_MULTIPLE_COL": "hint", "DD0158:TABLE_ALL_COL_NULL": "hint", @@ -331,7 +338,7 @@ "DD0826:TOO_MANY_COLUMNS": "hint", "DD0827:COMPUTED_COL_CONST": "hint", "DD0828:COMPUTED_COL_SYNONYM": "hint", - "DD0829:FK_ON_TMP": "hint", + "DD0829:FK_ON_TMP": "warning", "DD0831:HISTORY_IN_SAME_SCHEMA": "hint", "DD0906:FK_RECURSION": "hint", "DD0908:NONCLUSTERED_IDX_INCLUDES_CLUSTERED": "hint", @@ -344,7 +351,7 @@ "DM0513:STATISTICS_MANAGEMENT": "warning", "DM0515:DROPPING_TABLES": "warning", - "DM0516:TRUNCATING_TABLES": "warning", + "DM0516:TRUNCATING_TABLES": "hint", "DM0517:TABLE_PARTITIONING": "warning", "DM0729:INDEX_MAINTENANCE": "warning", "DM0752:FULLTEXT_CATALOG_MANAGEMENT": "warning", @@ -376,29 +383,29 @@ "CS0105:GOTO": "warning", "CS0107:TMP_NAMED_CONSTRAINT": "warning", "CS0111:VAR_TYPE_LENGTH": "warning", - "CS0112:SELECT_STAR": "warning", - "CS0118:AUTHORIZED_SCHEMA": "warning", + "CS0112:SELECT_STAR": "hint", + "CS0118:AUTHORIZED_SCHEMA": "hint", "CS0125:GRANT_GRANTOR": "warning", "CS0126:BAD_ROWCOUNT_CHECK": "warning", - "CS0128:INDEX_MISDIRECTED": "warning", + "CS0128:INDEX_MISDIRECTED": "hint", "CS0134:RAISERROR_OPTIONS": "warning", "CS0135:BAD_QUERY_HINT": "warning", "CS0136:ISOLATION_UNCOMMITTED": "warning", "CS0138:VIEW_SELECT_STAR_OUTPUT": "warning", - "CS0139:TRIGGER_ORDERING": "warning", + "CS0139:TRIGGER_ORDERING": "hint", "CS0141:DATETIME2_SYSDATETIME": "warning", - "CS0142:PROC_RETURN_VALUE_REQUIRED": "warning", - "CS0143:PROC_RETURN_REQUIRED_AFTER_CATCH": "warning", - "CS0146:SYSNAME_FOR_SCALAR_VAR": "warning", - "CS0147:SYSNAME_FOR_TABLE_COL": "warning", + "CS0142:PROC_RETURN_VALUE_REQUIRED": "hint", + "CS0143:PROC_RETURN_REQUIRED_AFTER_CATCH": "hint", + "CS0146:SYSNAME_FOR_SCALAR_VAR": "hint", + "CS0147:SYSNAME_FOR_TABLE_COL": "hint", "CS0151:COMMIT_IN_CATCH": "warning", "CS0152:GROUPBY_DISTINCT": "warning", "CS0159:NON_ANSI_NULL_COMPARISON": "warning", "CS0160:OUTPUT_UNASSIGNED": "hint", - "CS0161:UNREACHABLE_CODE": "warning", + "CS0161:UNREACHABLE_CODE": "hint", "CS0163:OUTPUT_FROM_TRIGGER": "warning", - "CS0164:PERMISSION_MISDIRECTED": "warning", - "CS0171:COLUMN_FULLY_QUALIFIED": "warning", + "CS0164:PERMISSION_MISDIRECTED": "hint", + "CS0171:COLUMN_FULLY_QUALIFIED": "hint", "CS0172:DISPOSABLE_LOOP": "warning", "CS0175:RAISERROR_VALID_NUMBER": "warning", "CS0176:RAISERROR_VALID_SEVERITY": "warning", @@ -411,21 +418,21 @@ "CS0190:ALWAYS_EMPTY_SOURCE": "hint", "CS0191:NEVER_USED_SOURCE": "hint", "CS0195:CURSOR_LOCAL": "warning", - "CS0196:CURSOR_READONLY": "warning", + "CS0196:CURSOR_READONLY": "hint", "CS0197:CURSOR_COMMAND_ORDER": "warning", "CS0198:TRIGGER_CIRCULAR_ACTION": "hint", "CS0250:REDUNDANT_OPERATOR": "warning", - "CS0266:TABLE_LEVEL_CONSTRAINT_IN_COL": "warning", - "CS0295:ORDER_BY_POSITION": "warning", - "CS0299:COMPLICATED_IIF_TO_CASE": "warning", + "CS0266:TABLE_LEVEL_CONSTRAINT_IN_COL": "hint", + "CS0295:ORDER_BY_POSITION": "hint", + "CS0299:COMPLICATED_IIF_TO_CASE": "hint", "CS0514:SHOWING_STATS": "warning", "CS0520:APP_LOCK": "warning", "CS0521:SYSPROC_RETURN_NOT_CHECKED": "warning", "CS0522:CONTEXT_INFO": "hint", - "CS0523:CODE_ENCRYPTED": "warning", - "CS0524:DATA_ENCRYPTED": "warning", + "CS0523:CODE_ENCRYPTED": "off", + "CS0524:DATA_ENCRYPTED": "off", "CS0710:NULL_ARITHMETICS": "hint", - "CS0723:ALIAS_MISSES_COL_POSITION": "warning", + "CS0723:ALIAS_MISSES_COL_POSITION": "hint", "CS0732:GO_AFTER_PROC": "warning", "CS0737:XACT_ABORT_IN_TRIGGER": "warning", "CS0739:SCHEMA_NEEDS_NAME": "warning", @@ -434,15 +441,15 @@ "CS0746:DATE_FORMAT_CONTROL": "warning", "CS0747:GENERAL_SET_CONTROL": "warning", "CS0748:IDENTITY_INSERT": "hint", - "CS0751:FULLTEXT_SEARCH": "warning", - "CS0756:DEADLOCK_PRIORITY_PRECISE": "warning", + "CS0751:FULLTEXT_SEARCH": "off", + "CS0756:DEADLOCK_PRIORITY_PRECISE": "hint", "CS0776:SPARSE_COL_IN_TMP": "warning", "CS0781:INFORMATION_SCHEMA_SYS_MIX": "warning", "CS0785:RETURN_VALUE_TYPE_MISMATCH": "warning", "CS0786:LINE_NO": "warning", "CS0787:ROWVERSION_MISUSED": "warning", "CS0789:TABLESAMPLE_PREDICT": "warning", - "CS0790:UNEXPECTED_OPENDATASET": "warning", + "CS0790:UNEXPECTED_OPENDATASET": "hint", "CS0793:INVISIBLE_CHAR": "warning", "CS0791:NATIONAL_SYMBOL_LOSS": "hint", "CS0792:BROKEN_UNICODE_LITERAL": "warning", @@ -457,17 +464,24 @@ "CS0834:LITERAL_LOOK_ALIKE_CHAR": "hint", "CS0835:COMMENT_LOOK_ALIKE_CHAR": "hint", "CS0840:CHAR_REMOVED_AND_SEARCHED": "warning", + "CS0841:INVISIBLE_CHAR_IN_IDENTIFIER": "hint", + "CS0842:INVISIBLE_CHAR_IN_COMMENT": "hint", + "CS0843:OUTPUT_MISMATCHES_ACTION": "warning", + "CS0844:CONDITIONS_SAME_DECISIONS": "hint", + "CS0851:FAKE_OUTER_JOIN": "hint", + "CS0852:NON_CORRELATED_JOIN_PREDICATE": "hint", + "CS0853:COMPARISON_LEFT_EQUALS_RIGHT": "hint", "CS0905:VAR_LACKS_PRECISION": "warning", "CS0914:INTERSECT_EXCEPT_BROKEN_BY_LITERAL": "warning", - "CS0917:FORBIDDEN_INSERT_HINTS": "warning", + "CS0917:FORBIDDEN_INSERT_HINTS": "off", "CS0919:UNUSED_PARAMETER": "hint", "CS0920:UNPAIRED_TRAN_STATEMENT": "hint", "CS0921:UNPAIRED_XMLDOC_STATEMENT": "hint", "CS0922:PARAM_EXPECTED_AS_OUTPUT": "warning", "CS0923:SORTED_INSERT": "warning", "CS0924:PARAM_VALUE_IGNORED": "hint", - "CS0930:NAME_REUSED_CURSOR": "warning", - "CS0931:NAME_REUSED_TRANSACTION": "warning", + "CS0930:NAME_REUSED_CURSOR": "hint", + "CS0931:NAME_REUSED_TRANSACTION": "hint", "CS0932:TODO_COMMENT": "hint", "CS0936:VAR_REF_BEFORE_ASSIGNED": "hint", "CS0937:IMPLICIT_STRING_TRUNCATION": "hint", @@ -483,11 +497,11 @@ "CS0975:TRIGGER_SCHEMA_TABLE_SCHEMA": "warning", "CS0976:DROPPING_NOT_OWNED_TABLE": "hint", "CS0977:DROPPING_WITH_NO_CHECK": "hint", - "CS0982:CURSOR_FORWARD_ONLY": "warning", + "CS0982:CURSOR_FORWARD_ONLY": "hint", "CS0984:VAR_SELF_ASSIGN": "warning", "CS0985:VAR_SELF_COMPARE": "warning", "CS0990:SUSPICIOUS_TRAN_NAME": "warning", - "CS0991:WAITFOR_DELAY_USED": "hint", + "CS0991:WAITFOR_DELAY_USED": "warning", "CS0992:WAITFOR_STMT_TIMEOUT": "warning", "CS0993:FLOAT_VARIABLE": "hint", "CS0994:FLOAT_COLUMN": "hint", diff --git a/TeamTools.TSQL.Linter/TeamTools.TSQL.Linter.csproj b/TeamTools.TSQL.Linter/TeamTools.TSQL.Linter.csproj index bbe7add3..88f2eced 100644 --- a/TeamTools.TSQL.Linter/TeamTools.TSQL.Linter.csproj +++ b/TeamTools.TSQL.Linter/TeamTools.TSQL.Linter.csproj @@ -1,7 +1,7 @@  - netstandard2.0;net6.0;net8.0 + netstandard2.0;net6.0;net8.0;net10.0 Library Debug;Release @@ -10,7 +10,7 @@ true ../.nupkgs - readme.md + README.md LICENSE T-SQL;tsql;sqlproj;StaticCodeAnalysis;CodeQuality;TeamTools;static-code-analysis;sql-linter Pluggable linter library for T-SQL files organized in SSDT-project manner @@ -30,7 +30,9 @@ + + @@ -40,7 +42,6 @@ true true - diff --git a/TeamTools.TSQL.Linter/packages.lock.json b/TeamTools.TSQL.Linter/packages.lock.json index 7a87aa89..273584fa 100644 --- a/TeamTools.TSQL.Linter/packages.lock.json +++ b/TeamTools.TSQL.Linter/packages.lock.json @@ -63,6 +63,59 @@ } } }, + "net10.0": { + "Humanizer.Core": { + "type": "Direct", + "requested": "[2.14.1, )", + "resolved": "2.14.1", + "contentHash": "lQKvtaTDOXnoVJ20ibTuSIOf2i0uO0MPbDhd1jm238I+U/2ZnRENj0cktKZhtchBMtCUSRQ5v4xBCUbKNmyVMw==" + }, + "Microsoft.NETCore.Platforms": { + "type": "Direct", + "requested": "[7.0.4, )", + "resolved": "7.0.4", + "contentHash": "yLEHlNN7O5WiND89r42sepgVwy5W/ZoTiFEdJDV7MHR1lW02LL7Nipz2TD5qM/Kx9W3/k3NP+PAP2qUdOm+leg==" + }, + "Microsoft.SqlServer.TransactSql.ScriptDom": { + "type": "Direct", + "requested": "[170.128.0, )", + "resolved": "170.128.0", + "contentHash": "NUN9NZaTafC1fSuLiOmfFVNomCx4E4IzA3vsfmJ7LTSy2H8fQTD01J7x3lpZ5CjA8/mKysSXXSVaMoMOVFAR9A==" + }, + "Newtonsoft.Json": { + "type": "Direct", + "requested": "[13.0.4, )", + "resolved": "13.0.4", + "contentHash": "pdgNNMai3zv51W5aq268sujXUyx7SNdE2bj1wZcWjAQrKMFZV260lbqYop1d2GM67JI1huLRwxo9ZqnfF/lC6A==" + }, + "Roslynator.Analyzers": { + "type": "Direct", + "requested": "[4.14.1, )", + "resolved": "4.14.1", + "contentHash": "yMSjze/xMYDF6PCE60/ULWx0tttNyKAndw2KijNxbKil0FX8nvDeEneDZGma8Uifk17RlfZqIXxf1mmBmhRHjg==" + }, + "StyleCop.Analyzers": { + "type": "Direct", + "requested": "[1.1.118, )", + "resolved": "1.1.118", + "contentHash": "Onx6ovGSqXSK07n/0eM3ZusiNdB6cIlJdabQhWGgJp3Vooy9AaLS/tigeybOJAobqbtggTamoWndz72JscZBvw==" + }, + "teamtools.common.linting": { + "type": "Project", + "dependencies": { + "Microsoft.NETCore.Platforms": "[7.0.4, )", + "Newtonsoft.Json": "[13.0.4, )" + } + }, + "teamtools.tsql.expressionevaluator": { + "type": "Project", + "dependencies": { + "Microsoft.NETCore.Platforms": "[7.0.4, )", + "Microsoft.SqlServer.TransactSql.ScriptDom": "[170.128.0, )", + "TeamTools.Common.Linting": "[1.0.0, )" + } + } + }, "net6.0": { "Humanizer.Core": { "type": "Direct",