Pārlūkot izejas kodu

Update deps + document startup project

* Fixed the release build
* Documented all public/internal members of Jellyfin.Server
* Enable TreatWarningsAsErrors for debug builds for Jellyfin.Server

This will ensure that any new public/internal members of Jellyfin.Server
are documented
Bond_009 5 gadi atpakaļ
vecāks
revīzija
003238ef5e

+ 1 - 1
Emby.Naming/Emby.Naming.csproj

@@ -23,7 +23,7 @@
 
   <!-- Code analysers-->
   <ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
-    <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.3" />
+    <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.4" />
     <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" />
     <PackageReference Include="SerilogAnalyzer" Version="0.15.0" />
   </ItemGroup>

+ 1 - 1
Emby.Photos/Emby.Photos.csproj

@@ -10,7 +10,7 @@
   </ItemGroup>
 
   <ItemGroup>
-    <PackageReference Include="TagLibSharp" Version="2.2.0-beta" />
+    <PackageReference Include="TagLibSharp" Version="2.2.0" />
   </ItemGroup>
 
   <PropertyGroup>

+ 3 - 7
Emby.Server.Implementations/Emby.Server.Implementations.csproj

@@ -32,7 +32,7 @@
     <PackageReference Include="Microsoft.Extensions.Logging" Version="2.2.0" />
     <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.2.0" />
     <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="2.2.0" />
-    <PackageReference Include="ServiceStack.Text.Core" Version="5.5.0" />
+    <PackageReference Include="ServiceStack.Text.Core" Version="5.6.0" />
     <PackageReference Include="sharpcompress" Version="0.23.0" />
     <PackageReference Include="SQLitePCL.pretty.netstandard" Version="1.0.0" />
   </ItemGroup>
@@ -48,17 +48,13 @@
   </PropertyGroup>
 
   <PropertyGroup>
-    <!-- We need C# 7.3 to compare tuples-->
+    <!-- We need at least C# 7.3 to compare tuples-->
     <LangVersion>latest</LangVersion>
   </PropertyGroup>
 
-  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
-    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
-  </PropertyGroup>
-
   <!-- Code analysers-->
   <ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
-    <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.3" />
+    <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.4" />
     <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" />
     <PackageReference Include="SerilogAnalyzer" Version="0.15.0" />
   </ItemGroup>

+ 17 - 0
Jellyfin.Server/CoreAppHost.cs

