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==