diff --git a/.editorconfig b/.editorconfig index 5d0511622..52f9d7eb1 100644 --- a/.editorconfig +++ b/.editorconfig @@ -110,13 +110,13 @@ dotnet_diagnostic.SA1643.severity = none dotnet_diagnostic.SA1648.severity = none dotnet_diagnostic.SA1649.severity = none dotnet_diagnostic.SA1651.severity = none -dotnet_diagnostic.SX1101.severity = warning dotnet_diagnostic.SX1309.severity = warning # Microsoft Analyzers that fail and need to be sorted thru dotnet_diagnostic.ASP0000.severity = suggestion dotnet_diagnostic.CA1000.severity = suggestion dotnet_diagnostic.CA1001.severity = suggestion +dotnet_diagnostic.CA1002.severity = suggestion dotnet_diagnostic.CA1003.severity = suggestion dotnet_diagnostic.CA1008.severity = suggestion dotnet_diagnostic.CA1010.severity = suggestion @@ -163,10 +163,16 @@ dotnet_diagnostic.CA1304.severity = suggestion dotnet_diagnostic.CA1305.severity = suggestion dotnet_diagnostic.CA1307.severity = suggestion dotnet_diagnostic.CA1308.severity = suggestion +dotnet_diagnostic.CA1309.severity = suggestion +dotnet_diagnostic.CA1310.severity = suggestion dotnet_diagnostic.CA1401.severity = suggestion +dotnet_diagnostic.CA1416.severity = suggestion dotnet_diagnostic.CA1507.severity = suggestion +dotnet_diagnostic.CA1508.severity = suggestion dotnet_diagnostic.CA1707.severity = suggestion +dotnet_diagnostic.CA1708.severity = suggestion dotnet_diagnostic.CA1710.severity = suggestion +dotnet_diagnostic.CA1711.severity = suggestion dotnet_diagnostic.CA1712.severity = suggestion dotnet_diagnostic.CA1714.severity = suggestion dotnet_diagnostic.CA1715.severity = suggestion @@ -175,12 +181,14 @@ dotnet_diagnostic.CA1717.severity = suggestion dotnet_diagnostic.CA1720.severity = suggestion dotnet_diagnostic.CA1721.severity = suggestion dotnet_diagnostic.CA1724.severity = suggestion +dotnet_diagnostic.CA1725.severity = suggestion dotnet_diagnostic.CA1801.severity = suggestion dotnet_diagnostic.CA1802.severity = suggestion dotnet_diagnostic.CA1805.severity = suggestion dotnet_diagnostic.CA1806.severity = suggestion dotnet_diagnostic.CA1810.severity = suggestion dotnet_diagnostic.CA1812.severity = suggestion +dotnet_diagnostic.CA1813.severity = suggestion dotnet_diagnostic.CA1814.severity = suggestion dotnet_diagnostic.CA1815.severity = suggestion dotnet_diagnostic.CA1816.severity = suggestion @@ -210,6 +218,7 @@ dotnet_diagnostic.CA2101.severity = suggestion dotnet_diagnostic.CA2119.severity = suggestion dotnet_diagnostic.CA2153.severity = suggestion dotnet_diagnostic.CA2200.severity = suggestion +dotnet_diagnostic.CA2201.severity = suggestion dotnet_diagnostic.CA2207.severity = suggestion dotnet_diagnostic.CA2208.severity = suggestion dotnet_diagnostic.CA2211.severity = suggestion @@ -255,6 +264,8 @@ dotnet_diagnostic.CA5374.severity = suggestion dotnet_diagnostic.CA5379.severity = suggestion dotnet_diagnostic.CA5384.severity = suggestion dotnet_diagnostic.CA5385.severity = suggestion +dotnet_diagnostic.CA5392.severity = suggestion +dotnet_diagnostic.CA5394.severity = suggestion dotnet_diagnostic.CA5397.severity = suggestion diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3bc720d70..2cdeb8583 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -13,7 +13,7 @@ variables: buildName: '$(Build.SourceBranchName).$(lidarrVersion)' sentryOrg: 'servarr' sentryUrl: 'https://sentry.servarr.com' - dotnetVersion: '3.1.407' + dotnetVersion: '5.0.202' yarnCacheFolder: $(Pipeline.Workspace)/.yarn trigger: @@ -100,7 +100,7 @@ stages: artifact: '$(osName)Backend' displayName: Publish Backend condition: and(succeeded(), eq(variables['osName'], 'Windows')) - - publish: '$(testsFolder)/netcoreapp3.1/win-x64/publish' + - publish: '$(testsFolder)/net5.0/win-x64/publish' artifact: WindowsCoreTests displayName: Publish Windows Test Package condition: and(succeeded(), eq(variables['osName'], 'Windows')) @@ -108,15 +108,15 @@ stages: artifact: LinuxTests displayName: Publish Linux Mono Test Package condition: and(succeeded(), eq(variables['osName'], 'Windows')) - - publish: '$(testsFolder)/netcoreapp3.1/linux-x64/publish' + - publish: '$(testsFolder)/net5.0/linux-x64/publish' artifact: LinuxCoreTests displayName: Publish Linux Test Package condition: and(succeeded(), eq(variables['osName'], 'Windows')) - - publish: '$(testsFolder)/netcoreapp3.1/linux-musl-x64/publish' + - publish: '$(testsFolder)/net5.0/linux-musl-x64/publish' artifact: LinuxMuslCoreTests displayName: Publish Linux Musl Test Package condition: and(succeeded(), eq(variables['osName'], 'Windows')) - - publish: '$(testsFolder)/netcoreapp3.1/osx-x64/publish' + - publish: '$(testsFolder)/net5.0/osx-x64/publish' artifact: MacCoreTests displayName: Publish MacOS Test Package condition: and(succeeded(), eq(variables['osName'], 'Windows')) @@ -192,12 +192,12 @@ stages: - bash: ./build.sh --packages displayName: Create Packages - bash: | - setup/inno/ISCC.exe setup/lidarr.iss //DFramework=netcoreapp3.1 //DRuntime=win-x86 - cp setup/output/Lidarr.*windows.netcoreapp3.1.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Lidarr.${BUILDNAME}.windows-core-x86-installer.exe + setup/inno/ISCC.exe setup/lidarr.iss //DFramework=net5.0 //DRuntime=win-x86 + cp setup/output/Lidarr.*windows.net5.0.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Lidarr.${BUILDNAME}.windows-core-x86-installer.exe displayName: Create .NET Core Windows installer - bash: | - setup/inno/ISCC.exe setup/lidarr.iss //DFramework=netcoreapp3.1 //DRuntime=win-x64 - cp setup/output/Lidarr.*windows.netcoreapp3.1.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Lidarr.${BUILDNAME}.windows-core-x64-installer.exe + setup/inno/ISCC.exe setup/lidarr.iss //DFramework=net5.0 //DRuntime=win-x64 + cp setup/output/Lidarr.*windows.net5.0.exe ${BUILD_ARTIFACTSTAGINGDIRECTORY}/Lidarr.${BUILDNAME}.windows-core-x64-installer.exe displayName: Create .NET Core Windows installer - publish: $(Build.ArtifactStagingDirectory) artifact: 'WindowsInstaller' @@ -240,21 +240,21 @@ stages: archiveFile: '$(Build.ArtifactStagingDirectory)/Lidarr.$(buildName).windows-core-x64.zip' archiveType: 'zip' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/win-x64/netcoreapp3.1 + rootFolderOrFile: $(artifactsFolder)/win-x64/net5.0 - task: ArchiveFiles@2 displayName: Create Windows x86 Core zip inputs: archiveFile: '$(Build.ArtifactStagingDirectory)/Lidarr.$(buildName).windows-core-x86.zip' archiveType: 'zip' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/win-x86/netcoreapp3.1 + rootFolderOrFile: $(artifactsFolder)/win-x86/net5.0 - task: ArchiveFiles@2 displayName: Create MacOS Core app inputs: archiveFile: '$(Build.ArtifactStagingDirectory)/Lidarr.$(buildName).osx-app-core-x64.zip' archiveType: 'zip' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/macos-app/netcoreapp3.1 + rootFolderOrFile: $(artifactsFolder)/macos-app/net5.0 - task: ArchiveFiles@2 displayName: Create MacOS Core tar inputs: @@ -262,7 +262,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/macos/netcoreapp3.1 + rootFolderOrFile: $(artifactsFolder)/macos/net5.0 - task: ArchiveFiles@2 displayName: Create Linux Mono tar inputs: @@ -278,7 +278,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/linux-x64/netcoreapp3.1 + rootFolderOrFile: $(artifactsFolder)/linux-x64/net5.0 - task: ArchiveFiles@2 displayName: Create Linux Musl Core tar inputs: @@ -286,7 +286,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/linux-musl-x64/netcoreapp3.1 + rootFolderOrFile: $(artifactsFolder)/linux-musl-x64/net5.0 - task: ArchiveFiles@2 displayName: Create ARM32 Linux Core tar inputs: @@ -294,7 +294,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/linux-arm/netcoreapp3.1 + rootFolderOrFile: $(artifactsFolder)/linux-arm/net5.0 - task: ArchiveFiles@2 displayName: Create ARM64 Linux Core tar inputs: @@ -302,7 +302,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/linux-arm64/netcoreapp3.1 + rootFolderOrFile: $(artifactsFolder)/linux-arm64/net5.0 - task: ArchiveFiles@2 displayName: Create ARM64 Linux Musl Core tar inputs: @@ -310,7 +310,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/linux-musl-arm64/netcoreapp3.1 + rootFolderOrFile: $(artifactsFolder)/linux-musl-arm64/net5.0 - publish: $(Build.ArtifactStagingDirectory) artifact: 'Packages' displayName: Publish Packages @@ -839,8 +839,8 @@ stages: sonar.cs.opencover.reportsPaths=$(Build.SourcesDirectory)/CoverageResults/**/coverage.opencover.xml sonar.cs.nunit.reportsPaths=$(Build.SourcesDirectory)/TestResult.xml - bash: | - ./build.sh --backend -f netcoreapp3.1 -r win-x64 - TEST_DIR=_tests/netcoreapp3.1/win-x64/publish/ ./test.sh Windows Unit Coverage + ./build.sh --backend -f net5.0 -r win-x64 + TEST_DIR=_tests/net5.0/win-x64/publish/ ./test.sh Windows Unit Coverage displayName: Coverage Unit Tests - task: SonarCloudAnalyze@1 condition: eq(variables['System.PullRequest.IsFork'], 'False') diff --git a/build.sh b/build.sh index 89167f497..d1a6e0676 100755 --- a/build.sh +++ b/build.sh @@ -120,7 +120,7 @@ PackageLinux() echo "Adding Lidarr.Mono to UpdatePackage" cp $folder/Lidarr.Mono.* $folder/Lidarr.Update - if [ "$framework" = "netcoreapp3.1" ]; then + if [ "$framework" = "net5.0" ]; then cp $folder/Mono.Posix.NETStandard.* $folder/Lidarr.Update cp $folder/libMonoPosixHelper.* $folder/Lidarr.Update fi @@ -152,7 +152,7 @@ PackageMacOS() echo "Adding Lidarr.Mono to UpdatePackage" cp $folder/Lidarr.Mono.* $folder/Lidarr.Update - if [ "$framework" = "netcoreapp3.1" ]; then + if [ "$framework" = "net5.0" ]; then cp $folder/Mono.Posix.NETStandard.* $folder/Lidarr.Update cp $folder/libMonoPosixHelper.* $folder/Lidarr.Update fi @@ -186,12 +186,13 @@ PackageWindows() { local framework="$1" local runtime="$2" - - ProgressStart "Creating Windows Package for $framework" + + ProgressStart "Creating $runtime Package for $framework" local folder=$artifactsFolder/$runtime/$framework/Lidarr PackageFiles "$folder" "$framework" "$runtime" + cp -r $outputFolder/$framework-windows/$runtime/publish/* $folder echo "Removing Lidarr.Mono" rm -f $folder/Lidarr.Mono.* @@ -201,7 +202,7 @@ PackageWindows() echo "Adding Lidarr.Windows to UpdatePackage" cp $folder/Lidarr.Windows.* $folder/Lidarr.Update - ProgressEnd 'Creating Windows Package' + ProgressEnd "Creating $runtime Package for $framework" } Package() @@ -312,11 +313,11 @@ then Build if [[ -z "$RID" || -z "$FRAMEWORK" ]]; then - PackageTests "netcoreapp3.1" "win-x64" - PackageTests "netcoreapp3.1" "win-x86" - PackageTests "netcoreapp3.1" "linux-x64" - PackageTests "netcoreapp3.1" "linux-musl-x64" - PackageTests "netcoreapp3.1" "osx-x64" + PackageTests "net5.0" "win-x64" + PackageTests "net5.0" "win-x86" + PackageTests "net5.0" "linux-x64" + PackageTests "net5.0" "linux-musl-x64" + PackageTests "net5.0" "osx-x64" PackageTests "net462" "linux-x64" else PackageTests "$FRAMEWORK" "$RID" @@ -345,14 +346,14 @@ then if [[ -z "$RID" || -z "$FRAMEWORK" ]]; then - Package "netcoreapp3.1" "win-x64" - Package "netcoreapp3.1" "win-x86" - Package "netcoreapp3.1" "linux-x64" - Package "netcoreapp3.1" "linux-musl-x64" - Package "netcoreapp3.1" "linux-arm64" - Package "netcoreapp3.1" "linux-musl-arm64" - Package "netcoreapp3.1" "linux-arm" - Package "netcoreapp3.1" "osx-x64" + Package "net5.0" "win-x64" + Package "net5.0" "win-x86" + Package "net5.0" "linux-x64" + Package "net5.0" "linux-musl-x64" + Package "net5.0" "linux-arm64" + Package "net5.0" "linux-musl-arm64" + Package "net5.0" "linux-arm" + Package "net5.0" "osx-x64" Package "net462" "linux-x64" else Package "$FRAMEWORK" "$RID" diff --git a/src/Directory.Build.props b/src/Directory.Build.props index feb6d40ca..cfb18772f 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -63,6 +63,7 @@ 10.0.0.* $(Configuration)-dev + en false false @@ -94,10 +95,6 @@ - - all - runtime; build; native; contentfiles; analyzers - all runtime; build; native; contentfiles; analyzers diff --git a/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj b/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj index fbd225681..5e76f195d 100644 --- a/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj +++ b/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj @@ -1,6 +1,6 @@  - net462;netcoreapp3.1 + net462;net5.0 @@ -15,7 +15,7 @@ - + diff --git a/src/Lidarr.Http/Lidarr.Http.csproj b/src/Lidarr.Http/Lidarr.Http.csproj index 790c551da..856123f0e 100644 --- a/src/Lidarr.Http/Lidarr.Http.csproj +++ b/src/Lidarr.Http/Lidarr.Http.csproj @@ -1,6 +1,6 @@  - net462;netcoreapp3.1 + net462;net5.0 @@ -8,7 +8,7 @@ - + diff --git a/src/NzbDrone.Api.Test/Lidarr.Api.Test.csproj b/src/NzbDrone.Api.Test/Lidarr.Api.Test.csproj index 2978a1f00..1056c578b 100644 --- a/src/NzbDrone.Api.Test/Lidarr.Api.Test.csproj +++ b/src/NzbDrone.Api.Test/Lidarr.Api.Test.csproj @@ -1,16 +1,16 @@  - net462;netcoreapp3.1 + net462;net5.0 - - - - + + + + - - + + diff --git a/src/NzbDrone.Automation.Test/Lidarr.Automation.Test.csproj b/src/NzbDrone.Automation.Test/Lidarr.Automation.Test.csproj index 051a16ab3..77341ed97 100644 --- a/src/NzbDrone.Automation.Test/Lidarr.Automation.Test.csproj +++ b/src/NzbDrone.Automation.Test/Lidarr.Automation.Test.csproj @@ -1,12 +1,12 @@  - net462;netcoreapp3.1 + net462;net5.0 - - - - + + + + diff --git a/src/NzbDrone.Common.Test/Lidarr.Common.Test.csproj b/src/NzbDrone.Common.Test/Lidarr.Common.Test.csproj index bab0713fe..49b907723 100644 --- a/src/NzbDrone.Common.Test/Lidarr.Common.Test.csproj +++ b/src/NzbDrone.Common.Test/Lidarr.Common.Test.csproj @@ -1,15 +1,15 @@  - net462;netcoreapp3.1 + net462;net5.0 - - - - + + + + - - + + diff --git a/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs b/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs index e85fb27a9..564a3977c 100644 --- a/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs +++ b/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs @@ -7,10 +7,6 @@ using System.ServiceProcess; using NLog; using NzbDrone.Common.Processes; -#if NETCOREAPP -using Microsoft.Extensions.Hosting.WindowsServices; -#endif - namespace NzbDrone.Common.EnvironmentInfo { public class RuntimeInfo : IRuntimeInfo @@ -67,12 +63,7 @@ namespace NzbDrone.Common.EnvironmentInfo } } -#if !NETCOREAPP public static bool IsUserInteractive => Environment.UserInteractive; -#else - // Note that Environment.UserInteractive is always true on net core: https://stackoverflow.com/a/57325783 - public static bool IsUserInteractive => OsInfo.IsWindows && !WindowsServiceHelpers.IsWindowsService(); -#endif bool IRuntimeInfo.IsUserInteractive => IsUserInteractive; diff --git a/src/NzbDrone.Common/Lidarr.Common.csproj b/src/NzbDrone.Common/Lidarr.Common.csproj index c61d934ee..58b7b75d9 100644 --- a/src/NzbDrone.Common/Lidarr.Common.csproj +++ b/src/NzbDrone.Common/Lidarr.Common.csproj @@ -1,25 +1,24 @@  - net462;netcoreapp3.1 + net462;net5.0 en ISMUSL - + - + - - - - + + + diff --git a/src/NzbDrone.Common/Processes/PidFileProvider.cs b/src/NzbDrone.Common/Processes/PidFileProvider.cs index a272b1c7b..04c78376f 100644 --- a/src/NzbDrone.Common/Processes/PidFileProvider.cs +++ b/src/NzbDrone.Common/Processes/PidFileProvider.cs @@ -14,13 +14,11 @@ namespace NzbDrone.Common.Processes public class PidFileProvider : IProvidePidFile { private readonly IAppFolderInfo _appFolderInfo; - private readonly IProcessProvider _processProvider; private readonly Logger _logger; - public PidFileProvider(IAppFolderInfo appFolderInfo, IProcessProvider processProvider, Logger logger) + public PidFileProvider(IAppFolderInfo appFolderInfo, Logger logger) { _appFolderInfo = appFolderInfo; - _processProvider = processProvider; _logger = logger; } @@ -34,7 +32,7 @@ namespace NzbDrone.Common.Processes var filename = Path.Combine(_appFolderInfo.AppDataFolder, "lidarr.pid"); try { - File.WriteAllText(filename, _processProvider.GetCurrentProcessId().ToString()); + File.WriteAllText(filename, ProcessProvider.GetCurrentProcessId().ToString()); } catch (Exception ex) { diff --git a/src/NzbDrone.Common/Processes/ProcessProvider.cs b/src/NzbDrone.Common/Processes/ProcessProvider.cs index 6c3acac5c..f83f9470d 100644 --- a/src/NzbDrone.Common/Processes/ProcessProvider.cs +++ b/src/NzbDrone.Common/Processes/ProcessProvider.cs @@ -14,7 +14,6 @@ namespace NzbDrone.Common.Processes { public interface IProcessProvider { - int GetCurrentProcessId(); ProcessInfo GetCurrentProcess(); ProcessInfo GetProcessById(int id); List FindProcessByName(string name); @@ -43,9 +42,13 @@ namespace NzbDrone.Common.Processes _logger = logger; } - public int GetCurrentProcessId() + public static int GetCurrentProcessId() { +#if NETCOREAPP + return Environment.ProcessId; +#else return Process.GetCurrentProcess().Id; +#endif } public ProcessInfo GetCurrentProcess() @@ -257,7 +260,7 @@ namespace NzbDrone.Common.Processes process.Refresh(); - if (process.Id != Process.GetCurrentProcess().Id && process.HasExited) + if (process.Id != GetCurrentProcessId() && process.HasExited) { _logger.Debug("Process has already exited"); return; @@ -278,7 +281,7 @@ namespace NzbDrone.Common.Processes foreach (var processInfo in processes) { - if (processInfo.Id == Process.GetCurrentProcess().Id) + if (processInfo.Id == GetCurrentProcessId()) { _logger.Debug("Tried killing own process, skipping: {0} [{1}]", processInfo.Id, processInfo.ProcessName); continue; @@ -312,7 +315,7 @@ namespace NzbDrone.Common.Processes processInfo.Name = process.ProcessName; processInfo.StartPath = GetExeFileName(process); - if (process.Id != Process.GetCurrentProcess().Id && process.HasExited) + if (process.Id != GetCurrentProcessId() && process.HasExited) { processInfo = null; } diff --git a/src/NzbDrone.Console/Lidarr.Console.csproj b/src/NzbDrone.Console/Lidarr.Console.csproj index 9e0c5da02..794a4bed1 100644 --- a/src/NzbDrone.Console/Lidarr.Console.csproj +++ b/src/NzbDrone.Console/Lidarr.Console.csproj @@ -1,7 +1,7 @@  Exe - net462;netcoreapp3.1 + net462;net5.0 ..\NzbDrone.Host\NzbDrone.ico app.manifest diff --git a/src/NzbDrone.Core.Test/Lidarr.Core.Test.csproj b/src/NzbDrone.Core.Test/Lidarr.Core.Test.csproj index 36f5876dd..73607a9db 100644 --- a/src/NzbDrone.Core.Test/Lidarr.Core.Test.csproj +++ b/src/NzbDrone.Core.Test/Lidarr.Core.Test.csproj @@ -1,18 +1,18 @@  - net462;netcoreapp3.1 + net462;net5.0 - - - - + + + + - - + + diff --git a/src/NzbDrone.Core/Datastore/Converters/EmbeddedDocumentConverter.cs b/src/NzbDrone.Core/Datastore/Converters/EmbeddedDocumentConverter.cs index d3ac86fe6..409e22e7f 100644 --- a/src/NzbDrone.Core/Datastore/Converters/EmbeddedDocumentConverter.cs +++ b/src/NzbDrone.Core/Datastore/Converters/EmbeddedDocumentConverter.cs @@ -14,7 +14,7 @@ namespace NzbDrone.Core.Datastore.Converters var serializerSettings = new JsonSerializerOptions { AllowTrailingCommas = true, - IgnoreNullValues = true, + DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault, PropertyNameCaseInsensitive = true, DictionaryKeyPolicy = JsonNamingPolicy.CamelCase, PropertyNamingPolicy = JsonNamingPolicy.CamelCase, diff --git a/src/NzbDrone.Core/Download/Clients/Vuze/Vuze.cs b/src/NzbDrone.Core/Download/Clients/Vuze/Vuze.cs index ac355204c..b60ea1b1f 100644 --- a/src/NzbDrone.Core/Download/Clients/Vuze/Vuze.cs +++ b/src/NzbDrone.Core/Download/Clients/Vuze/Vuze.cs @@ -35,7 +35,7 @@ namespace NzbDrone.Core.Download.Clients.Vuze // - A multi-file torrent is downloaded in a job folder and 'outputPath' points to that directory directly. // - A single-file torrent is downloaded in the root folder and 'outputPath' poinst to that root folder. // We have to make sure the return value points to the job folder OR file. - if (outputPath == null || outputPath.FileName == torrent.Name || torrent.FileCount > 1) + if (outputPath == default || outputPath.FileName == torrent.Name || torrent.FileCount > 1) { _logger.Trace("Vuze output directory: {0}", outputPath); } diff --git a/src/NzbDrone.Core/Lidarr.Core.csproj b/src/NzbDrone.Core/Lidarr.Core.csproj index cc8d40317..962dc2187 100644 --- a/src/NzbDrone.Core/Lidarr.Core.csproj +++ b/src/NzbDrone.Core/Lidarr.Core.csproj @@ -1,25 +1,23 @@  - net462;netcoreapp3.1 + net462;net5.0 - - + + - - - + - + diff --git a/src/NzbDrone.Core/MediaCover/ImageResizer.cs b/src/NzbDrone.Core/MediaCover/ImageResizer.cs index 4e4301363..9f3dc87c0 100644 --- a/src/NzbDrone.Core/MediaCover/ImageResizer.cs +++ b/src/NzbDrone.Core/MediaCover/ImageResizer.cs @@ -1,9 +1,9 @@ -using NzbDrone.Common.Disk; +using NzbDrone.Common.Disk; using NzbDrone.Common.EnvironmentInfo; using SixLabors.ImageSharp; using SixLabors.ImageSharp.Formats.Jpeg; +using SixLabors.ImageSharp.Memory; using SixLabors.ImageSharp.Processing; -using SixLabors.Memory; namespace NzbDrone.Core.MediaCover { diff --git a/src/NzbDrone.Core/ThingiProvider/ProviderRepository.cs b/src/NzbDrone.Core/ThingiProvider/ProviderRepository.cs index b558daad5..d41c31643 100644 --- a/src/NzbDrone.Core/ThingiProvider/ProviderRepository.cs +++ b/src/NzbDrone.Core/ThingiProvider/ProviderRepository.cs @@ -22,7 +22,7 @@ namespace NzbDrone.Core.ThingiProvider var serializerSettings = new JsonSerializerOptions { AllowTrailingCommas = true, - IgnoreNullValues = true, + DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault, PropertyNameCaseInsensitive = true, DictionaryKeyPolicy = JsonNamingPolicy.CamelCase, PropertyNamingPolicy = JsonNamingPolicy.CamelCase, diff --git a/src/NzbDrone.Host.Test/Lidarr.Host.Test.csproj b/src/NzbDrone.Host.Test/Lidarr.Host.Test.csproj index c91b8effb..4c63058df 100644 --- a/src/NzbDrone.Host.Test/Lidarr.Host.Test.csproj +++ b/src/NzbDrone.Host.Test/Lidarr.Host.Test.csproj @@ -1,15 +1,15 @@  - net462;netcoreapp3.1 + net462;net5.0 - - - - + + + + - - + + diff --git a/src/NzbDrone.Host/Lidarr.Host.csproj b/src/NzbDrone.Host/Lidarr.Host.csproj index a986411f0..e02e1ccb8 100644 --- a/src/NzbDrone.Host/Lidarr.Host.csproj +++ b/src/NzbDrone.Host/Lidarr.Host.csproj @@ -1,6 +1,6 @@  - net462;netcoreapp3.1 + net462;net5.0 Library @@ -9,13 +9,14 @@ - - - + + + + - - + + diff --git a/src/NzbDrone.Integration.Test/Lidarr.Integration.Test.csproj b/src/NzbDrone.Integration.Test/Lidarr.Integration.Test.csproj index c25a6d8b3..b07c1c5cf 100644 --- a/src/NzbDrone.Integration.Test/Lidarr.Integration.Test.csproj +++ b/src/NzbDrone.Integration.Test/Lidarr.Integration.Test.csproj @@ -1,19 +1,19 @@  - net462;netcoreapp3.1 + net462;net5.0 Library - - - - + + + + - - + + diff --git a/src/NzbDrone.Libraries.Test/Lidarr.Libraries.Test.csproj b/src/NzbDrone.Libraries.Test/Lidarr.Libraries.Test.csproj index 10c6ce929..c5fe73360 100644 --- a/src/NzbDrone.Libraries.Test/Lidarr.Libraries.Test.csproj +++ b/src/NzbDrone.Libraries.Test/Lidarr.Libraries.Test.csproj @@ -1,15 +1,15 @@  - net462;netcoreapp3.1 + net462;net5.0 - - - - + + + + - - + + diff --git a/src/NzbDrone.Mono.Test/Lidarr.Mono.Test.csproj b/src/NzbDrone.Mono.Test/Lidarr.Mono.Test.csproj index c49fd3fa7..b1bb4b566 100644 --- a/src/NzbDrone.Mono.Test/Lidarr.Mono.Test.csproj +++ b/src/NzbDrone.Mono.Test/Lidarr.Mono.Test.csproj @@ -1,12 +1,16 @@  - net462;netcoreapp3.1 + net462;net5.0 - - - - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + @@ -15,7 +19,7 @@ The netstandard veresion here doesn't work in net framework See https://github.com/xamarin/XamarinComponents/issues/282 --> - + diff --git a/src/NzbDrone.Mono/Interop/SafeUnixHandle.cs b/src/NzbDrone.Mono/Interop/SafeUnixHandle.cs index 22b8f167d..e8d3ae027 100644 --- a/src/NzbDrone.Mono/Interop/SafeUnixHandle.cs +++ b/src/NzbDrone.Mono/Interop/SafeUnixHandle.cs @@ -1,22 +1,16 @@ using System; -using System.Runtime.ConstrainedExecution; using System.Runtime.InteropServices; -using System.Security.Permissions; using Mono.Unix.Native; namespace NzbDrone.Mono.Interop { - [SecurityPermission(SecurityAction.InheritanceDemand, UnmanagedCode = true)] - [SecurityPermission(SecurityAction.Demand, UnmanagedCode = true)] internal sealed class SafeUnixHandle : SafeHandle { - [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] private SafeUnixHandle() : base(new IntPtr(-1), true) { } - [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] public SafeUnixHandle(int fd) : base(new IntPtr(-1), true) { @@ -28,7 +22,6 @@ namespace NzbDrone.Mono.Interop get { return handle == new IntPtr(-1); } } - [ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail)] protected override bool ReleaseHandle() { return Syscall.close(handle.ToInt32()) != -1; diff --git a/src/NzbDrone.Mono/Lidarr.Mono.csproj b/src/NzbDrone.Mono/Lidarr.Mono.csproj index 62efdb74d..def880e9e 100644 --- a/src/NzbDrone.Mono/Lidarr.Mono.csproj +++ b/src/NzbDrone.Mono/Lidarr.Mono.csproj @@ -1,19 +1,19 @@  - net462;netcoreapp3.1 + net462;net5.0 - + - + - + diff --git a/src/NzbDrone.SignalR/Lidarr.SignalR.csproj b/src/NzbDrone.SignalR/Lidarr.SignalR.csproj index bb147cb04..62098d8c9 100644 --- a/src/NzbDrone.SignalR/Lidarr.SignalR.csproj +++ b/src/NzbDrone.SignalR/Lidarr.SignalR.csproj @@ -1,6 +1,6 @@  - net462;netcoreapp3.1 + net462;net5.0 Library diff --git a/src/NzbDrone.Test.Common/Lidarr.Test.Common.csproj b/src/NzbDrone.Test.Common/Lidarr.Test.Common.csproj index 9cd9cb918..37a60b57f 100644 --- a/src/NzbDrone.Test.Common/Lidarr.Test.Common.csproj +++ b/src/NzbDrone.Test.Common/Lidarr.Test.Common.csproj @@ -1,14 +1,14 @@  - net462;netcoreapp3.1 + net462;net5.0 - - + + diff --git a/src/NzbDrone.Test.Common/NzbDroneRunner.cs b/src/NzbDrone.Test.Common/NzbDroneRunner.cs index 22dc5bd3d..1bb7e066a 100644 --- a/src/NzbDrone.Test.Common/NzbDroneRunner.cs +++ b/src/NzbDrone.Test.Common/NzbDroneRunner.cs @@ -57,7 +57,7 @@ namespace NzbDrone.Test.Common _startupLog = new List(); if (BuildInfo.IsDebug) { - var frameworkFolder = PlatformInfo.IsNetCore ? "netcoreapp3.1" : "net462"; + var frameworkFolder = PlatformInfo.IsNetCore ? "net5.0" : "net462"; Start(Path.Combine(TestContext.CurrentContext.TestDirectory, "..", "..", "_output", frameworkFolder, lidarrConsoleExe)); } else diff --git a/src/NzbDrone.Test.Common/TestBase.cs b/src/NzbDrone.Test.Common/TestBase.cs index 4968cf416..ce14574cb 100644 --- a/src/NzbDrone.Test.Common/TestBase.cs +++ b/src/NzbDrone.Test.Common/TestBase.cs @@ -1,5 +1,4 @@ using System; -using System.Diagnostics; using System.IO; using System.Threading; using FluentAssertions; @@ -9,6 +8,7 @@ using NUnit.Framework; using NzbDrone.Common.Cache; using NzbDrone.Common.EnvironmentInfo; using NzbDrone.Common.Messaging; +using NzbDrone.Common.Processes; using NzbDrone.Core.Messaging.Events; using NzbDrone.Test.Common.AutoMoq; @@ -120,7 +120,7 @@ namespace NzbDrone.Test.Common public static string GetUID() { - return Process.GetCurrentProcess().Id + "_" + DateTime.Now.Ticks + "_" + Interlocked.Increment(ref _nextUid); + return ProcessProvider.GetCurrentProcessId() + "_" + DateTime.Now.Ticks + "_" + Interlocked.Increment(ref _nextUid); } public static void DeleteTempFolder(string folder) diff --git a/src/NzbDrone.Test.Dummy/Lidarr.Test.Dummy.csproj b/src/NzbDrone.Test.Dummy/Lidarr.Test.Dummy.csproj index 548383e0a..c1cce723b 100644 --- a/src/NzbDrone.Test.Dummy/Lidarr.Test.Dummy.csproj +++ b/src/NzbDrone.Test.Dummy/Lidarr.Test.Dummy.csproj @@ -1,6 +1,6 @@  Exe - net462;netcoreapp3.1 + net462;net5.0 diff --git a/src/NzbDrone.Update.Test/Lidarr.Update.Test.csproj b/src/NzbDrone.Update.Test/Lidarr.Update.Test.csproj index 1adcab8f9..c9dc95f47 100644 --- a/src/NzbDrone.Update.Test/Lidarr.Update.Test.csproj +++ b/src/NzbDrone.Update.Test/Lidarr.Update.Test.csproj @@ -1,15 +1,15 @@  - net462;netcoreapp3.1 + net462;net5.0 - - - - + + + + - - + + diff --git a/src/NzbDrone.Update/Lidarr.Update.csproj b/src/NzbDrone.Update/Lidarr.Update.csproj index 00bdb6252..75b5e597f 100644 --- a/src/NzbDrone.Update/Lidarr.Update.csproj +++ b/src/NzbDrone.Update/Lidarr.Update.csproj @@ -1,10 +1,10 @@  WinExe - net462;netcoreapp3.1 + net462;net5.0 - + diff --git a/src/NzbDrone.Windows.Test/Lidarr.Windows.Test.csproj b/src/NzbDrone.Windows.Test/Lidarr.Windows.Test.csproj index 3c3d94d33..4f38dc310 100644 --- a/src/NzbDrone.Windows.Test/Lidarr.Windows.Test.csproj +++ b/src/NzbDrone.Windows.Test/Lidarr.Windows.Test.csproj @@ -1,15 +1,15 @@  - net462;netcoreapp3.1 + net462;net5.0 - - - - + + + + - - + + diff --git a/src/NzbDrone.Windows/Lidarr.Windows.csproj b/src/NzbDrone.Windows/Lidarr.Windows.csproj index 783c59ee0..4ebbbd83d 100644 --- a/src/NzbDrone.Windows/Lidarr.Windows.csproj +++ b/src/NzbDrone.Windows/Lidarr.Windows.csproj @@ -1,10 +1,10 @@  - net462;netcoreapp3.1 + net462;net5.0 - - + + diff --git a/src/NzbDrone/Lidarr.csproj b/src/NzbDrone/Lidarr.csproj index e1bd954aa..243c45e66 100644 --- a/src/NzbDrone/Lidarr.csproj +++ b/src/NzbDrone/Lidarr.csproj @@ -1,8 +1,7 @@  WinExe - net462;netcoreapp3.1 - en + net462;net5.0-windows win-x64;win-x86 true ..\NzbDrone.Host\NzbDrone.ico @@ -10,7 +9,7 @@ true - + diff --git a/src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj b/src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj index e45e49618..25a99b203 100644 --- a/src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj +++ b/src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj @@ -1,9 +1,9 @@  WinExe - net462;netcoreapp3.1 + net462;net5.0 - - + + diff --git a/src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj b/src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj index 10a25654c..25a99b203 100644 --- a/src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj +++ b/src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj @@ -1,9 +1,9 @@  WinExe - net462;netcoreapp3.1 + net462;net5.0 - - + + diff --git a/src/Targets/CopyRuntimes.targets b/src/Targets/CopyRuntimes.targets index 97b218563..2d0edaed3 100644 --- a/src/Targets/CopyRuntimes.targets +++ b/src/Targets/CopyRuntimes.targets @@ -2,10 +2,10 @@ - + - + diff --git a/yarn.lock b/yarn.lock index cec102026..31bff814c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1297,9 +1297,9 @@ integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== "@types/express-serve-static-core@^4.17.9": - version "4.17.21" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.21.tgz#a427278e106bca77b83ad85221eae709a3414d42" - integrity sha512-gwCiEZqW6f7EoR8TTEfalyEhb1zA5jQJnRngr97+3pzMaO1RKoI1w2bw07TK72renMUVWcWS5mLI6rk1NqN0nA== + version "4.17.22" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.22.tgz#e011c55de3f17ddf1161f790042a15c5a218744d" + integrity sha512-WdqmrUsRS4ootGha6tVwk/IVHM1iorU8tGehftQD2NWiPniw/sm7xdJOIlXLwqdInL9wBw/p7oO8vaYEF3NDmA== dependencies: "@types/node" "*" "@types/qs" "*" @@ -2849,9 +2849,9 @@ dot-case@^3.0.4: tslib "^2.0.3" electron-to-chromium@^1.3.723: - version "1.3.759" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.759.tgz#b0d652d376831470a4c230ba721da2427bfb996a" - integrity sha512-nM76xH0t2FBH5iMEZDVc3S/qbdKjGH7TThezxC8k1Q7w7WHvIAyJh8lAe2UamGfdRqBTjHfPDn82LJ0ksCiB9g== + version "1.3.760" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.760.tgz#cf19c9ae9ff23c0ac6bb289e3b71c09b7c3f8de1" + integrity sha512-XPKwjX6pHezJWB4FLVuSil9gGmU6XYl27ahUwEHODXF4KjCEB8RuIT05MkU1au2Tdye57o49yY0uCMK+bwUt+A== element-class@0.2.2: version "0.2.2" @@ -3322,16 +3322,15 @@ fast-glob@^2.2.6: micromatch "^3.1.10" fast-glob@^3.1.1, fast-glob@^3.2.5: - version "3.2.5" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" - integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== + version "3.2.6" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.6.tgz#434dd9529845176ea049acc9343e8282765c6e1a" + integrity sha512-GnLuqj/pvQ7pX8/L4J84nijv6sAnlwvSDpMkJi9i7nPmPxGtRPkBSStfvDW5l6nMdX9VWe+pkKWFTgD+vF2QSQ== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.0" + glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.2" - picomatch "^2.2.1" + micromatch "^4.0.4" fast-json-stable-stringify@^2.0.0: version "2.1.0" @@ -3575,7 +3574,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.0.0, glob-parent@^5.1.0: +glob-parent@^5.0.0, glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -4289,9 +4288,9 @@ jest-worker@^26.6.2: supports-color "^7.0.0" jest-worker@^27.0.2: - version "27.0.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.2.tgz#4ebeb56cef48b3e7514552f80d0d80c0129f0b05" - integrity sha512-EoBdilOTTyOgmHXtw/cPc+ZrCA0KJMrkXzkrPGNwLmnvvlN1nj7MPrxpT7m+otSv2e1TLaVffzDnE/LB14zJMg== + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.0.6.tgz#a5fdb1e14ad34eb228cfe162d9f729cdbfa28aed" + integrity sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA== dependencies: "@types/node" "*" merge-stream "^2.0.0" @@ -4760,7 +4759,7 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== @@ -5363,7 +5362,7 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: +picomatch@^2.0.4, picomatch@^2.2.3: version "2.3.0" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== @@ -6963,9 +6962,9 @@ terser@^4.6.3: source-map-support "~0.5.12" terser@^5.7.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" - integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== + version "5.7.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.1.tgz#2dc7a61009b66bb638305cb2a824763b116bf784" + integrity sha512-b3e+d5JbHAe/JSjwsC3Zn55wsBIM7AsHLjKxT31kGCldgbpFePaFo+PiddtO6uwRZWRw7sPXmAN8dTW61xmnSg== dependencies: commander "^2.20.0" source-map "~0.7.2"