Add Jellyfin.CodeAnalysis and analyzers to all projects
Integrated Jellyfin.CodeAnalysis as a project reference across core and test projects. Added centrally managed code analysis and style enforcement packages (IDisposableAnalyzers, Microsoft.CodeAnalysis.BannedApiAnalyzers, SerilogAnalyzer, SmartAnalyzers.MultithreadingAnalyzer, StyleCop.Analyzers) to all affected projects. Updated dependency graphs, asset files, and build scripts to ensure analyzers run during builds, enforcing consistent code quality and style rules throughout the codebase. Removed custom warning properties to rely on analyzer enforcement.
This commit is contained in:
@@ -83,6 +83,9 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"IDisposableAnalyzers/4.0.8": {
|
||||
"type": "package"
|
||||
},
|
||||
"J2N/2.0.0": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
@@ -138,6 +141,13 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"Microsoft.CodeAnalysis.BannedApiAnalyzers/4.14.0": {
|
||||
"type": "package",
|
||||
"build": {
|
||||
"buildTransitive/Microsoft.CodeAnalysis.BannedApiAnalyzers.props": {},
|
||||
"buildTransitive/Microsoft.CodeAnalysis.BannedApiAnalyzers.targets": {}
|
||||
}
|
||||
},
|
||||
"Microsoft.EntityFrameworkCore/11.0.0-preview.1.26104.118": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
@@ -655,6 +665,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"SerilogAnalyzer/0.15.0": {
|
||||
"type": "package"
|
||||
},
|
||||
"SmartAnalyzers.MultithreadingAnalyzer/1.1.31": {
|
||||
"type": "package"
|
||||
},
|
||||
"Std.UriTemplate/2.0.5": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
@@ -664,6 +680,15 @@
|
||||
"lib/net5.0/Std.UriTemplate.dll": {}
|
||||
}
|
||||
},
|
||||
"StyleCop.Analyzers/1.2.0-beta.556": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"StyleCop.Analyzers.Unstable": "1.2.0.556"
|
||||
}
|
||||
},
|
||||
"StyleCop.Analyzers.Unstable/1.2.0.556": {
|
||||
"type": "package"
|
||||
},
|
||||
"System.Drawing.Common/9.0.2": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
@@ -728,7 +753,9 @@
|
||||
"type": "project",
|
||||
"framework": ".NETCoreApp,Version=v11.0",
|
||||
"dependencies": {
|
||||
"Jellyfin.Model": "10.12.0"
|
||||
"Jellyfin.CodeAnalysis": "1.0.0",
|
||||
"Jellyfin.Model": "10.12.0",
|
||||
"Jellyfin.Sdk": "2025.10.21"
|
||||
},
|
||||
"compile": {
|
||||
"bin/placeholder/Jellyfin.Common.dll": {}
|
||||
@@ -745,6 +772,7 @@
|
||||
"framework": ".NETCoreApp,Version=v11.0",
|
||||
"dependencies": {
|
||||
"BitFaster.Caching": "2.5.4",
|
||||
"Jellyfin.CodeAnalysis": "1.0.0",
|
||||
"Jellyfin.Common": "10.12.0",
|
||||
"Jellyfin.MediaEncoding.Keyframes": "10.11.0",
|
||||
"Jellyfin.Model": "10.12.0",
|
||||
@@ -763,7 +791,9 @@
|
||||
"type": "project",
|
||||
"framework": ".NETCoreApp,Version=v11.0",
|
||||
"dependencies": {
|
||||
"Jellyfin.CodeAnalysis": "1.0.0",
|
||||
"Jellyfin.Database.Implementations": "10.11.0",
|
||||
"Jellyfin.Sdk": "2025.10.21",
|
||||
"Microsoft.Extensions.Logging": "11.0.0-preview.1.26104.118"
|
||||
},
|
||||
"compile": {
|
||||
@@ -777,6 +807,7 @@
|
||||
"type": "project",
|
||||
"framework": ".NETCoreApp,Version=v11.0",
|
||||
"dependencies": {
|
||||
"Jellyfin.CodeAnalysis": "1.0.0",
|
||||
"Microsoft.EntityFrameworkCore.Relational": "11.0.0-preview.1.26104.118",
|
||||
"Polly": "8.6.5"
|
||||
},
|
||||
@@ -793,6 +824,7 @@
|
||||
"dependencies": {
|
||||
"Diacritics": "4.1.4",
|
||||
"ICU4N.Transliterator": "60.1.0-alpha.356",
|
||||
"Jellyfin.CodeAnalysis": "1.0.0",
|
||||
"Jellyfin.Sdk": "2025.10.21"
|
||||
},
|
||||
"compile": {
|
||||
@@ -821,6 +853,7 @@
|
||||
"type": "project",
|
||||
"framework": ".NETCoreApp,Version=v11.0",
|
||||
"dependencies": {
|
||||
"Jellyfin.CodeAnalysis": "1.0.0",
|
||||
"Jellyfin.Data": "10.12.0",
|
||||
"Jellyfin.Extensions": "10.12.0",
|
||||
"Jellyfin.Sdk": "2025.10.21"
|
||||
@@ -839,8 +872,10 @@
|
||||
"type": "project",
|
||||
"framework": ".NETCoreApp,Version=v11.0",
|
||||
"dependencies": {
|
||||
"Jellyfin.CodeAnalysis": "1.0.0",
|
||||
"Jellyfin.Common": "10.12.0",
|
||||
"Jellyfin.Model": "10.12.0"
|
||||
"Jellyfin.Model": "10.12.0",
|
||||
"Jellyfin.Sdk": "2025.10.21"
|
||||
},
|
||||
"compile": {
|
||||
"bin/placeholder/Jellyfin.Naming.dll": {}
|
||||
@@ -977,6 +1012,21 @@
|
||||
"unicode-icon-128x128.jpg"
|
||||
]
|
||||
},
|
||||
"IDisposableAnalyzers/4.0.8": {
|
||||
"sha512": "vNi4NMG0CcJyjXxiNDcQ21FwV/whM9o9OEZKD+oP7tuxAqFEzX/x5OhC3OZJqW/w+8GOtCmJPBquYgMWgz0rfQ==",
|
||||
"type": "package",
|
||||
"path": "idisposableanalyzers/4.0.8",
|
||||
"hasTools": true,
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"analyzers/dotnet/cs/IDisposableAnalyzers.dll",
|
||||
"idisposableanalyzers.4.0.8.nupkg.sha512",
|
||||
"idisposableanalyzers.nuspec",
|
||||
"tools/install.ps1",
|
||||
"tools/uninstall.ps1"
|
||||
]
|
||||
},
|
||||
"J2N/2.0.0": {
|
||||
"sha512": "M5bwDajAARZiyqupU+rHQJnsVLxNBOHJ8vKYHd8LcLIb1FgLfzzcJvc31Qo5Xz/GEHFjDF9ScjKL/ks/zRTXuA==",
|
||||
"type": "package",
|
||||
@@ -1043,6 +1093,74 @@
|
||||
"libse.nuspec"
|
||||
]
|
||||
},
|
||||
"Microsoft.CodeAnalysis.BannedApiAnalyzers/4.14.0": {
|
||||
"sha512": "gSWJlDWwmDhtbrEJGiHqvEjz9KthIiFD0qYB8zZ6a7z+xpMSPEtM9yTYELSa58iFWYlzSRqP9FXO6KoT3+ZMtg==",
|
||||
"type": "package",
|
||||
"path": "microsoft.codeanalysis.bannedapianalyzers/4.14.0",
|
||||
"hasTools": true,
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"Icon.png",
|
||||
"ThirdPartyNotices.txt",
|
||||
"analyzers/dotnet/cs/Microsoft.CodeAnalysis.BannedApiAnalyzers.dll",
|
||||
"analyzers/dotnet/cs/Microsoft.CodeAnalysis.CSharp.BannedApiAnalyzers.dll",
|
||||
"analyzers/dotnet/cs/cs/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/de/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/es/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/fr/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/it/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/ja/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/ko/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/pl/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/pt-BR/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/ru/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/tr/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/zh-Hans/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/zh-Hant/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/vb/Microsoft.CodeAnalysis.BannedApiAnalyzers.dll",
|
||||
"analyzers/dotnet/vb/Microsoft.CodeAnalysis.VisualBasic.BannedApiAnalyzers.dll",
|
||||
"analyzers/dotnet/vb/cs/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/vb/de/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/vb/es/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/vb/fr/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/vb/it/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/vb/ja/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/vb/ko/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/vb/pl/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/vb/pt-BR/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/vb/ru/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/vb/tr/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/vb/zh-Hans/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"analyzers/dotnet/vb/zh-Hant/Microsoft.CodeAnalysis.BannedApiAnalyzers.resources.dll",
|
||||
"buildTransitive/Microsoft.CodeAnalysis.BannedApiAnalyzers.props",
|
||||
"buildTransitive/Microsoft.CodeAnalysis.BannedApiAnalyzers.targets",
|
||||
"documentation/Microsoft.CodeAnalysis.BannedApiAnalyzers.md",
|
||||
"documentation/Microsoft.CodeAnalysis.BannedApiAnalyzers.sarif",
|
||||
"editorconfig/AllRulesDefault/.editorconfig",
|
||||
"editorconfig/AllRulesDisabled/.editorconfig",
|
||||
"editorconfig/AllRulesEnabled/.editorconfig",
|
||||
"editorconfig/ApiDesignRulesDefault/.editorconfig",
|
||||
"editorconfig/ApiDesignRulesEnabled/.editorconfig",
|
||||
"editorconfig/DataflowRulesDefault/.editorconfig",
|
||||
"editorconfig/DataflowRulesEnabled/.editorconfig",
|
||||
"editorconfig/PortedFromFxCopRulesDefault/.editorconfig",
|
||||
"editorconfig/PortedFromFxCopRulesEnabled/.editorconfig",
|
||||
"microsoft.codeanalysis.bannedapianalyzers.4.14.0.nupkg.sha512",
|
||||
"microsoft.codeanalysis.bannedapianalyzers.nuspec",
|
||||
"rulesets/AllRulesDefault.ruleset",
|
||||
"rulesets/AllRulesDisabled.ruleset",
|
||||
"rulesets/AllRulesEnabled.ruleset",
|
||||
"rulesets/ApiDesignRulesDefault.ruleset",
|
||||
"rulesets/ApiDesignRulesEnabled.ruleset",
|
||||
"rulesets/DataflowRulesDefault.ruleset",
|
||||
"rulesets/DataflowRulesEnabled.ruleset",
|
||||
"rulesets/PortedFromFxCopRulesDefault.ruleset",
|
||||
"rulesets/PortedFromFxCopRulesEnabled.ruleset",
|
||||
"tools/install.ps1",
|
||||
"tools/uninstall.ps1"
|
||||
]
|
||||
},
|
||||
"Microsoft.EntityFrameworkCore/11.0.0-preview.1.26104.118": {
|
||||
"sha512": "Nox5NDdfvErlYUc9dyMlI7OzyrVQPKBzaq9P+SqMbAOm+gdG5KjtxpIkk7I/6NhcQ85HYaug/tEEnb7RvYdEYA==",
|
||||
"type": "package",
|
||||
@@ -1822,6 +1940,36 @@
|
||||
"polly.core.nuspec"
|
||||
]
|
||||
},
|
||||
"SerilogAnalyzer/0.15.0": {
|
||||
"sha512": "sVpwfls4MfNnwIXLSGCgaUnV+c9kgJ8ia6GsyRcpd4Vs3gLogSDtSYBYrre2K2u/PNMo8GgG09RehwVnze70Tw==",
|
||||
"type": "package",
|
||||
"path": "seriloganalyzer/0.15.0",
|
||||
"hasTools": true,
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"analyzers/dotnet/cs/SerilogAnalyzer.dll",
|
||||
"seriloganalyzer.0.15.0.nupkg.sha512",
|
||||
"seriloganalyzer.nuspec",
|
||||
"tools/install.ps1",
|
||||
"tools/uninstall.ps1"
|
||||
]
|
||||
},
|
||||
"SmartAnalyzers.MultithreadingAnalyzer/1.1.31": {
|
||||
"sha512": "2f2k7bbhDd132ArglCKpzKoWBcp3uzbIFcb4aosnlqIKlfYKDE2HevBVRNVa+LkWFnjXFFWs47Bo96fu8iS//Q==",
|
||||
"type": "package",
|
||||
"path": "smartanalyzers.multithreadinganalyzer/1.1.31",
|
||||
"hasTools": true,
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"analyzers/dotnet/cs/SmartAnalyzers.MultithreadingAnalyzer.dll",
|
||||
"smartanalyzers.multithreadinganalyzer.1.1.31.nupkg.sha512",
|
||||
"smartanalyzers.multithreadinganalyzer.nuspec",
|
||||
"tools/install.ps1",
|
||||
"tools/uninstall.ps1"
|
||||
]
|
||||
},
|
||||
"Std.UriTemplate/2.0.5": {
|
||||
"sha512": "PtqPdWNBObRcDHjyjbgOz2XoCJQaiA+HNDPQve/O7yGCkospfHDCuH9ULVx1msImwHHG+uhpDjiZX7bpLN/cnw==",
|
||||
"type": "package",
|
||||
@@ -1836,6 +1984,45 @@
|
||||
"std.uritemplate.nuspec"
|
||||
]
|
||||
},
|
||||
"StyleCop.Analyzers/1.2.0-beta.556": {
|
||||
"sha512": "llRPgmA1fhC0I0QyFLEcjvtM2239QzKr/tcnbsjArLMJxJlu0AA5G7Fft0OI30pHF3MW63Gf4aSSsjc5m82J1Q==",
|
||||
"type": "package",
|
||||
"path": "stylecop.analyzers/1.2.0-beta.556",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"LICENSE",
|
||||
"THIRD-PARTY-NOTICES.txt",
|
||||
"stylecop.analyzers.1.2.0-beta.556.nupkg.sha512",
|
||||
"stylecop.analyzers.nuspec"
|
||||
]
|
||||
},
|
||||
"StyleCop.Analyzers.Unstable/1.2.0.556": {
|
||||
"sha512": "zvn9Mqs/ox/83cpYPignI8hJEM2A93s2HkHs8HYMOAQW0PkampyoErAiIyKxgTLqbbad29HX/shv/6LGSjPJNQ==",
|
||||
"type": "package",
|
||||
"path": "stylecop.analyzers.unstable/1.2.0.556",
|
||||
"hasTools": true,
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"LICENSE",
|
||||
"THIRD-PARTY-NOTICES.txt",
|
||||
"analyzers/dotnet/cs/StyleCop.Analyzers.CodeFixes.dll",
|
||||
"analyzers/dotnet/cs/StyleCop.Analyzers.dll",
|
||||
"analyzers/dotnet/cs/de-DE/StyleCop.Analyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/en-GB/StyleCop.Analyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/es-MX/StyleCop.Analyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/fr-FR/StyleCop.Analyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/pl-PL/StyleCop.Analyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/pt-BR/StyleCop.Analyzers.resources.dll",
|
||||
"analyzers/dotnet/cs/ru-RU/StyleCop.Analyzers.resources.dll",
|
||||
"rulesets/StyleCopAnalyzersDefault.ruleset",
|
||||
"stylecop.analyzers.unstable.1.2.0.556.nupkg.sha512",
|
||||
"stylecop.analyzers.unstable.nuspec",
|
||||
"tools/install.ps1",
|
||||
"tools/uninstall.ps1"
|
||||
]
|
||||
},
|
||||
"System.Drawing.Common/9.0.2": {
|
||||
"sha512": "JU947wzf8JbBS16Y5EIZzAlyQU+k68D7LRx6y03s2wlhlvLqkt/8uPBrjv2hJnnaJKbdb0GhQ3JZsfYXhrRjyg==",
|
||||
"type": "package",
|
||||
@@ -1960,11 +2147,17 @@
|
||||
"net11.0": [
|
||||
"AsyncKeyedLock >= 8.0.2",
|
||||
"BDInfo >= 0.8.0",
|
||||
"IDisposableAnalyzers >= 4.0.8",
|
||||
"Jellyfin.CodeAnalysis >= 1.0.0",
|
||||
"Jellyfin.Common >= 10.12.0",
|
||||
"Jellyfin.Controller >= 10.12.0",
|
||||
"Jellyfin.Model >= 10.12.0",
|
||||
"Jellyfin.Sdk >= 2025.10.21",
|
||||
"Microsoft.CodeAnalysis.BannedApiAnalyzers >= 4.14.0",
|
||||
"Microsoft.Extensions.Http >= 11.0.0-preview.1.26104.118",
|
||||
"SerilogAnalyzer >= 0.15.0",
|
||||
"SmartAnalyzers.MultithreadingAnalyzer >= 1.1.31",
|
||||
"StyleCop.Analyzers >= 1.2.0-beta.556",
|
||||
"UTF.Unknown >= 2.6.0",
|
||||
"libse >= 4.0.12"
|
||||
]
|
||||
@@ -2011,6 +2204,9 @@
|
||||
},
|
||||
"E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Model\\MediaBrowser.Model.csproj": {
|
||||
"projectPath": "E:\\Projects\\pgsql-jellyfin\\MediaBrowser.Model\\MediaBrowser.Model.csproj"
|
||||
},
|
||||
"E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj": {
|
||||
"projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2046,16 +2242,48 @@
|
||||
"version": "[0.8.0, )",
|
||||
"versionCentrallyManaged": true
|
||||
},
|
||||
"IDisposableAnalyzers": {
|
||||
"include": "Runtime, Build, Native, ContentFiles, Analyzers",
|
||||
"suppressParent": "All",
|
||||
"target": "Package",
|
||||
"version": "[4.0.8, )",
|
||||
"versionCentrallyManaged": true
|
||||
},
|
||||
"Jellyfin.Sdk": {
|
||||
"target": "Package",
|
||||
"version": "[2025.10.21, )",
|
||||
"versionCentrallyManaged": true
|
||||
},
|
||||
"Microsoft.CodeAnalysis.BannedApiAnalyzers": {
|
||||
"include": "Runtime, Build, Native, ContentFiles, Analyzers",
|
||||
"suppressParent": "All",
|
||||
"target": "Package",
|
||||
"version": "[4.14.0, )",
|
||||
"versionCentrallyManaged": true
|
||||
},
|
||||
"Microsoft.Extensions.Http": {
|
||||
"target": "Package",
|
||||
"version": "[11.0.0-preview.1.26104.118, )",
|
||||
"versionCentrallyManaged": true
|
||||
},
|
||||
"SerilogAnalyzer": {
|
||||
"suppressParent": "All",
|
||||
"target": "Package",
|
||||
"version": "[0.15.0, )",
|
||||
"versionCentrallyManaged": true
|
||||
},
|
||||
"SmartAnalyzers.MultithreadingAnalyzer": {
|
||||
"suppressParent": "All",
|
||||
"target": "Package",
|
||||
"version": "[1.1.31, )",
|
||||
"versionCentrallyManaged": true
|
||||
},
|
||||
"StyleCop.Analyzers": {
|
||||
"suppressParent": "All",
|
||||
"target": "Package",
|
||||
"version": "[1.2.0-beta.556, )",
|
||||
"versionCentrallyManaged": true
|
||||
},
|
||||
"UTF.Unknown": {
|
||||
"target": "Package",
|
||||
"version": "[2.6.0, )",
|
||||
|
||||
Reference in New Issue
Block a user