diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index d0fa03d5f..9ec6aae98 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -2,7 +2,7 @@ // README at: https://github.com/devcontainers/templates/tree/main/src/dotnet { "name": "Lidarr", - "image": "mcr.microsoft.com/devcontainers/dotnet:1-6.0", + "image": "mcr.microsoft.com/devcontainers/dotnet:1-8.0", "features": { "ghcr.io/devcontainers/features/node:1": { "nodeGypDependencies": true, diff --git a/.vscode/launch.json b/.vscode/launch.json index 74b8d418b..358007c8f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -10,7 +10,7 @@ "request": "launch", "preLaunchTask": "build dotnet", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/_output/net6.0/Lidarr", + "program": "${workspaceFolder}/_output/net8.0/Lidarr", "args": [], "cwd": "${workspaceFolder}", // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 598f99ea5..27a460d41 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,13 +9,13 @@ Setup guides, [FAQ](/lidarr/faq), the more information we have on the [wiki](htt # Development -Lidarr is written in C# (backend) and JS (frontend). The backend is built on the .NET6 (and _soon_ .NET8) framework, while the frontend utilizes Reactjs. +Lidarr is written in C# (backend) and JS (frontend). The backend is built on the .NET 8 framework, while the frontend utilizes Reactjs. ## Tools required - Visual Studio 2022 or higher is recommended (). The community version is free and works (). -> VS 2022 V17.0 or higher is recommended as it includes the .NET6 SDK +> VS 2022 V17.0 or higher is recommended as it includes the .NET 8 SDK {.is-info} - HTML/Javascript editor of choice (VS Code/Sublime Text/Webstorm/Atom/etc) @@ -24,7 +24,7 @@ Lidarr is written in C# (backend) and JS (frontend). The backend is built on the - **20** (any minor or patch version within this) {.grid-list} -> The Application will **NOT** run on older versions such as `18.x`, `16.x` or any version below 20.0! Due to a dependency issue, it will also not run on `21.x` and is untested on other verisons. +> The Application will **NOT** run on older versions such as `18.x`, `16.x` or any version below 20.0! Due to a dependency issue, it will also not run on `21.x` and is untested on other versions. {.is-warning} - [Yarn](https://yarnpkg.com/getting-started/install) is required to build the frontend @@ -60,7 +60,7 @@ The backend solution is most easily built and ran in Visual Studio or Rider, how #### Visual Studio -> Ensure startup project is set to `Lidarr.Console` and framework to `net6.0` +> Ensure startup project is set to `Lidarr.Console` and framework to `net8.0` {.is-info} 1. First `Build` the solution in Visual Studio, this will ensure all projects are correctly built and dependencies restored diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9b7323724..ad13c4bc4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -15,7 +15,7 @@ variables: buildName: '$(Build.SourceBranchName).$(lidarrVersion)' sentryOrg: 'servarr' sentryUrl: 'https://sentry.servarr.com' - dotnetVersion: '6.0.427' + dotnetVersion: '8.0.405' nodeVersion: '20.X' innoVersion: '6.2.0' windowsImage: 'windows-2022' @@ -122,27 +122,27 @@ stages: artifact: '$(osName)Backend' displayName: Publish Backend condition: and(succeeded(), eq(variables['osName'], 'Windows')) - - publish: '$(testsFolder)/net6.0/win-x64/publish' + - publish: '$(testsFolder)/net8.0/win-x64/publish' artifact: win-x64-tests displayName: Publish win-x64 Test Package condition: and(succeeded(), eq(variables['osName'], 'Windows')) - - publish: '$(testsFolder)/net6.0/linux-x64/publish' + - publish: '$(testsFolder)/net8.0/linux-x64/publish' artifact: linux-x64-tests displayName: Publish linux-x64 Test Package condition: and(succeeded(), eq(variables['osName'], 'Windows')) - - publish: '$(testsFolder)/net6.0/linux-x86/publish' + - publish: '$(testsFolder)/net8.0/linux-x86/publish' artifact: linux-x86-tests displayName: Publish linux-x86 Test Package condition: and(succeeded(), eq(variables['osName'], 'Windows')) - - publish: '$(testsFolder)/net6.0/linux-musl-x64/publish' + - publish: '$(testsFolder)/net8.0/linux-musl-x64/publish' artifact: linux-musl-x64-tests displayName: Publish linux-musl-x64 Test Package condition: and(succeeded(), eq(variables['osName'], 'Windows')) - - publish: '$(testsFolder)/net6.0/freebsd-x64/publish' + - publish: '$(testsFolder)/net8.0/freebsd-x64/publish' artifact: freebsd-x64-tests displayName: Publish freebsd-x64 Test Package condition: and(succeeded(), eq(variables['osName'], 'Windows')) - - publish: '$(testsFolder)/net6.0/osx-x64/publish' + - publish: '$(testsFolder)/net8.0/osx-x64/publish' artifact: osx-x64-tests displayName: Publish osx-x64 Test Package condition: and(succeeded(), eq(variables['osName'], 'Windows')) @@ -260,21 +260,21 @@ stages: archiveFile: '$(Build.ArtifactStagingDirectory)/Lidarr.$(buildName).windows-core-x64.zip' archiveType: 'zip' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/win-x64/net6.0 + rootFolderOrFile: $(artifactsFolder)/win-x64/net8.0 - task: ArchiveFiles@2 displayName: Create win-x86 zip inputs: archiveFile: '$(Build.ArtifactStagingDirectory)/Lidarr.$(buildName).windows-core-x86.zip' archiveType: 'zip' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/win-x86/net6.0 + rootFolderOrFile: $(artifactsFolder)/win-x86/net8.0 - task: ArchiveFiles@2 displayName: Create osx-x64 app inputs: archiveFile: '$(Build.ArtifactStagingDirectory)/Lidarr.$(buildName).osx-app-core-x64.zip' archiveType: 'zip' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/osx-x64-app/net6.0 + rootFolderOrFile: $(artifactsFolder)/osx-x64-app/net8.0 - task: ArchiveFiles@2 displayName: Create osx-x64 tar inputs: @@ -282,14 +282,14 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/osx-x64/net6.0 + rootFolderOrFile: $(artifactsFolder)/osx-x64/net8.0 - task: ArchiveFiles@2 displayName: Create osx-arm64 app inputs: archiveFile: '$(Build.ArtifactStagingDirectory)/Lidarr.$(buildName).osx-app-core-arm64.zip' archiveType: 'zip' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/osx-arm64-app/net6.0 + rootFolderOrFile: $(artifactsFolder)/osx-arm64-app/net8.0 - task: ArchiveFiles@2 displayName: Create osx-arm64 tar inputs: @@ -297,7 +297,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/osx-arm64/net6.0 + rootFolderOrFile: $(artifactsFolder)/osx-arm64/net8.0 - task: ArchiveFiles@2 displayName: Create linux-x64 tar inputs: @@ -305,7 +305,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/linux-x64/net6.0 + rootFolderOrFile: $(artifactsFolder)/linux-x64/net8.0 - task: ArchiveFiles@2 displayName: Create linux-musl-x64 tar inputs: @@ -313,7 +313,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/linux-musl-x64/net6.0 + rootFolderOrFile: $(artifactsFolder)/linux-musl-x64/net8.0 - task: ArchiveFiles@2 displayName: Create linux-x86 tar inputs: @@ -321,7 +321,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/linux-x86/net6.0 + rootFolderOrFile: $(artifactsFolder)/linux-x86/net8.0 - task: ArchiveFiles@2 displayName: Create linux-arm tar inputs: @@ -329,7 +329,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/linux-arm/net6.0 + rootFolderOrFile: $(artifactsFolder)/linux-arm/net8.0 - task: ArchiveFiles@2 displayName: Create linux-musl-arm tar inputs: @@ -337,7 +337,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/linux-musl-arm/net6.0 + rootFolderOrFile: $(artifactsFolder)/linux-musl-arm/net8.0 - task: ArchiveFiles@2 displayName: Create linux-arm64 tar inputs: @@ -345,7 +345,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/linux-arm64/net6.0 + rootFolderOrFile: $(artifactsFolder)/linux-arm64/net8.0 - task: ArchiveFiles@2 displayName: Create linux-musl-arm64 tar inputs: @@ -353,7 +353,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/linux-musl-arm64/net6.0 + rootFolderOrFile: $(artifactsFolder)/linux-musl-arm64/net8.0 - task: ArchiveFiles@2 displayName: Create freebsd-x64 tar inputs: @@ -361,7 +361,7 @@ stages: archiveType: 'tar' tarCompression: 'gz' includeRootFolder: false - rootFolderOrFile: $(artifactsFolder)/freebsd-x64/net6.0 + rootFolderOrFile: $(artifactsFolder)/freebsd-x64/net8.0 - publish: $(Build.ArtifactStagingDirectory) artifact: 'Packages' displayName: Publish Packages @@ -1223,13 +1223,13 @@ stages: sonar.cs.cobertura.reportsPaths=$(Build.SourcesDirectory)/CoverageResults/**/coverage.cobertura.xml sonar.cs.nunit.reportsPaths=$(Build.SourcesDirectory)/TestResult.xml - bash: | - ./build.sh --backend -f net6.0 -r win-x64 - TEST_DIR=_tests/net6.0/win-x64/publish/ ./test.sh Windows Unit Coverage + ./build.sh --backend -f net8.0 -r win-x64 + TEST_DIR=_tests/net8.0/win-x64/publish/ ./test.sh Windows Unit Coverage displayName: Coverage Unit Tests - task: SonarCloudAnalyze@3 condition: eq(variables['System.PullRequest.IsFork'], 'False') displayName: Publish SonarCloud Results - - task: reportgenerator@5.3.11 + - task: reportgenerator@5 displayName: Generate Coverage Report inputs: reports: '$(Build.SourcesDirectory)/CoverageResults/**/coverage.cobertura.xml' @@ -1267,4 +1267,3 @@ stages: DISCORDCHANNELID: $(discordChannelId) DISCORDWEBHOOKKEY: $(discordWebhookKey) DISCORDTHREADID: $(discordThreadId) - diff --git a/build.sh b/build.sh index ca2ab01ef..b8883913b 100755 --- a/build.sh +++ b/build.sh @@ -79,9 +79,9 @@ Build() if [[ -z "$RID" || -z "$FRAMEWORK" ]]; then - dotnet msbuild -restore $slnFile -p:Configuration=Release -p:Platform=$platform -t:PublishAllRids + dotnet msbuild -restore $slnFile -p:SelfContained=true -p:Configuration=Release -p:Platform=$platform -t:PublishAllRids else - dotnet msbuild -restore $slnFile -p:Configuration=Release -p:Platform=$platform -p:RuntimeIdentifiers=$RID -t:PublishAllRids + dotnet msbuild -restore $slnFile -p:SelfContained=true -p:Configuration=Release -p:Platform=$platform -p:RuntimeIdentifiers=$RID -t:PublishAllRids fi ProgressEnd 'Build' @@ -137,7 +137,7 @@ PackageLinux() echo "Adding Lidarr.Mono to UpdatePackage" cp $folder/Lidarr.Mono.* $folder/Lidarr.Update - if [ "$framework" = "net6.0" ]; then + if [ "$framework" = "net8.0" ]; then cp $folder/Mono.Posix.NETStandard.* $folder/Lidarr.Update cp $folder/libMonoPosixHelper.* $folder/Lidarr.Update fi @@ -165,7 +165,7 @@ PackageMacOS() echo "Adding Lidarr.Mono to UpdatePackage" cp $folder/Lidarr.Mono.* $folder/Lidarr.Update - if [ "$framework" = "net6.0" ]; then + if [ "$framework" = "net8.0" ]; then cp $folder/Mono.Posix.NETStandard.* $folder/Lidarr.Update cp $folder/libMonoPosixHelper.* $folder/Lidarr.Update fi @@ -377,15 +377,15 @@ then Build if [[ -z "$RID" || -z "$FRAMEWORK" ]]; then - PackageTests "net6.0" "win-x64" - PackageTests "net6.0" "win-x86" - PackageTests "net6.0" "linux-x64" - PackageTests "net6.0" "linux-musl-x64" - PackageTests "net6.0" "osx-x64" + PackageTests "net8.0" "win-x64" + PackageTests "net8.0" "win-x86" + PackageTests "net8.0" "linux-x64" + PackageTests "net8.0" "linux-musl-x64" + PackageTests "net8.0" "osx-x64" if [ "$ENABLE_EXTRA_PLATFORMS" = "YES" ]; then - PackageTests "net6.0" "freebsd-x64" - PackageTests "net6.0" "linux-x86" + PackageTests "net8.0" "freebsd-x64" + PackageTests "net8.0" "linux-x86" fi else PackageTests "$FRAMEWORK" "$RID" @@ -413,20 +413,20 @@ then if [[ -z "$RID" || -z "$FRAMEWORK" ]]; then - Package "net6.0" "win-x64" - Package "net6.0" "win-x86" - Package "net6.0" "linux-x64" - Package "net6.0" "linux-musl-x64" - Package "net6.0" "linux-arm64" - Package "net6.0" "linux-musl-arm64" - Package "net6.0" "linux-arm" - Package "net6.0" "linux-musl-arm" - Package "net6.0" "osx-x64" - Package "net6.0" "osx-arm64" + Package "net8.0" "win-x64" + Package "net8.0" "win-x86" + Package "net8.0" "linux-x64" + Package "net8.0" "linux-musl-x64" + Package "net8.0" "linux-arm64" + Package "net8.0" "linux-musl-arm64" + Package "net8.0" "linux-arm" + Package "net8.0" "linux-musl-arm" + Package "net8.0" "osx-x64" + Package "net8.0" "osx-arm64" if [ "$ENABLE_EXTRA_PLATFORMS" = "YES" ]; then - Package "net6.0" "freebsd-x64" - Package "net6.0" "linux-x86" + Package "net8.0" "freebsd-x64" + Package "net8.0" "linux-x86" fi else Package "$FRAMEWORK" "$RID" @@ -436,7 +436,7 @@ fi if [ "$INSTALLER" = "YES" ]; then InstallInno - BuildInstaller "net6.0" "win-x64" - BuildInstaller "net6.0" "win-x86" + BuildInstaller "net8.0" "win-x64" + BuildInstaller "net8.0" "win-x86" RemoveInno fi diff --git a/docs.sh b/docs.sh index a44dc90ce..86ba5a402 100644 --- a/docs.sh +++ b/docs.sh @@ -1,7 +1,7 @@ #!/bin/bash set -e -FRAMEWORK="net6.0" +FRAMEWORK="net8.0" PLATFORM=$1 ARCHITECTURE="${2:-x64}" @@ -38,7 +38,7 @@ dotnet clean $slnFile -c Release dotnet msbuild -restore $slnFile -p:Configuration=Debug -p:Platform=$platform -p:RuntimeIdentifiers=$RUNTIME -t:PublishAllRids dotnet new tool-manifest -dotnet tool install --version 6.6.2 Swashbuckle.AspNetCore.Cli +dotnet tool install --version 9.0.6 Swashbuckle.AspNetCore.Cli dotnet tool run swagger tofile --output ./src/Lidarr.Api.V1/openapi.json "$outputFolder/$FRAMEWORK/$RUNTIME/$application" v1 & diff --git a/global.json b/global.json new file mode 100644 index 000000000..13d185e52 --- /dev/null +++ b/global.json @@ -0,0 +1,5 @@ +{ + "sdk": { + "version": "8.0.405" + } +} diff --git a/package.json b/package.json index 2f410d7d0..8d8be81c1 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "@fortawesome/free-solid-svg-icons": "6.7.1", "@fortawesome/react-fontawesome": "0.2.2", "@juggle/resize-observer": "3.4.0", - "@microsoft/signalr": "6.0.25", + "@microsoft/signalr": "8.0.17", "@sentry/browser": "7.119.1", "@sentry/integrations": "7.119.1", "@types/node": "20.16.11", diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 181001ca6..56eb42b2d 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -99,13 +99,6 @@ $(MSBuildProjectName.Replace('Lidarr','NzbDrone')) - - - - - - - diff --git a/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj b/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj index 187fa86ff..2e1e9d841 100644 --- a/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj +++ b/src/Lidarr.Api.V1/Lidarr.Api.V1.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 @@ -9,7 +9,7 @@ - + diff --git a/src/Lidarr.Api.V1/Queue/QueueController.cs b/src/Lidarr.Api.V1/Queue/QueueController.cs index 8123f30fe..a7877dbfe 100644 --- a/src/Lidarr.Api.V1/Queue/QueueController.cs +++ b/src/Lidarr.Api.V1/Queue/QueueController.cs @@ -147,8 +147,8 @@ public PagingResource GetQueue([FromQuery] PagingRequestResource var filteredQueue = includeUnknownArtistItems ? queue : queue.Where(q => q.Artist != null); var pending = _pendingReleaseService.GetPendingQueue(); - var hasArtistIdFilter = artistIds.Any(); - var hasQualityFilter = quality.Any(); + var hasArtistIdFilter = artistIds is { Count: > 0 }; + var hasQualityFilter = quality is { Count: > 0 }; var fullQueue = filteredQueue.Concat(pending).Where(q => { diff --git a/src/Lidarr.Http/Authentication/ApiKeyAuthenticationHandler.cs b/src/Lidarr.Http/Authentication/ApiKeyAuthenticationHandler.cs index 6213a3e9d..c4464a76b 100644 --- a/src/Lidarr.Http/Authentication/ApiKeyAuthenticationHandler.cs +++ b/src/Lidarr.Http/Authentication/ApiKeyAuthenticationHandler.cs @@ -27,9 +27,8 @@ public class ApiKeyAuthenticationHandler : AuthenticationHandler options, ILoggerFactory logger, UrlEncoder encoder, - ISystemClock clock, IConfigFileProvider config) - : base(options, logger, encoder, clock) + : base(options, logger, encoder) { _apiKey = config.ApiKey; } diff --git a/src/Lidarr.Http/Authentication/BasicAuthenticationHandler.cs b/src/Lidarr.Http/Authentication/BasicAuthenticationHandler.cs index 5e2d6502a..3d636b5e7 100644 --- a/src/Lidarr.Http/Authentication/BasicAuthenticationHandler.cs +++ b/src/Lidarr.Http/Authentication/BasicAuthenticationHandler.cs @@ -20,9 +20,8 @@ public class BasicAuthenticationHandler : AuthenticationHandler options, ILoggerFactory logger, - UrlEncoder encoder, - ISystemClock clock) - : base(options, logger, encoder, clock) + UrlEncoder encoder) + : base(options, logger, encoder) { _authService = authService; } @@ -71,7 +70,7 @@ protected override Task HandleAuthenticateAsync() protected override Task HandleChallengeAsync(AuthenticationProperties properties) { - Response.Headers.Add("WWW-Authenticate", $"Basic realm=\"{BuildInfo.AppName}\""); + Response.Headers["WWW-Authenticate"] = $"Basic realm=\"{BuildInfo.AppName}\""; Response.StatusCode = 401; return Task.CompletedTask; } diff --git a/src/Lidarr.Http/Authentication/NoAuthenticationHandler.cs b/src/Lidarr.Http/Authentication/NoAuthenticationHandler.cs index afbf8c717..6991a8062 100644 --- a/src/Lidarr.Http/Authentication/NoAuthenticationHandler.cs +++ b/src/Lidarr.Http/Authentication/NoAuthenticationHandler.cs @@ -13,9 +13,8 @@ public class NoAuthenticationHandler : AuthenticationHandler options, ILoggerFactory logger, - UrlEncoder encoder, - ISystemClock clock) - : base(options, logger, encoder, clock) + UrlEncoder encoder) + : base(options, logger, encoder) { } diff --git a/src/Lidarr.Http/Lidarr.Http.csproj b/src/Lidarr.Http/Lidarr.Http.csproj index 103ca71ea..fa0b46915 100644 --- a/src/Lidarr.Http/Lidarr.Http.csproj +++ b/src/Lidarr.Http/Lidarr.Http.csproj @@ -1,10 +1,10 @@  - net6.0 + net8.0 - + diff --git a/src/Lidarr.Http/Middleware/VersionMiddleware.cs b/src/Lidarr.Http/Middleware/VersionMiddleware.cs index e99909ed8..50382080e 100644 --- a/src/Lidarr.Http/Middleware/VersionMiddleware.cs +++ b/src/Lidarr.Http/Middleware/VersionMiddleware.cs @@ -22,7 +22,7 @@ public async Task InvokeAsync(HttpContext context) { if (context.Request.IsApiRequest() && !context.Response.Headers.ContainsKey(VERSIONHEADER)) { - context.Response.Headers.Add(VERSIONHEADER, _version); + context.Response.Headers[VERSIONHEADER] = _version; } await _next(context); diff --git a/src/NzbDrone.Api.Test/Lidarr.Api.Test.csproj b/src/NzbDrone.Api.Test/Lidarr.Api.Test.csproj index c14b36844..38457610c 100644 --- a/src/NzbDrone.Api.Test/Lidarr.Api.Test.csproj +++ b/src/NzbDrone.Api.Test/Lidarr.Api.Test.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 diff --git a/src/NzbDrone.Automation.Test/Lidarr.Automation.Test.csproj b/src/NzbDrone.Automation.Test/Lidarr.Automation.Test.csproj index 8204721f3..012b45541 100644 --- a/src/NzbDrone.Automation.Test/Lidarr.Automation.Test.csproj +++ b/src/NzbDrone.Automation.Test/Lidarr.Automation.Test.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 diff --git a/src/NzbDrone.Common.Test/Lidarr.Common.Test.csproj b/src/NzbDrone.Common.Test/Lidarr.Common.Test.csproj index e75403e9f..07487aa58 100644 --- a/src/NzbDrone.Common.Test/Lidarr.Common.Test.csproj +++ b/src/NzbDrone.Common.Test/Lidarr.Common.Test.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 diff --git a/src/NzbDrone.Common/Disk/DestinationAlreadyExistsException.cs b/src/NzbDrone.Common/Disk/DestinationAlreadyExistsException.cs index ffdc36e0e..d96bb22e9 100644 --- a/src/NzbDrone.Common/Disk/DestinationAlreadyExistsException.cs +++ b/src/NzbDrone.Common/Disk/DestinationAlreadyExistsException.cs @@ -1,6 +1,5 @@ using System; using System.IO; -using System.Runtime.Serialization; namespace NzbDrone.Common.Disk { @@ -24,10 +23,5 @@ public DestinationAlreadyExistsException(string message, Exception innerExceptio : base(message, innerException) { } - - protected DestinationAlreadyExistsException(SerializationInfo info, StreamingContext context) - : base(info, context) - { - } } } diff --git a/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs b/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs index b77e1d229..703cd123f 100644 --- a/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs +++ b/src/NzbDrone.Common/EnvironmentInfo/RuntimeInfo.cs @@ -21,7 +21,7 @@ public RuntimeInfo(Logger logger, IHostLifetime hostLifetime = null) IsWindowsService = hostLifetime is WindowsServiceLifetime; IsStarting = true; - // net6.0 will return Lidarr.dll for entry assembly, we need the actual + // net8.0 will return Lidarr.dll for entry assembly, we need the actual // executable name (Lidarr on linux). On mono this will return the location of // the mono executable itself, which is not what we want. var entry = Process.GetCurrentProcess().MainModule; diff --git a/src/NzbDrone.Common/Lidarr.Common.csproj b/src/NzbDrone.Common/Lidarr.Common.csproj index 2e5bacde4..87994cba2 100644 --- a/src/NzbDrone.Common/Lidarr.Common.csproj +++ b/src/NzbDrone.Common/Lidarr.Common.csproj @@ -1,27 +1,27 @@  - net6.0 + net8.0 en ISMUSL - - + + + + - - + - + - - - + + diff --git a/src/NzbDrone.Console/Lidarr.Console.csproj b/src/NzbDrone.Console/Lidarr.Console.csproj index 3d21c1e76..d468f96c6 100644 --- a/src/NzbDrone.Console/Lidarr.Console.csproj +++ b/src/NzbDrone.Console/Lidarr.Console.csproj @@ -1,7 +1,7 @@  Exe - net6.0 + net8.0 ..\NzbDrone.Host\NzbDrone.ico diff --git a/src/NzbDrone.Core.Test/Lidarr.Core.Test.csproj b/src/NzbDrone.Core.Test/Lidarr.Core.Test.csproj index 6e7bffb4d..fd5ceb070 100644 --- a/src/NzbDrone.Core.Test/Lidarr.Core.Test.csproj +++ b/src/NzbDrone.Core.Test/Lidarr.Core.Test.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 diff --git a/src/NzbDrone.Core/Lidarr.Core.csproj b/src/NzbDrone.Core/Lidarr.Core.csproj index 09e56193f..0723b4d34 100644 --- a/src/NzbDrone.Core/Lidarr.Core.csproj +++ b/src/NzbDrone.Core/Lidarr.Core.csproj @@ -1,31 +1,31 @@  - net6.0 + net8.0 - + - - - - - - - - - + + + + + + + + + - + - + diff --git a/src/NzbDrone.Core/MediaFiles/TrackImport/RecycleBinException.cs b/src/NzbDrone.Core/MediaFiles/TrackImport/RecycleBinException.cs index 765ebeb25..619109ff7 100644 --- a/src/NzbDrone.Core/MediaFiles/TrackImport/RecycleBinException.cs +++ b/src/NzbDrone.Core/MediaFiles/TrackImport/RecycleBinException.cs @@ -1,6 +1,5 @@ using System; using System.IO; -using System.Runtime.Serialization; namespace NzbDrone.Core.MediaFiles.TrackImport { @@ -19,10 +18,5 @@ public RecycleBinException(string message, Exception innerException) : base(message, innerException) { } - - protected RecycleBinException(SerializationInfo info, StreamingContext context) - : base(info, context) - { - } } } diff --git a/src/NzbDrone.Core/MediaFiles/TrackImport/RootFolderNotFoundException.cs b/src/NzbDrone.Core/MediaFiles/TrackImport/RootFolderNotFoundException.cs index f865176be..1760f64c9 100644 --- a/src/NzbDrone.Core/MediaFiles/TrackImport/RootFolderNotFoundException.cs +++ b/src/NzbDrone.Core/MediaFiles/TrackImport/RootFolderNotFoundException.cs @@ -1,6 +1,5 @@ using System; using System.IO; -using System.Runtime.Serialization; namespace NzbDrone.Core.MediaFiles.TrackImport { @@ -19,10 +18,5 @@ public RootFolderNotFoundException(string message, Exception innerException) : base(message, innerException) { } - - protected RootFolderNotFoundException(SerializationInfo info, StreamingContext context) - : base(info, context) - { - } } } diff --git a/src/NzbDrone.Host.Test/Lidarr.Host.Test.csproj b/src/NzbDrone.Host.Test/Lidarr.Host.Test.csproj index 898d1921c..ae56b51d5 100644 --- a/src/NzbDrone.Host.Test/Lidarr.Host.Test.csproj +++ b/src/NzbDrone.Host.Test/Lidarr.Host.Test.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 diff --git a/src/NzbDrone.Host/Lidarr.Host.csproj b/src/NzbDrone.Host/Lidarr.Host.csproj index 2209c0b6a..a2e6cdece 100644 --- a/src/NzbDrone.Host/Lidarr.Host.csproj +++ b/src/NzbDrone.Host/Lidarr.Host.csproj @@ -1,12 +1,12 @@  - net6.0 + net8.0 Library - - - + + + diff --git a/src/NzbDrone.Integration.Test/Lidarr.Integration.Test.csproj b/src/NzbDrone.Integration.Test/Lidarr.Integration.Test.csproj index 9673f7333..1f60c0e0a 100644 --- a/src/NzbDrone.Integration.Test/Lidarr.Integration.Test.csproj +++ b/src/NzbDrone.Integration.Test/Lidarr.Integration.Test.csproj @@ -1,10 +1,10 @@  - net6.0 + net8.0 Library - + diff --git a/src/NzbDrone.Libraries.Test/Lidarr.Libraries.Test.csproj b/src/NzbDrone.Libraries.Test/Lidarr.Libraries.Test.csproj index fa22205ae..ddbdf92af 100644 --- a/src/NzbDrone.Libraries.Test/Lidarr.Libraries.Test.csproj +++ b/src/NzbDrone.Libraries.Test/Lidarr.Libraries.Test.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 diff --git a/src/NzbDrone.Mono.Test/Lidarr.Mono.Test.csproj b/src/NzbDrone.Mono.Test/Lidarr.Mono.Test.csproj index 913473a70..a13bba6d7 100644 --- a/src/NzbDrone.Mono.Test/Lidarr.Mono.Test.csproj +++ b/src/NzbDrone.Mono.Test/Lidarr.Mono.Test.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 diff --git a/src/NzbDrone.Mono/Lidarr.Mono.csproj b/src/NzbDrone.Mono/Lidarr.Mono.csproj index 386105c02..498dd4d04 100644 --- a/src/NzbDrone.Mono/Lidarr.Mono.csproj +++ b/src/NzbDrone.Mono/Lidarr.Mono.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 true diff --git a/src/NzbDrone.SignalR/Lidarr.SignalR.csproj b/src/NzbDrone.SignalR/Lidarr.SignalR.csproj index 6d33ae4ae..35b17d971 100644 --- a/src/NzbDrone.SignalR/Lidarr.SignalR.csproj +++ b/src/NzbDrone.SignalR/Lidarr.SignalR.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 Library diff --git a/src/NzbDrone.Test.Common/Lidarr.Test.Common.csproj b/src/NzbDrone.Test.Common/Lidarr.Test.Common.csproj index 89a72dfeb..67d284479 100644 --- a/src/NzbDrone.Test.Common/Lidarr.Test.Common.csproj +++ b/src/NzbDrone.Test.Common/Lidarr.Test.Common.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 diff --git a/src/NzbDrone.Test.Common/NzbDroneRunner.cs b/src/NzbDrone.Test.Common/NzbDroneRunner.cs index a956dff33..18c64d2ed 100644 --- a/src/NzbDrone.Test.Common/NzbDroneRunner.cs +++ b/src/NzbDrone.Test.Common/NzbDroneRunner.cs @@ -58,7 +58,7 @@ public void Start(bool enableAuth = false) _startupLog = new List(); if (BuildInfo.IsDebug) { - Start(Path.Combine(TestContext.CurrentContext.TestDirectory, "..", "..", "_output", "net6.0", lidarrConsoleExe)); + Start(Path.Combine(TestContext.CurrentContext.TestDirectory, "..", "..", "_output", "net8.0", lidarrConsoleExe)); } else { diff --git a/src/NzbDrone.Test.Dummy/Lidarr.Test.Dummy.csproj b/src/NzbDrone.Test.Dummy/Lidarr.Test.Dummy.csproj index 8069c5a84..06ff2e92f 100644 --- a/src/NzbDrone.Test.Dummy/Lidarr.Test.Dummy.csproj +++ b/src/NzbDrone.Test.Dummy/Lidarr.Test.Dummy.csproj @@ -1,6 +1,6 @@  Exe - net6.0 + net8.0 diff --git a/src/NzbDrone.Update.Test/Lidarr.Update.Test.csproj b/src/NzbDrone.Update.Test/Lidarr.Update.Test.csproj index 0a48b3fbe..3e5a4d7a2 100644 --- a/src/NzbDrone.Update.Test/Lidarr.Update.Test.csproj +++ b/src/NzbDrone.Update.Test/Lidarr.Update.Test.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 diff --git a/src/NzbDrone.Update/Lidarr.Update.csproj b/src/NzbDrone.Update/Lidarr.Update.csproj index c23403b1a..acd60e934 100644 --- a/src/NzbDrone.Update/Lidarr.Update.csproj +++ b/src/NzbDrone.Update/Lidarr.Update.csproj @@ -1,7 +1,7 @@  WinExe - net6.0 + net8.0 diff --git a/src/NzbDrone.Windows.Test/Lidarr.Windows.Test.csproj b/src/NzbDrone.Windows.Test/Lidarr.Windows.Test.csproj index 4f27853e7..12d430246 100644 --- a/src/NzbDrone.Windows.Test/Lidarr.Windows.Test.csproj +++ b/src/NzbDrone.Windows.Test/Lidarr.Windows.Test.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 diff --git a/src/NzbDrone.Windows/Lidarr.Windows.csproj b/src/NzbDrone.Windows/Lidarr.Windows.csproj index 4914272c2..bfee1a2e2 100644 --- a/src/NzbDrone.Windows/Lidarr.Windows.csproj +++ b/src/NzbDrone.Windows/Lidarr.Windows.csproj @@ -1,6 +1,6 @@  - net6.0 + net8.0 true diff --git a/src/NzbDrone/Lidarr.csproj b/src/NzbDrone/Lidarr.csproj index 1c2a37522..29d30ee9c 100644 --- a/src/NzbDrone/Lidarr.csproj +++ b/src/NzbDrone/Lidarr.csproj @@ -1,14 +1,14 @@  WinExe - net6.0-windows + net8.0-windows win-x64;win-x86 true ..\NzbDrone.Host\NzbDrone.ico true - + diff --git a/src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj b/src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj index 21e3125e0..79a732c2f 100644 --- a/src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj +++ b/src/ServiceHelpers/ServiceInstall/ServiceInstall.csproj @@ -1,7 +1,7 @@  WinExe - net6.0 + net8.0 diff --git a/src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj b/src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj index 21e3125e0..79a732c2f 100644 --- a/src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj +++ b/src/ServiceHelpers/ServiceUninstall/ServiceUninstall.csproj @@ -1,7 +1,7 @@  WinExe - net6.0 + net8.0 diff --git a/src/Targets/CopyRuntimes.targets b/src/Targets/CopyRuntimes.targets index 2479a6fbc..3b86b1e87 100644 --- a/src/Targets/CopyRuntimes.targets +++ b/src/Targets/CopyRuntimes.targets @@ -2,10 +2,10 @@ - + - + diff --git a/test.sh b/test.sh index 5fbe9374b..c46e18776 100755 --- a/test.sh +++ b/test.sh @@ -37,11 +37,14 @@ fi if [ "$PLATFORM" = "Windows" ]; then mkdir -p "$ProgramData/Lidarr" WHERE="$WHERE&Category!=LINUX" -elif [ "$PLATFORM" = "Linux" ] || [ "$PLATFORM" = "Mac" ] ; then +elif [ "$PLATFORM" = "Linux" ]; then mkdir -p ~/.config/Lidarr WHERE="$WHERE&Category!=WINDOWS" +elif [ "$PLATFORM" = "Mac" ]; then + mkdir -p ~/Library/Application\ Support/Lidarr + WHERE="$WHERE&Category!=WINDOWS" else - echo "Platform must be provided as first arguement: Windows, Linux or Mac" + echo "Platform must be provided as first argument: Windows, Linux or Mac" exit 1 fi diff --git a/yarn.lock b/yarn.lock index f647784b6..1ff6e115e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1246,16 +1246,16 @@ resolved "https://registry.yarnpkg.com/@juggle/resize-observer/-/resize-observer-3.4.0.tgz#08d6c5e20cf7e4cc02fd181c4b0c225cd31dbb60" integrity sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA== -"@microsoft/signalr@6.0.25": - version "6.0.25" - resolved "https://registry.yarnpkg.com/@microsoft/signalr/-/signalr-6.0.25.tgz#009f043066d383e2de41a483bd7e02bfd74d3cf8" - integrity sha512-8AzrpxS+E0yn1tXSlv7+UlURLmSxTQDgbvOT0pGKXjZT7MkhnDP+/GLuk7veRtUjczou/x32d9PHhYlr2NBy6Q== +"@microsoft/signalr@8.0.17": + version "8.0.17" + resolved "https://registry.yarnpkg.com/@microsoft/signalr/-/signalr-8.0.17.tgz#6eac218beac38e4e4ba4a3577ed39ac33711b2ed" + integrity sha512-5pM6xPtKZNJLO0Tq5nQasVyPFwi/WBY3QB5uc/v3dIPTpS1JXQbaXAQAPxFoQ5rTBFE094w8bbqkp17F9ReQvA== dependencies: abort-controller "^3.0.0" - eventsource "^1.0.7" - fetch-cookie "^0.11.0" + eventsource "^2.0.2" + fetch-cookie "^2.0.3" node-fetch "^2.6.7" - ws "^7.4.5" + ws "^7.5.10" "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": version "5.1.1-v1" @@ -3428,10 +3428,10 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -eventsource@^1.0.7: - version "1.1.2" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.2.tgz#bc75ae1c60209e7cb1541231980460343eaea7c2" - integrity sha512-xAH3zWhgO2/3KIniEKYPr8plNSzlGINOUqYj0m0u7AB81iRw8b/3E73W6AuU+6klLbaSFmZnaETQ2lXPfAydrA== +eventsource@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-2.0.2.tgz#76dfcc02930fb2ff339520b6d290da573a9e8508" + integrity sha512-IzUmBGPR3+oUG9dUeXynyNmf91/3zUSJg1lCktzKw47OXuhco54U3r9B7O4XX+Rb1Itm9OZ2b0RkTs10bICOxA== fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" @@ -3488,12 +3488,13 @@ faye-websocket@~0.10.0: dependencies: websocket-driver ">=0.5.1" -fetch-cookie@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/fetch-cookie/-/fetch-cookie-0.11.0.tgz#e046d2abadd0ded5804ce7e2cae06d4331c15407" - integrity sha512-BQm7iZLFhMWFy5CZ/162sAGjBfdNWb7a8LEqqnzsHFhxT/X/SVj/z2t2nu3aJvjlbQkrAlTUApplPRjWyH4mhA== +fetch-cookie@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/fetch-cookie/-/fetch-cookie-2.2.0.tgz#01086b6b5b1c3e08f15ffd8647b02ca100377365" + integrity sha512-h9AgfjURuCgA2+2ISl8GbavpUdR+WGAM2McW/ovn4tVccegp8ZqCKWSBR8uRdM8dDNlx5WdKRWxBYUwteLDCNQ== dependencies: - tough-cookie "^2.3.3 || ^3.0.1 || ^4.0.0" + set-cookie-parser "^2.4.8" + tough-cookie "^4.0.0" file-entry-cache@^6.0.1: version "6.0.1" @@ -6337,6 +6338,11 @@ serialize-javascript@^6.0.1: dependencies: randombytes "^2.1.0" +set-cookie-parser@^2.4.8: + version "2.7.1" + resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz#3016f150072202dfbe90fadee053573cc89d2943" + integrity sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ== + set-function-length@^1.2.1, set-function-length@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" @@ -6875,7 +6881,7 @@ to-space-case@^1.0.0: dependencies: to-no-case "^1.0.0" -"tough-cookie@^2.3.3 || ^3.0.1 || ^4.0.0": +tough-cookie@^4.0.0: version "4.1.4" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== @@ -7414,7 +7420,7 @@ write-file-atomic@^5.0.1: imurmurhash "^0.1.4" signal-exit "^4.0.1" -ws@^7.4.5: +ws@^7.5.10: version "7.5.10" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==