@@ -9,8 +9,21 @@ using Microsoft.Extensions.Logging;
 
 namespace Jellyfin.Server
 {
+    /// <summary>
+    /// Implementation of the abstract <see cref="ApplicationHost" /> class.
+    /// </summary>
     public class CoreAppHost : ApplicationHost
     {
+        /// <summary>
+        /// Initializes a new instance of the <see cref="CoreAppHost" /> class.
+        /// </summary>
+        /// <param name="applicationPaths">The <see cref="ServerApplicationPaths" /> to be used by the <see cref="CoreAppHost" />.</param>
+        /// <param name="loggerFactory">The <see cref="ILoggerFactory" /> to be used by the <see cref="CoreAppHost" />.</param>
+        /// <param name="options">The <see cref="StartupOptions" /> to be used by the <see cref="CoreAppHost" />.</param>
+        /// <param name="fileSystem">The <see cref="IFileSystem" /> to be used by the <see cref="CoreAppHost" />.</param>
+        /// <param name="imageEncoder">The <see cref="IImageEncoder" /> to be used by the <see cref="CoreAppHost" />.</param>
+        /// <param name="networkManager">The <see cref="INetworkManager" /> to be used by the <see cref="CoreAppHost" />.</param>
+        /// <param name="configuration">The <see cref="IConfiguration" /> to be used by the <see cref="CoreAppHost" />.</param>
         public CoreAppHost(
             ServerApplicationPaths applicationPaths,
             ILoggerFactory loggerFactory,
@@ -30,15 +43,19 @@ namespace Jellyfin.Server
         {
         }
 
+        /// <inheritdoc />
         public override bool CanSelfRestart => StartupOptions.RestartPath != null;
 
+        /// <inheritdoc />
         protected override void RestartInternal() => Program.Restart();
 
+        /// <inheritdoc />
         protected override IEnumerable<Assembly> GetAssembliesWithPartsInternal()
         {
             yield return typeof(CoreAppHost).Assembly;
         }
 
+        /// <inheritdoc />
         protected override void ShutdownInternal() => Program.Shutdown();
     }
 }

+ 4 - 6
Jellyfin.Server/Jellyfin.Server.csproj

@@ -9,10 +9,8 @@
   </PropertyGroup>
 
   <PropertyGroup>
-    <!-- We need C# 7.1 for async main-->
+    <!-- We need at least C# 7.1 for async main-->
     <LangVersion>latest</LangVersion>
-    <!-- Disable documentation warnings (for now) -->
-    <NoWarn>SA1600;SA1601;SA1629;CS1591</NoWarn>
     <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
   </PropertyGroup>
 
@@ -26,7 +24,7 @@
 
   <!-- Code analysers-->
   <ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
-    <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.3" />
+    <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.4" />
     <PackageReference Include="StyleCop.Analyzers" Version="1.1.118" />
     <PackageReference Include="SerilogAnalyzer" Version="0.15.0" />
   </ItemGroup>
@@ -36,7 +34,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="CommandLineParser" Version="2.5.0" />
+    <PackageReference Include="CommandLineParser" Version="2.6.0" />
     <PackageReference Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="2.2.4" />
     <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.2.0" />
     <PackageReference Include="Serilog.AspNetCore" Version="2.1.1" />
@@ -45,7 +43,7 @@
     <PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
     <PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
     <PackageReference Include="SkiaSharp" Version="1.68.0" />
-    <PackageReference Include="SQLitePCLRaw.bundle_e_sqlite3" Version="1.1.14" />
+    <PackageReference Include="SQLitePCLRaw.bundle_e_sqlite3" Version="2.0.0" />
     <PackageReference Include="SQLitePCLRaw.provider.sqlite3.netstandard11" Version="1.1.14" />
   </ItemGroup>
 

+ 21 - 6
Jellyfin.Server/Program.cs

@@ -28,6 +28,9 @@ using ILogger = Microsoft.Extensions.Logging.ILogger;
 
 namespace Jellyfin.Server
 {
+    /// <summary>
+    /// Class containing the entry point of the application.
+    /// </summary>
     public static class Program
     {
         private static readonly CancellationTokenSource _tokenSource = new CancellationTokenSource();
@@ -35,6 +38,11 @@ namespace Jellyfin.Server
         private static ILogger _logger;
         private static bool _restartOnShutdown;
 
+        /// <summary>
+        /// The entry point of the application.
+        /// </summary>
+        /// <param name="args">The command line arguments passed.</param>
+        /// <returns><see cref="Task" />.</returns>
         public static Task Main(string[] args)
         {
             // For backwards compatibility.
@@ -53,7 +61,10 @@ namespace Jellyfin.Server
                 .MapResult(StartApp, _ => Task.CompletedTask);
         }
 
-        public static void Shutdown()
+        /// <summary>
+        /// Shuts down the application.
+        /// </summary>
+        internal static void Shutdown()
         {
             if (!_tokenSource.IsCancellationRequested)
             {
@@ -61,7 +72,10 @@ namespace Jellyfin.Server
             }
         }
 
-        public static void Restart()
+        /// <summary>
+        /// Restarts the application.
+        /// </summary>
+        internal static void Restart()
         {
             _restartOnShutdown = true;
 
@@ -171,11 +185,12 @@ namespace Jellyfin.Server
         /// <summary>
         /// Create the data, config and log paths from the variety of inputs(command line args,
         /// environment variables) or decide on what default to use. For Windows it's %AppPath%
-        /// for everything else the XDG approach is followed:
-        /// https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
+        /// for everything else the
+        /// <see href="https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html">XDG approach</see>
+        /// is followed.
         /// </summary>
-        /// <param name="options">StartupOptions</param>
-        /// <returns>ServerApplicationPaths</returns>
+        /// <param name="options">The <see cref="StartupOptions" /> for this instance.</param>
+        /// <returns><see cref="ServerApplicationPaths" />.</returns>
         private static ServerApplicationPaths CreateApplicationPaths(StartupOptions options)
         {
             // dataDir

+ 26 - 0
Jellyfin.Server/StartupOptions.cs

@@ -8,36 +8,62 @@ namespace Jellyfin.Server
     /// </summary>
     public class StartupOptions : IStartupOptions
     {
+        /// <summary>
+        /// Gets or sets the path to the data directory.
+        /// </summary>
+        /// <value>The path to the data directory.</value>
         [Option('d', "datadir", Required = false, HelpText = "Path to use for the data folder (database files, etc.).")]
         public string DataDir { get; set; }
 
+        /// <summary>
+        /// Gets or sets the path to the web directory.
+        /// </summary>
+        /// <value>The path to the web directory.</value>
         [Option('w', "webdir", Required = false, HelpText = "Path to the Jellyfin web UI resources.")]
         public string WebDir { get; set; }
 
+        /// <summary>
+        /// Gets or sets the path to the cache directory.
+        /// </summary>
+        /// <value>The path to the cache directory.</value>
         [Option('C', "cachedir", Required = false, HelpText = "Path to use for caching.")]
         public string CacheDir { get; set; }
 
+        /// <summary>
+        /// Gets or sets the path to the config directory.
+        /// </summary>
+        /// <value>The path to the config directory.</value>
         [Option('c', "configdir", Required = false, HelpText = "Path to use for configuration data (user settings and pictures).")]
         public string ConfigDir { get; set; }
 
+        /// <summary>
+        /// Gets or sets the path to the log directory.
+        /// </summary>
+        /// <value>The path to the log directory.</value>
         [Option('l', "logdir", Required = false, HelpText = "Path to use for writing log files.")]
         public string LogDir { get; set; }
 
+        /// <inheritdoc />
         [Option("ffmpeg", Required = false, HelpText = "Path to external FFmpeg executable to use in place of default found in PATH.")]
         public string FFmpegPath { get; set; }
 
+        /// <inheritdoc />
         [Option("service", Required = false, HelpText = "Run as headless service.")]
         public bool IsService { get; set; }
 
+        /// <inheritdoc />
         [Option("noautorunwebapp", Required = false, HelpText = "Run headless if startup wizard is complete.")]
         public bool NoAutoRunWebApp { get; set; }
 
+        /// <inheritdoc />
         [Option("package-name", Required = false, HelpText = "Used when packaging Jellyfin (example, synology).")]
         public string PackageName { get; set; }
 
+        /// <inheritdoc />
         [Option("restartpath", Required = false, HelpText = "Path to restart script.")]
         public string RestartPath { get; set; }
 
+        /// <inheritdoc />
         [Option("restartargs", Required = false, HelpText = "Arguments for restart script.")]
         public string RestartArgs { get; set; }
     }

+ 1 - 1
MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj

@@ -18,7 +18,7 @@
 
   <ItemGroup>
     <PackageReference Include="System.Text.Encoding.CodePages" Version="4.5.1" />
-    <PackageReference Include="UTF.Unknown" Version="1.0.0" />
+    <PackageReference Include="UTF.Unknown" Version="2.0.0" />
   </ItemGroup>
 
 </Project>