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:
2026-02-23 07:03:54 -05:00
parent 8d39eb77e6
commit ede6904433
181 changed files with 22265 additions and 526 deletions
@@ -3011,6 +3011,7 @@
"type": "project",
"framework": ".NETCoreApp,Version=v11.0",
"dependencies": {
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Controller": "10.12.0",
"Jellyfin.Model": "10.12.0",
"TagLibSharp": "2.3.0"
@@ -3032,6 +3033,7 @@
"Emby.Photos": "1.0.0",
"Ignore": "0.2.1",
"Jellyfin.Api": "1.0.0",
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Common": "10.12.0",
"Jellyfin.Controller": "10.12.0",
"Jellyfin.Database.Implementations": "10.11.0",
@@ -3063,12 +3065,14 @@
"dependencies": {
"CommandLineParser": "2.9.1",
"Emby.Server.Implementations": "1.0.0",
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Database.Implementations": "10.11.0",
"Jellyfin.Database.Providers.Postgres": "1.0.0",
"Jellyfin.Drawing": "1.0.0",
"Jellyfin.Drawing.Skia": "1.0.0",
"Jellyfin.LiveTv": "1.0.0",
"Jellyfin.MediaEncoding.Hls": "1.0.0",
"Jellyfin.Sdk": "2025.10.21",
"Jellyfin.Server.Implementations": "1.0.0",
"Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore": "11.0.0-preview.1.26104.118",
"Morestachio": "5.0.1.631",
@@ -3097,6 +3101,7 @@
"type": "project",
"framework": ".NETCoreApp,Version=v11.0",
"dependencies": {
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Controller": "10.12.0",
"Jellyfin.MediaEncoding.Hls": "1.0.0",
"Jellyfin.Networking": "1.0.0",
@@ -3131,7 +3136,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": {}
@@ -3148,6 +3155,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",
@@ -3166,7 +3174,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": {
@@ -3180,6 +3190,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"
},
@@ -3194,6 +3205,7 @@
"type": "project",
"framework": ".NETCoreApp,Version=v11.0",
"dependencies": {
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Common": "10.12.0",
"Jellyfin.Database.Implementations": "10.11.0",
"Microsoft.EntityFrameworkCore": "11.0.0-preview.1.26104.118",
@@ -3211,6 +3223,7 @@
"type": "project",
"framework": ".NETCoreApp,Version=v11.0",
"dependencies": {
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Common": "10.12.0",
"Jellyfin.Database.Implementations": "10.11.0",
"Microsoft.EntityFrameworkCore.Relational": "11.0.0-preview.1.26104.118",
@@ -3228,6 +3241,7 @@
"framework": ".NETCoreApp,Version=v11.0",
"dependencies": {
"AsyncKeyedLock": "8.0.2",
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Common": "10.12.0",
"Jellyfin.Controller": "10.12.0",
"Jellyfin.Model": "10.12.0",
@@ -3247,6 +3261,7 @@
"BlurHashSharp": "1.4.0-pre.1",
"BlurHashSharp.SkiaSharp": "1.4.0-pre.1",
"HarfBuzzSharp.NativeAssets.Linux": "8.3.1.1",
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Common": "10.12.0",
"Jellyfin.Controller": "10.12.0",
"Jellyfin.Model": "10.12.0",
@@ -3269,6 +3284,7 @@
"dependencies": {
"Diacritics": "4.1.4",
"ICU4N.Transliterator": "60.1.0-alpha.356",
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Sdk": "2025.10.21"
},
"compile": {
@@ -3283,6 +3299,7 @@
"framework": ".NETCoreApp,Version=v11.0",
"dependencies": {
"AsyncKeyedLock": "8.0.2",
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Common": "10.12.0",
"Jellyfin.Controller": "10.12.0",
"Jellyfin.Model": "10.12.0",
@@ -3333,6 +3350,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"
@@ -3351,8 +3369,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": {}
@@ -3365,6 +3385,7 @@
"type": "project",
"framework": ".NETCoreApp,Version=v11.0",
"dependencies": {
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Common": "10.12.0",
"Jellyfin.Controller": "10.12.0"
},
@@ -3380,12 +3401,14 @@
"framework": ".NETCoreApp,Version=v11.0",
"dependencies": {
"AsyncKeyedLock": "8.0.2",
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Controller": "10.12.0",
"Jellyfin.Data": "10.12.0",
"Jellyfin.Database.Implementations": "10.11.0",
"Jellyfin.Database.Providers.Postgres": "1.0.0",
"Jellyfin.Database.Providers.Sqlite": "1.0.0",
"Jellyfin.Model": "10.12.0",
"Jellyfin.Sdk": "2025.10.21",
"Microsoft.EntityFrameworkCore.Relational": "11.0.0-preview.1.26104.118"
},
"compile": {
@@ -3402,6 +3425,7 @@
"AutoFixture": "4.18.1",
"AutoFixture.AutoMoq": "4.18.1",
"AutoFixture.Xunit2": "4.18.1",
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Sdk": "2025.10.21",
"Microsoft.AspNetCore.Mvc.Testing": "11.0.0-preview.1.26104.118",
"Microsoft.NET.Test.Sdk": "18.0.1",
@@ -3422,8 +3446,10 @@
"type": "project",
"framework": ".NETCoreApp,Version=v11.0",
"dependencies": {
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Controller": "10.12.0",
"Jellyfin.Model": "10.12.0"
"Jellyfin.Model": "10.12.0",
"Jellyfin.Sdk": "2025.10.21"
},
"compile": {
"bin/placeholder/MediaBrowser.LocalMetadata.dll": {}
@@ -3438,6 +3464,7 @@
"dependencies": {
"AsyncKeyedLock": "8.0.2",
"BDInfo": "0.8.0",
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Common": "10.12.0",
"Jellyfin.Controller": "10.12.0",
"Jellyfin.Model": "10.12.0",
@@ -3458,6 +3485,7 @@
"framework": ".NETCoreApp,Version=v11.0",
"dependencies": {
"AsyncKeyedLock": "8.0.2",
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Controller": "10.12.0",
"Jellyfin.Model": "10.12.0",
"Jellyfin.Sdk": "2025.10.21",
@@ -3481,8 +3509,10 @@
"type": "project",
"framework": ".NETCoreApp,Version=v11.0",
"dependencies": {
"Jellyfin.CodeAnalysis": "1.0.0",
"Jellyfin.Controller": "10.12.0",
"Jellyfin.Model": "10.12.0"
"Jellyfin.Model": "10.12.0",
"Jellyfin.Sdk": "2025.10.21"
},
"compile": {
"bin/placeholder/MediaBrowser.XbmcMetadata.dll": {}
@@ -7816,6 +7846,7 @@
"AutoFixture >= 4.18.1",
"AutoFixture.AutoMoq >= 4.18.1",
"Emby.Server.Implementations >= 1.0.0",
"Jellyfin.CodeAnalysis >= 1.0.0",
"Jellyfin.Database.Implementations >= 10.11.0",
"Jellyfin.Sdk >= 2025.10.21",
"Jellyfin.Server.Implementations >= 1.0.0",
@@ -7872,6 +7903,9 @@
"E:\\Projects\\pgsql-jellyfin\\Jellyfin.Server.Implementations\\Jellyfin.Server.Implementations.csproj": {
"projectPath": "E:\\Projects\\pgsql-jellyfin\\Jellyfin.Server.Implementations\\Jellyfin.Server.Implementations.csproj"
},
"E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj": {
"projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.CodeAnalysis\\Jellyfin.CodeAnalysis.csproj"
},
"E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj": {
"projectPath": "E:\\Projects\\pgsql-jellyfin\\src\\Jellyfin.Database\\Jellyfin.Database.Implementations\\Jellyfin.Database.Implementations.csproj"
},
@@ -1,6 +1,6 @@
{
"version": 2,
"dgSpecHash": "piiIPUfU31k=",
"dgSpecHash": "wBLLsvDPe+0=",
"success": true,
"projectFilePath": "E:\\Projects\\pgsql-jellyfin\\tests\\Jellyfin.Server.Implementations.Tests\\Jellyfin.Server.Implementations.Tests.csproj",
"expectedPackageFiles": [