From dacb407bec655c04df8a2a83e883a55de1223e57 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 7 Nov 2024 18:41:26 +0000
Subject: Update skiasharp monorepo
---
Directory.Packages.props | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Directory.Packages.props b/Directory.Packages.props
index eddc53f9e..006f19cbb 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -17,7 +17,7 @@
-
+
@@ -66,9 +66,9 @@
-
-
-
+
+
+
--
cgit v1.2.3
From dc90b0edb91585e61b2f70c8a95ca59d7ad9213e Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Tue, 12 Nov 2024 20:06:37 +0000
Subject: Update Microsoft to 8.0.11
---
Directory.Packages.props | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/Directory.Packages.props b/Directory.Packages.props
index a27b600df..0f77cdd2b 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -24,14 +24,14 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -40,8 +40,8 @@
-
-
+
+
--
cgit v1.2.3
From 16bc1ebc8b390f41d3f706050bf73a1e1f948378 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Wed, 13 Nov 2024 18:05:16 +0000
Subject: Update dotnet monorepo
---
.config/dotnet-tools.json | 2 +-
global.json | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index a3847dcdf..02afa3f07 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"dotnet-ef": {
- "version": "8.0.8",
+ "version": "8.0.11",
"commands": [
"dotnet-ef"
]
diff --git a/global.json b/global.json
index dbf2988d5..c9b932026 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "8.0.0",
+ "version": "8.0.404",
"rollForward": "latestMinor"
}
}
--
cgit v1.2.3
From 023838f3c89ba12a36d06004cff33d76dd7d71fa Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Thu, 14 Nov 2024 15:58:14 +0000
Subject: Update CI dependencies
---
.github/workflows/ci-codeql-analysis.yml | 6 +++---
.github/workflows/ci-tests.yml | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/ci-codeql-analysis.yml b/.github/workflows/ci-codeql-analysis.yml
index 9ff679995..d6983c683 100644
--- a/.github/workflows/ci-codeql-analysis.yml
+++ b/.github/workflows/ci-codeql-analysis.yml
@@ -27,11 +27,11 @@ jobs:
dotnet-version: '8.0.x'
- name: Initialize CodeQL
- uses: github/codeql-action/init@4f3212b61783c3c68e8309a0f18a699764811cda # v3.27.1
+ uses: github/codeql-action/init@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
with:
languages: ${{ matrix.language }}
queries: +security-extended
- name: Autobuild
- uses: github/codeql-action/autobuild@4f3212b61783c3c68e8309a0f18a699764811cda # v3.27.1
+ uses: github/codeql-action/autobuild@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@4f3212b61783c3c68e8309a0f18a699764811cda # v3.27.1
+ uses: github/codeql-action/analyze@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml
index 54fb762e6..aee3ebbf7 100644
--- a/.github/workflows/ci-tests.yml
+++ b/.github/workflows/ci-tests.yml
@@ -34,7 +34,7 @@ jobs:
--verbosity minimal
- name: Merge code coverage results
- uses: danielpalme/ReportGenerator-GitHub-Action@62f9e70ab348d56eee76d446b4db903a85ab0ea8 # v5.3.11
+ uses: danielpalme/ReportGenerator-GitHub-Action@810356ce07a94200154301fb73d878e327b2dd58 # v5.4.1
with:
reports: "**/coverage.cobertura.xml"
targetdir: "merged/"
--
cgit v1.2.3
From ae721542ccb867363db1743dbe38b1c5804cd70c Mon Sep 17 00:00:00 2001
From: Johan Dixelius
Date: Thu, 14 Nov 2024 15:53:32 +0000
Subject: Translated using Weblate (Swedish) Translation: Jellyfin/Jellyfin
Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/sv/
---
Emby.Server.Implementations/Localization/Core/sv.json | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/Emby.Server.Implementations/Localization/Core/sv.json b/Emby.Server.Implementations/Localization/Core/sv.json
index 5cf54522b..60810b45d 100644
--- a/Emby.Server.Implementations/Localization/Core/sv.json
+++ b/Emby.Server.Implementations/Localization/Core/sv.json
@@ -82,13 +82,13 @@
"UserCreatedWithName": "Användaren {0} har skapats",
"UserDeletedWithName": "Användaren {0} har tagits bort",
"UserDownloadingItemWithValues": "{0} laddar ner {1}",
- "UserLockedOutWithName": "Användare {0} har låsts ute",
- "UserOfflineFromDevice": "{0} har avbrutit anslutningen från {1}",
+ "UserLockedOutWithName": "Användare {0} har utelåsts",
+ "UserOfflineFromDevice": "{0} har kopplat ned från {1}",
"UserOnlineFromDevice": "{0} är uppkopplad från {1}",
"UserPasswordChangedWithName": "Lösenordet för {0} har ändrats",
"UserPolicyUpdatedWithName": "Användarpolicyn har uppdaterats för {0}",
- "UserStartedPlayingItemWithValues": "{0} spelar upp {1} på {2}",
- "UserStoppedPlayingItemWithValues": "{0} har avslutat uppspelningen av {1} på {2}",
+ "UserStartedPlayingItemWithValues": "{0} spelar {1} på {2}",
+ "UserStoppedPlayingItemWithValues": "{0} har stoppat uppspelningen av {1} på {2}",
"ValueHasBeenAddedToLibrary": "{0} har lagts till i ditt mediebibliotek",
"ValueSpecialEpisodeName": "Specialavsnitt - {0}",
"VersionNumber": "Version {0}",
@@ -98,8 +98,8 @@
"TaskRefreshChannels": "Uppdatera kanaler",
"TaskCleanTranscodeDescription": "Raderar omkodningsfiler äldre än en dag.",
"TaskCleanTranscode": "Rensa omkodningskatalog",
- "TaskUpdatePluginsDescription": "Laddar ned och installerar uppdateringar till tilläggsprogram som är konfigurerade att uppdateras automatiskt.",
- "TaskUpdatePlugins": "Uppdatera tilläggsprogram",
+ "TaskUpdatePluginsDescription": "Laddar ned och installerar uppdateringar till tillägg som är konfigurerade att uppdateras automatiskt.",
+ "TaskUpdatePlugins": "Uppdatera tillägg",
"TaskRefreshPeopleDescription": "Uppdaterar metadata för skådespelare och regissörer i ditt mediabibliotek.",
"TaskCleanLogsDescription": "Raderar loggfiler som är mer än {0} dagar gamla.",
"TaskCleanLogs": "Rensa loggkatalog",
--
cgit v1.2.3
From 1be18114a9a9c49744e86b9d64ed6e249d3c4aac Mon Sep 17 00:00:00 2001
From: Jamoliddin Rakhmonberdiev
Date: Fri, 15 Nov 2024 11:51:49 +0000
Subject: Translated using Weblate (Uzbek) Translation: Jellyfin/Jellyfin
Translate-URL:
https://translate.jellyfin.org/projects/jellyfin/jellyfin-core/uz/
---
.../Localization/Core/uz.json | 89 +++++++++++++++++++++-
1 file changed, 88 insertions(+), 1 deletion(-)
diff --git a/Emby.Server.Implementations/Localization/Core/uz.json b/Emby.Server.Implementations/Localization/Core/uz.json
index a1b3035f3..150fb7126 100644
--- a/Emby.Server.Implementations/Localization/Core/uz.json
+++ b/Emby.Server.Implementations/Localization/Core/uz.json
@@ -23,5 +23,92 @@
"HeaderLiveTV": "Jonli TV",
"HeaderNextUp": "Keyingisi",
"ItemAddedWithName": "{0} kutbxonaga qo'shildi",
- "LabelIpAddressValue": "IP manzil: {0}"
+ "LabelIpAddressValue": "IP manzil: {0}",
+ "SubtitleDownloadFailureFromForItem": "{0} dan {1} uchun taglavhalarni yuklab boʻlmadi",
+ "UserPasswordChangedWithName": "Foydalanuvchi {0} paroli oʻzgartirildi",
+ "ValueHasBeenAddedToLibrary": "{0} kutubxonaga qoʻshildi",
+ "TaskCleanActivityLogDescription": "Belgilangan yoshdan kattaroq faoliyat jurnali yozuvlarini oʻchiradi.",
+ "TaskAudioNormalization": "Ovozni normallashtirish",
+ "TaskRefreshLibraryDescription": "Media kutubxonasi yangi fayllar uchun skanerlanmoqda va metama'lumotlar yangilanmoqda.",
+ "Default": "Joriy",
+ "HeaderFavoriteAlbums": "Tanlangan albomlar",
+ "HeaderFavoriteArtists": "Tanlangan artistlar",
+ "HeaderFavoriteEpisodes": "Tanlangan epizodlar",
+ "HeaderFavoriteShows": "Tanlangan shoular",
+ "HeaderFavoriteSongs": "Tanlangan qo'shiqlar",
+ "HeaderRecordingGroups": "Yozuvlar guruhi",
+ "HomeVideos": "Uy videolari",
+ "NotificationOptionVideoPlaybackStopped": "Video ijrosi toʻxtatildi",
+ "TvShows": "TV seriallar",
+ "Undefined": "Belgilanmagan",
+ "User": "Foydalanuvchi",
+ "UserCreatedWithName": "{0} foydalanuvchi yaratildi",
+ "TaskCleanCacheDescription": "Tizimga kerak bo'lmagan kesh fayllari o'chiriladi.",
+ "TaskAudioNormalizationDescription": "Ovozni normallashtirish ma'lumotlari uchun fayllarni skanerlaydi.",
+ "PluginInstalledWithName": "{0} - o'rnatildi",
+ "PluginUninstalledWithName": "{0} - o'chirildi",
+ "HearingImpaired": "Yaxshi eshitmaydiganlar uchun",
+ "Inherit": "Meroslangan",
+ "NotificationOptionApplicationUpdateAvailable": "Ilova yangilanishi mavjud",
+ "NotificationOptionApplicationUpdateInstalled": "Ilova yangilanishi oʻrnatildi",
+ "LabelRunningTimeValue": "Davomiyligi",
+ "NotificationOptionAudioPlayback": "Audio tinglash boshlandi",
+ "NotificationOptionAudioPlaybackStopped": "Audio tinglash to'xtatildi",
+ "NotificationOptionCameraImageUploaded": "Kamera tasvirlari yuklandi",
+ "NotificationOptionInstallationFailed": "O'rnatishda hatolik",
+ "NotificationOptionNewLibraryContent": "Yangi tarkib qo'shildi",
+ "NotificationOptionPluginError": "Plagin ishdan chiqdi",
+ "NotificationOptionPluginInstalled": "Plagin o'rnatildi",
+ "NotificationOptionPluginUninstalled": "Plagin o'chirildi",
+ "NotificationOptionPluginUpdateInstalled": "Plagin uchun yangilanish o'rnatildi",
+ "NotificationOptionServerRestartRequired": "Server-ni qayta yuklash lozim",
+ "NotificationOptionTaskFailed": "Rejalashtirilgan vazifa bajarilmadi",
+ "NotificationOptionUserLockedOut": "Foydalanuvchi bloklangan",
+ "NotificationOptionVideoPlayback": "Video ijrosi boshlandi",
+ "Photos": "Surat",
+ "Latest": "So'ngi",
+ "MessageApplicationUpdated": "Jellyfin Server yangilandi",
+ "MessageApplicationUpdatedTo": "Jellyfin Server {0} gacha yangilandi",
+ "MessageNamedServerConfigurationUpdatedWithValue": "Server konfiguratsiyasi ({0}-boʻlim) yangilandi",
+ "MessageServerConfigurationUpdated": "Server konfiguratsiyasi yangilandi",
+ "MixedContent": "Aralashgan tarkib",
+ "Movies": "Kinolar",
+ "Music": "Qo'shiqlar",
+ "MusicVideos": "Musiqali videolar",
+ "NameInstallFailed": "Omadsiz ornatish {0}",
+ "NameSeasonNumber": "{0} Fasl",
+ "NameSeasonUnknown": "Fasl aniqlanmagan",
+ "Playlists": "Pleylistlar",
+ "NewVersionIsAvailable": "Yuklab olish uchun Jellyfin Server ning yangi versiyasi mavjud",
+ "Plugin": "Plagin",
+ "TaskCleanLogs": "Jurnallar katalogini tozalash",
+ "PluginUpdatedWithName": "{0} - yangilandi",
+ "ProviderValue": "Yetkazib beruvchi: {0}",
+ "ScheduledTaskFailedWithName": "{0} - omadsiz",
+ "ScheduledTaskStartedWithName": "{0} - ishga tushirildi",
+ "ServerNameNeedsToBeRestarted": "Qayta yuklash kerak {0}",
+ "Shows": "Teleko'rsatuv",
+ "Songs": "Kompozitsiyalar",
+ "StartupEmbyServerIsLoading": "Jellyfin Server yuklanmoqda. Tez orada qayta urinib koʻring.",
+ "Sync": "Sinxronizatsiya",
+ "System": "Tizim",
+ "UserDeletedWithName": "{0} foydalanuvchisi oʻchirib tashlandi",
+ "UserDownloadingItemWithValues": "{0} yuklanmoqda {1}",
+ "UserLockedOutWithName": "{0} foydalanuvchisi bloklandi",
+ "UserOfflineFromDevice": "{0} {1}dan uzildi",
+ "UserOnlineFromDevice": "{0} {1} dan ulandi",
+ "UserPolicyUpdatedWithName": "{0} foydalanuvchisining siyosatlari yangilandi",
+ "UserStartedPlayingItemWithValues": "{0} - {2} da \"{1}\" ijrosi",
+ "UserStoppedPlayingItemWithValues": "{0} - ijro etish to‘xtatildi {1} {2}",
+ "ValueSpecialEpisodeName": "Maxsus qism – {0}",
+ "VersionNumber": "Versiya {0}",
+ "TasksMaintenanceCategory": "Xizmat ko'rsatish",
+ "TasksLibraryCategory": "Media kutubxona",
+ "TasksApplicationCategory": "Ilova",
+ "TasksChannelsCategory": "Internet kanallari",
+ "TaskCleanActivityLog": "Faoliyat jurnalini tozalash",
+ "TaskCleanCache": "Kesh katalogini tozalash",
+ "TaskRefreshChapterImages": "Sahnadan tasvirini chiqarish",
+ "TaskRefreshChapterImagesDescription": "Sahnalarni o'z ichiga olgan videolar uchun eskizlarni yaratadi.",
+ "TaskRefreshLibrary": "Media kutubxonangizni skanerlash"
}
--
cgit v1.2.3
From ceb850c77052c465af8422dcf152f1d1d1530457 Mon Sep 17 00:00:00 2001
From: Bond-009
Date: Sat, 16 Nov 2024 18:11:01 +0100
Subject: Update projects to .NET 9 (#13023)
---
.devcontainer/Dev - Server Ffmpeg/devcontainer.json | 6 +++---
.devcontainer/devcontainer.json | 6 +++---
.github/workflows/ci-codeql-analysis.yml | 2 +-
.github/workflows/ci-openapi.yml | 8 ++++----
.github/workflows/ci-tests.yml | 2 +-
.vscode/launch.json | 6 +++---
Directory.Build.props | 1 +
Emby.Naming/Emby.Naming.csproj | 2 +-
Emby.Photos/Emby.Photos.csproj | 2 +-
Emby.Server.Implementations/ApplicationHost.cs | 2 +-
Emby.Server.Implementations/Emby.Server.Implementations.csproj | 2 +-
Emby.Server.Implementations/Library/UserDataManager.cs | 1 -
Emby.Server.Implementations/Plugins/PluginManager.cs | 2 +-
Jellyfin.Api/Controllers/ItemUpdateController.cs | 2 +-
Jellyfin.Api/Jellyfin.Api.csproj | 2 +-
Jellyfin.Data/Entities/User.cs | 2 +-
Jellyfin.Data/Jellyfin.Data.csproj | 2 +-
.../Jellyfin.Server.Implementations.csproj | 2 +-
Jellyfin.Server/Helpers/StartupHelpers.cs | 8 --------
Jellyfin.Server/Jellyfin.Server.csproj | 2 +-
MediaBrowser.Common/MediaBrowser.Common.csproj | 2 +-
MediaBrowser.Common/Plugins/BasePluginOfT.cs | 2 +-
MediaBrowser.Controller/MediaBrowser.Controller.csproj | 2 +-
MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj | 2 +-
MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj | 2 +-
MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs | 2 +-
MediaBrowser.Model/MediaBrowser.Model.csproj | 4 ++--
MediaBrowser.Providers/Manager/ProviderManager.cs | 3 +--
MediaBrowser.Providers/MediaBrowser.Providers.csproj | 2 +-
MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj | 2 +-
README.md | 4 ++--
.../Emby.Server.Implementations.Fuzz.csproj | 2 +-
fuzz/Emby.Server.Implementations.Fuzz/fuzz.sh | 2 +-
fuzz/Jellyfin.Api.Fuzz/Jellyfin.Api.Fuzz.csproj | 2 +-
fuzz/Jellyfin.Api.Fuzz/fuzz.sh | 2 +-
global.json | 2 +-
jellyfin.ruleset | 4 ++++
src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj | 2 +-
src/Jellyfin.Drawing/Jellyfin.Drawing.csproj | 2 +-
src/Jellyfin.Extensions/Jellyfin.Extensions.csproj | 2 +-
.../Json/Converters/JsonDelimitedArrayConverter.cs | 1 -
src/Jellyfin.LiveTv/Jellyfin.LiveTv.csproj | 2 +-
src/Jellyfin.MediaEncoding.Hls/Jellyfin.MediaEncoding.Hls.csproj | 2 +-
.../Jellyfin.MediaEncoding.Keyframes.csproj | 2 +-
src/Jellyfin.Networking/Jellyfin.Networking.csproj | 2 +-
src/Jellyfin.Networking/Manager/NetworkManager.cs | 2 +-
tests/Directory.Build.props | 2 +-
.../Json/Models/GenericBodyArrayModel.cs | 2 +-
.../Json/Models/GenericBodyIReadOnlyListModel.cs | 2 +-
tests/Jellyfin.LiveTv.Tests/Jellyfin.LiveTv.Tests.csproj | 4 ++--
.../TypedBaseItem/BaseItemKindTests.cs | 2 +-
51 files changed, 63 insertions(+), 69 deletions(-)
diff --git a/.devcontainer/Dev - Server Ffmpeg/devcontainer.json b/.devcontainer/Dev - Server Ffmpeg/devcontainer.json
index 0b848d9f3..a934512f4 100644
--- a/.devcontainer/Dev - Server Ffmpeg/devcontainer.json
+++ b/.devcontainer/Dev - Server Ffmpeg/devcontainer.json
@@ -1,6 +1,6 @@
{
"name": "Development Jellyfin Server - FFmpeg",
- "image":"mcr.microsoft.com/devcontainers/dotnet:8.0-jammy",
+ "image":"mcr.microsoft.com/devcontainers/dotnet:9.0-jammy",
// restores nuget packages, installs the dotnet workloads and installs the dev https certificate
"postStartCommand": "dotnet restore; dotnet workload update; dotnet dev-certs https --trust; sudo bash \"./.devcontainer/Dev - Server Ffmpeg/install-ffmpeg.sh\"",
// reads the extensions list and installs them
@@ -8,8 +8,8 @@
"features": {
"ghcr.io/devcontainers/features/dotnet:2": {
"version": "none",
- "dotnetRuntimeVersions": "8.0",
- "aspNetCoreRuntimeVersions": "8.0"
+ "dotnetRuntimeVersions": "9.0",
+ "aspNetCoreRuntimeVersions": "9.0"
},
"ghcr.io/devcontainers-contrib/features/apt-packages:1": {
"preserve_apt_list": false,
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 063901c80..0cf768f1f 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -1,6 +1,6 @@
{
"name": "Development Jellyfin Server",
- "image":"mcr.microsoft.com/devcontainers/dotnet:8.0-jammy",
+ "image":"mcr.microsoft.com/devcontainers/dotnet:9.0-jammy",
// restores nuget packages, installs the dotnet workloads and installs the dev https certificate
"postStartCommand": "dotnet restore; dotnet workload update; dotnet dev-certs https --trust",
// reads the extensions list and installs them
@@ -8,8 +8,8 @@
"features": {
"ghcr.io/devcontainers/features/dotnet:2": {
"version": "none",
- "dotnetRuntimeVersions": "8.0",
- "aspNetCoreRuntimeVersions": "8.0"
+ "dotnetRuntimeVersions": "9.0",
+ "aspNetCoreRuntimeVersions": "9.0"
},
"ghcr.io/devcontainers-contrib/features/apt-packages:1": {
"preserve_apt_list": false,
diff --git a/.github/workflows/ci-codeql-analysis.yml b/.github/workflows/ci-codeql-analysis.yml
index d6983c683..e6993d39d 100644
--- a/.github/workflows/ci-codeql-analysis.yml
+++ b/.github/workflows/ci-codeql-analysis.yml
@@ -24,7 +24,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with:
- dotnet-version: '8.0.x'
+ dotnet-version: '9.0.x'
- name: Initialize CodeQL
uses: github/codeql-action/init@ea9e4e37992a54ee68a9622e985e60c8e8f12d9f # v3.27.4
diff --git a/.github/workflows/ci-openapi.yml b/.github/workflows/ci-openapi.yml
index 4633461ad..353c47c54 100644
--- a/.github/workflows/ci-openapi.yml
+++ b/.github/workflows/ci-openapi.yml
@@ -23,7 +23,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with:
- dotnet-version: '8.0.x'
+ dotnet-version: '9.0.x'
- name: Generate openapi.json
run: dotnet test tests/Jellyfin.Server.Integration.Tests/Jellyfin.Server.Integration.Tests.csproj -c Release --filter "Jellyfin.Server.Integration.Tests.OpenApiSpecTests"
- name: Upload openapi.json
@@ -32,7 +32,7 @@ jobs:
name: openapi-head
retention-days: 14
if-no-files-found: error
- path: tests/Jellyfin.Server.Integration.Tests/bin/Release/net8.0/openapi.json
+ path: tests/Jellyfin.Server.Integration.Tests/bin/Release/net9.0/openapi.json
openapi-base:
name: OpenAPI - BASE
@@ -57,7 +57,7 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
with:
- dotnet-version: '8.0.x'
+ dotnet-version: '9.0.x'
- name: Generate openapi.json
run: dotnet test tests/Jellyfin.Server.Integration.Tests/Jellyfin.Server.Integration.Tests.csproj -c Release --filter "Jellyfin.Server.Integration.Tests.OpenApiSpecTests"
- name: Upload openapi.json
@@ -66,7 +66,7 @@ jobs:
name: openapi-base
retention-days: 14
if-no-files-found: error
- path: tests/Jellyfin.Server.Integration.Tests/bin/Release/net8.0/openapi.json
+ path: tests/Jellyfin.Server.Integration.Tests/bin/Release/net9.0/openapi.json
openapi-diff:
permissions:
diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml
index aee3ebbf7..30aacc7a0 100644
--- a/.github/workflows/ci-tests.yml
+++ b/.github/workflows/ci-tests.yml
@@ -9,7 +9,7 @@ on:
pull_request:
env:
- SDK_VERSION: "8.0.x"
+ SDK_VERSION: "9.0.x"
jobs:
run-tests:
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 7e50d4f0a..d97d8de84 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -6,7 +6,7 @@
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
- "program": "${workspaceFolder}/Jellyfin.Server/bin/Debug/net8.0/jellyfin.dll",
+ "program": "${workspaceFolder}/Jellyfin.Server/bin/Debug/net9.0/jellyfin.dll",
"args": [],
"cwd": "${workspaceFolder}/Jellyfin.Server",
"console": "internalConsole",
@@ -22,7 +22,7 @@
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
- "program": "${workspaceFolder}/Jellyfin.Server/bin/Debug/net8.0/jellyfin.dll",
+ "program": "${workspaceFolder}/Jellyfin.Server/bin/Debug/net9.0/jellyfin.dll",
"args": ["--nowebclient"],
"cwd": "${workspaceFolder}/Jellyfin.Server",
"console": "internalConsole",
@@ -34,7 +34,7 @@
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
- "program": "${workspaceFolder}/Jellyfin.Server/bin/Debug/net8.0/jellyfin.dll",
+ "program": "${workspaceFolder}/Jellyfin.Server/bin/Debug/net9.0/jellyfin.dll",
"args": ["--nowebclient", "--ffmpeg", "/usr/lib/jellyfin-ffmpeg/ffmpeg"],
"cwd": "${workspaceFolder}/Jellyfin.Server",
"console": "internalConsole",
diff --git a/Directory.Build.props b/Directory.Build.props
index 44a60ffb5..831188015 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -8,6 +8,7 @@
true
+ NU1902;NU1903
diff --git a/Emby.Naming/Emby.Naming.csproj b/Emby.Naming/Emby.Naming.csproj
index 53b297b06..20b32f3a6 100644
--- a/Emby.Naming/Emby.Naming.csproj
+++ b/Emby.Naming/Emby.Naming.csproj
@@ -6,7 +6,7 @@
- net8.0
+ net9.0
false
true
true
diff --git a/Emby.Photos/Emby.Photos.csproj b/Emby.Photos/Emby.Photos.csproj
index 55dbe393c..645a74aea 100644
--- a/Emby.Photos/Emby.Photos.csproj
+++ b/Emby.Photos/Emby.Photos.csproj
@@ -19,7 +19,7 @@
- net8.0
+ net9.0
false
true
diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs
index 5292003f0..13516896a 100644
--- a/Emby.Server.Implementations/ApplicationHost.cs
+++ b/Emby.Server.Implementations/ApplicationHost.cs
@@ -607,7 +607,7 @@ namespace Emby.Server.Implementations
// Don't use an empty string password
password = string.IsNullOrWhiteSpace(password) ? null : password;
- var localCert = new X509Certificate2(path, password, X509KeyStorageFlags.UserKeySet);
+ var localCert = X509CertificateLoader.LoadPkcs12FromFile(path, password, X509KeyStorageFlags.UserKeySet);
if (!localCert.HasPrivateKey)
{
Logger.LogError("No private key included in SSL cert {CertificateLocation}.", path);
diff --git a/Emby.Server.Implementations/Emby.Server.Implementations.csproj b/Emby.Server.Implementations/Emby.Server.Implementations.csproj
index 34276355a..70dd5eb9a 100644
--- a/Emby.Server.Implementations/Emby.Server.Implementations.csproj
+++ b/Emby.Server.Implementations/Emby.Server.Implementations.csproj
@@ -37,7 +37,7 @@
- net8.0
+ net9.0
false
true
diff --git a/Emby.Server.Implementations/Library/UserDataManager.cs b/Emby.Server.Implementations/Library/UserDataManager.cs
index 62d22b23f..ceb3d65a4 100644
--- a/Emby.Server.Implementations/Library/UserDataManager.cs
+++ b/Emby.Server.Implementations/Library/UserDataManager.cs
@@ -84,7 +84,6 @@ namespace Emby.Server.Implementations.Library
{
ArgumentNullException.ThrowIfNull(user);
ArgumentNullException.ThrowIfNull(item);
- ArgumentNullException.ThrowIfNull(reason);
ArgumentNullException.ThrowIfNull(userDataDto);
var userData = GetUserData(user, item);
diff --git a/Emby.Server.Implementations/Plugins/PluginManager.cs b/Emby.Server.Implementations/Plugins/PluginManager.cs
index db82a2900..e7323d9d0 100644
--- a/Emby.Server.Implementations/Plugins/PluginManager.cs
+++ b/Emby.Server.Implementations/Plugins/PluginManager.cs
@@ -835,7 +835,7 @@ namespace Emby.Server.Implementations.Plugins
/// If the is null.
private bool TryGetPluginDlls(LocalPlugin plugin, out IReadOnlyList whitelistedDlls)
{
- ArgumentNullException.ThrowIfNull(nameof(plugin));
+ ArgumentNullException.ThrowIfNull(plugin);
IReadOnlyList pluginDlls = Directory.GetFiles(plugin.Path, "*.dll", SearchOption.AllDirectories);
diff --git a/Jellyfin.Api/Controllers/ItemUpdateController.cs b/Jellyfin.Api/Controllers/ItemUpdateController.cs
index 4001a6add..d49e0753e 100644
--- a/Jellyfin.Api/Controllers/ItemUpdateController.cs
+++ b/Jellyfin.Api/Controllers/ItemUpdateController.cs
@@ -457,7 +457,7 @@ public class ItemUpdateController : BaseJellyfinApiController
return null;
}
- return (SeriesStatus)Enum.Parse(typeof(SeriesStatus), item.Status, true);
+ return Enum.Parse(item.Status, true);
}
private DateTime NormalizeDateTime(DateTime val)
diff --git a/Jellyfin.Api/Jellyfin.Api.csproj b/Jellyfin.Api/Jellyfin.Api.csproj
index 5f86a6b6b..25feaa2d7 100644
--- a/Jellyfin.Api/Jellyfin.Api.csproj
+++ b/Jellyfin.Api/Jellyfin.Api.csproj
@@ -6,7 +6,7 @@
- net8.0
+ net9.0
true
diff --git a/Jellyfin.Data/Entities/User.cs b/Jellyfin.Data/Entities/User.cs
index 2c9cc8d78..9bbe9efe8 100644
--- a/Jellyfin.Data/Entities/User.cs
+++ b/Jellyfin.Data/Entities/User.cs
@@ -514,7 +514,7 @@ namespace Jellyfin.Data.Entities
///
public void AddDefaultPreferences()
{
- foreach (var val in Enum.GetValues(typeof(PreferenceKind)).Cast())
+ foreach (var val in Enum.GetValues())
{
Preferences.Add(new Preference(val, string.Empty));
}
diff --git a/Jellyfin.Data/Jellyfin.Data.csproj b/Jellyfin.Data/Jellyfin.Data.csproj
index 0c17d71e7..921cf2d8c 100644
--- a/Jellyfin.Data/Jellyfin.Data.csproj
+++ b/Jellyfin.Data/Jellyfin.Data.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
false
true
true
diff --git a/Jellyfin.Server.Implementations/Jellyfin.Server.Implementations.csproj b/Jellyfin.Server.Implementations/Jellyfin.Server.Implementations.csproj
index 20944ee4b..31cf24fb2 100644
--- a/Jellyfin.Server.Implementations/Jellyfin.Server.Implementations.csproj
+++ b/Jellyfin.Server.Implementations/Jellyfin.Server.Implementations.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
false
true
diff --git a/Jellyfin.Server/Helpers/StartupHelpers.cs b/Jellyfin.Server/Helpers/StartupHelpers.cs
index 0802b23ad..bbf6d31f1 100644
--- a/Jellyfin.Server/Helpers/StartupHelpers.cs
+++ b/Jellyfin.Server/Helpers/StartupHelpers.cs
@@ -292,13 +292,5 @@ public static class StartupHelpers
// Make sure we have all the code pages we can get
// Ref: https://docs.microsoft.com/en-us/dotnet/api/system.text.codepagesencodingprovider.instance?view=netcore-3.0#remarks
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
-
- // Increase the max http request limit
- // The default connection limit is 10 for ASP.NET hosted applications and 2 for all others.
- ServicePointManager.DefaultConnectionLimit = Math.Max(96, ServicePointManager.DefaultConnectionLimit);
-
- // Disable the "Expect: 100-Continue" header by default
- // http://stackoverflow.com/questions/566437/http-post-returns-the-error-417-expectation-failed-c
- ServicePointManager.Expect100Continue = false;
}
}
diff --git a/Jellyfin.Server/Jellyfin.Server.csproj b/Jellyfin.Server/Jellyfin.Server.csproj
index e18212908..ebb12ba4e 100644
--- a/Jellyfin.Server/Jellyfin.Server.csproj
+++ b/Jellyfin.Server/Jellyfin.Server.csproj
@@ -8,7 +8,7 @@
jellyfin
Exe
- net8.0
+ net9.0
false
false
true
diff --git a/MediaBrowser.Common/MediaBrowser.Common.csproj b/MediaBrowser.Common/MediaBrowser.Common.csproj
index 51787d6a0..de6be4707 100644
--- a/MediaBrowser.Common/MediaBrowser.Common.csproj
+++ b/MediaBrowser.Common/MediaBrowser.Common.csproj
@@ -28,7 +28,7 @@
- net8.0
+ net9.0
false
true
true
diff --git a/MediaBrowser.Common/Plugins/BasePluginOfT.cs b/MediaBrowser.Common/Plugins/BasePluginOfT.cs
index 116e9cef8..bf2f12cb9 100644
--- a/MediaBrowser.Common/Plugins/BasePluginOfT.cs
+++ b/MediaBrowser.Common/Plugins/BasePluginOfT.cs
@@ -193,7 +193,7 @@ namespace MediaBrowser.Common.Plugins
}
catch
{
- var config = (TConfigurationType)Activator.CreateInstance(typeof(TConfigurationType));
+ var config = Activator.CreateInstance();
SaveConfiguration(config);
return config;
}
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index 62f36bf28..ba4a2a59c 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -34,7 +34,7 @@
- net8.0
+ net9.0
false
true
true
diff --git a/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj b/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj
index 05177ac39..8e3c8cf7f 100644
--- a/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj
+++ b/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj
@@ -11,7 +11,7 @@
- net8.0
+ net9.0
false
true
diff --git a/MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj b/MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj
index be63513a7..be7eeda92 100644
--- a/MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj
+++ b/MediaBrowser.MediaEncoding/MediaBrowser.MediaEncoding.csproj
@@ -6,7 +6,7 @@
- net8.0
+ net9.0
false
true
diff --git a/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs b/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs
index 334796f58..c730f4cda 100644
--- a/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs
+++ b/MediaBrowser.MediaEncoding/Probing/ProbeResultNormalizer.cs
@@ -1648,7 +1648,7 @@ namespace MediaBrowser.MediaEncoding.Probing
using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, 1))
{
- fs.Read(packetBuffer);
+ fs.ReadExactly(packetBuffer);
}
if (packetBuffer[0] == 71)
diff --git a/MediaBrowser.Model/MediaBrowser.Model.csproj b/MediaBrowser.Model/MediaBrowser.Model.csproj
index a3a575c0f..e9dab6bc8 100644
--- a/MediaBrowser.Model/MediaBrowser.Model.csproj
+++ b/MediaBrowser.Model/MediaBrowser.Model.csproj
@@ -14,7 +14,7 @@
- net8.0
+ net9.0
false
true
true
@@ -35,7 +35,7 @@
-
+
diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs
index c5689550d..e43da1350 100644
--- a/MediaBrowser.Providers/Manager/ProviderManager.cs
+++ b/MediaBrowser.Providers/Manager/ProviderManager.cs
@@ -262,7 +262,7 @@ namespace MediaBrowser.Providers.Manager
try
{
var fileStream = AsyncFile.OpenRead(source);
- await new ImageSaver(_configurationManager, _libraryMonitor, _fileSystem, _logger).SaveImage(item, fileStream, mimeType, type, imageIndex, saveLocallyWithMedia, cancellationToken);
+ await new ImageSaver(_configurationManager, _libraryMonitor, _fileSystem, _logger).SaveImage(item, fileStream, mimeType, type, imageIndex, saveLocallyWithMedia, cancellationToken).ConfigureAwait(false);
}
finally
{
@@ -1031,7 +1031,6 @@ namespace MediaBrowser.Providers.Manager
///
public void QueueRefresh(Guid itemId, MetadataRefreshOptions options, RefreshPriority priority)
{
- ArgumentNullException.ThrowIfNull(itemId);
if (itemId.IsEmpty())
{
throw new ArgumentException("Guid can't be empty", nameof(itemId));
diff --git a/MediaBrowser.Providers/MediaBrowser.Providers.csproj b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
index 9a65852f0..a3e0acf1b 100644
--- a/MediaBrowser.Providers/MediaBrowser.Providers.csproj
+++ b/MediaBrowser.Providers/MediaBrowser.Providers.csproj
@@ -28,7 +28,7 @@
- net8.0
+ net9.0
false
true
../jellyfin.ruleset
diff --git a/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj b/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj
index c20073eea..b195af96c 100644
--- a/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj
+++ b/MediaBrowser.XbmcMetadata/MediaBrowser.XbmcMetadata.csproj
@@ -15,7 +15,7 @@
- net8.0
+ net9.0
false
true
diff --git a/README.md b/README.md
index 7da0cb30d..a07fd32ce 100644
--- a/README.md
+++ b/README.md
@@ -74,7 +74,7 @@ These instructions will help you get set up with a local development environment
### Prerequisites
-Before the project can be built, you must first install the [.NET 8.0 SDK](https://dotnet.microsoft.com/download/dotnet) on your system.
+Before the project can be built, you must first install the [.NET 9.0 SDK](https://dotnet.microsoft.com/download/dotnet) on your system.
Instructions to run this project from the command line are included here, but you will also need to install an IDE if you want to debug the server while it is running. Any IDE that supports .NET 6 development will work, but two options are recent versions of [Visual Studio](https://visualstudio.microsoft.com/downloads/) (at least 2022) and [Visual Studio Code](https://code.visualstudio.com/Download).
@@ -131,7 +131,7 @@ A second option is to build the project and then run the resulting executable fi
```bash
dotnet build # Build the project
-cd Jellyfin.Server/bin/Debug/net8.0 # Change into the build output directory
+cd Jellyfin.Server/bin/Debug/net9.0 # Change into the build output directory
```
2. Execute the build output. On Linux, Mac, etc. use `./jellyfin` and on Windows use `jellyfin.exe`.
diff --git a/fuzz/Emby.Server.Implementations.Fuzz/Emby.Server.Implementations.Fuzz.csproj b/fuzz/Emby.Server.Implementations.Fuzz/Emby.Server.Implementations.Fuzz.csproj
index 73aae3f3d..1373d2fe0 100644
--- a/fuzz/Emby.Server.Implementations.Fuzz/Emby.Server.Implementations.Fuzz.csproj
+++ b/fuzz/Emby.Server.Implementations.Fuzz/Emby.Server.Implementations.Fuzz.csproj
@@ -2,7 +2,7 @@
Exe
- net8.0
+ net9.0
diff --git a/fuzz/Emby.Server.Implementations.Fuzz/fuzz.sh b/fuzz/Emby.Server.Implementations.Fuzz/fuzz.sh
index 80a5cd7c1..8183bb37a 100755
--- a/fuzz/Emby.Server.Implementations.Fuzz/fuzz.sh
+++ b/fuzz/Emby.Server.Implementations.Fuzz/fuzz.sh
@@ -8,4 +8,4 @@ cp bin/Emby.Server.Implementations.dll .
dotnet build
mkdir -p Findings
-AFL_SKIP_BIN_CHECK=1 afl-fuzz -i "Testcases/$1" -o "Findings/$1" -t 5000 ./bin/Debug/net8.0/Emby.Server.Implementations.Fuzz "$1"
+AFL_SKIP_BIN_CHECK=1 afl-fuzz -i "Testcases/$1" -o "Findings/$1" -t 5000 ./bin/Debug/net9.0/Emby.Server.Implementations.Fuzz "$1"
diff --git a/fuzz/Jellyfin.Api.Fuzz/Jellyfin.Api.Fuzz.csproj b/fuzz/Jellyfin.Api.Fuzz/Jellyfin.Api.Fuzz.csproj
index faac7d976..04c7be11d 100644
--- a/fuzz/Jellyfin.Api.Fuzz/Jellyfin.Api.Fuzz.csproj
+++ b/fuzz/Jellyfin.Api.Fuzz/Jellyfin.Api.Fuzz.csproj
@@ -2,7 +2,7 @@
Exe
- net8.0
+ net9.0
diff --git a/fuzz/Jellyfin.Api.Fuzz/fuzz.sh b/fuzz/Jellyfin.Api.Fuzz/fuzz.sh
index 96b0192cf..15148e1bb 100755
--- a/fuzz/Jellyfin.Api.Fuzz/fuzz.sh
+++ b/fuzz/Jellyfin.Api.Fuzz/fuzz.sh
@@ -8,4 +8,4 @@ cp bin/Jellyfin.Api.dll .
dotnet build
mkdir -p Findings
-AFL_SKIP_BIN_CHECK=1 afl-fuzz -i "Testcases/$1" -o "Findings/$1" -t 5000 ./bin/Debug/net8.0/Jellyfin.Api.Fuzz "$1"
+AFL_SKIP_BIN_CHECK=1 afl-fuzz -i "Testcases/$1" -o "Findings/$1" -t 5000 ./bin/Debug/net9.0/Jellyfin.Api.Fuzz "$1"
diff --git a/global.json b/global.json
index c9b932026..2e13a6387 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "8.0.404",
+ "version": "9.0.0",
"rollForward": "latestMinor"
}
}
diff --git a/jellyfin.ruleset b/jellyfin.ruleset
index 67ffd9a37..ba04a70c2 100644
--- a/jellyfin.ruleset
+++ b/jellyfin.ruleset
@@ -154,6 +154,8 @@
+
+
@@ -168,6 +170,8 @@
+
+
diff --git a/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj b/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj
index 0590ded32..ba402dfe0 100644
--- a/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj
+++ b/src/Jellyfin.Drawing.Skia/Jellyfin.Drawing.Skia.csproj
@@ -6,7 +6,7 @@
- net8.0
+ net9.0
false
true
diff --git a/src/Jellyfin.Drawing/Jellyfin.Drawing.csproj b/src/Jellyfin.Drawing/Jellyfin.Drawing.csproj
index 4a02f90f9..5f4b3fe8d 100644
--- a/src/Jellyfin.Drawing/Jellyfin.Drawing.csproj
+++ b/src/Jellyfin.Drawing/Jellyfin.Drawing.csproj
@@ -6,7 +6,7 @@
- net8.0
+ net9.0
false
true
diff --git a/src/Jellyfin.Extensions/Jellyfin.Extensions.csproj b/src/Jellyfin.Extensions/Jellyfin.Extensions.csproj
index 1a42679fc..1613d83bc 100644
--- a/src/Jellyfin.Extensions/Jellyfin.Extensions.csproj
+++ b/src/Jellyfin.Extensions/Jellyfin.Extensions.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
false
true
true
diff --git a/src/Jellyfin.Extensions/Json/Converters/JsonDelimitedArrayConverter.cs b/src/Jellyfin.Extensions/Json/Converters/JsonDelimitedArrayConverter.cs
index 936a5a97c..cdeaf29b0 100644
--- a/src/Jellyfin.Extensions/Json/Converters/JsonDelimitedArrayConverter.cs
+++ b/src/Jellyfin.Extensions/Json/Converters/JsonDelimitedArrayConverter.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
-using System.Linq;
using System.Text.Json;
using System.Text.Json.Serialization;
diff --git a/src/Jellyfin.LiveTv/Jellyfin.LiveTv.csproj b/src/Jellyfin.LiveTv/Jellyfin.LiveTv.csproj
index c58889740..f04c02504 100644
--- a/src/Jellyfin.LiveTv/Jellyfin.LiveTv.csproj
+++ b/src/Jellyfin.LiveTv/Jellyfin.LiveTv.csproj
@@ -1,6 +1,6 @@
- net8.0
+ net9.0
true
diff --git a/src/Jellyfin.MediaEncoding.Hls/Jellyfin.MediaEncoding.Hls.csproj b/src/Jellyfin.MediaEncoding.Hls/Jellyfin.MediaEncoding.Hls.csproj
index ee79802a1..dc581724a 100644
--- a/src/Jellyfin.MediaEncoding.Hls/Jellyfin.MediaEncoding.Hls.csproj
+++ b/src/Jellyfin.MediaEncoding.Hls/Jellyfin.MediaEncoding.Hls.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
true
diff --git a/src/Jellyfin.MediaEncoding.Keyframes/Jellyfin.MediaEncoding.Keyframes.csproj b/src/Jellyfin.MediaEncoding.Keyframes/Jellyfin.MediaEncoding.Keyframes.csproj
index c79dcee3c..c826d3d9c 100644
--- a/src/Jellyfin.MediaEncoding.Keyframes/Jellyfin.MediaEncoding.Keyframes.csproj
+++ b/src/Jellyfin.MediaEncoding.Keyframes/Jellyfin.MediaEncoding.Keyframes.csproj
@@ -1,7 +1,7 @@
- net8.0
+ net9.0
true
diff --git a/src/Jellyfin.Networking/Jellyfin.Networking.csproj b/src/Jellyfin.Networking/Jellyfin.Networking.csproj
index 24b3ecaab..472cdb7ef 100644
--- a/src/Jellyfin.Networking/Jellyfin.Networking.csproj
+++ b/src/Jellyfin.Networking/Jellyfin.Networking.csproj
@@ -1,6 +1,6 @@
- net8.0
+ net9.0
false
true
diff --git a/src/Jellyfin.Networking/Manager/NetworkManager.cs b/src/Jellyfin.Networking/Manager/NetworkManager.cs
index 5a13cc417..10aed673b 100644
--- a/src/Jellyfin.Networking/Manager/NetworkManager.cs
+++ b/src/Jellyfin.Networking/Manager/NetworkManager.cs
@@ -57,7 +57,7 @@ public class NetworkManager : INetworkManager, IDisposable
///
/// Dictionary containing interface addresses and their subnets.
///
- private IReadOnlyList _interfaces;
+ private List _interfaces;
///
/// Unfiltered user defined LAN subnets ()
diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props
index bec3481cb..146ad8dc2 100644
--- a/tests/Directory.Build.props
+++ b/tests/Directory.Build.props
@@ -4,7 +4,7 @@
- net8.0
+ net9.0
false
$(MSBuildThisFileDirectory)/jellyfin-tests.ruleset
diff --git a/tests/Jellyfin.Extensions.Tests/Json/Models/GenericBodyArrayModel.cs b/tests/Jellyfin.Extensions.Tests/Json/Models/GenericBodyArrayModel.cs
index ef135278f..76669ea19 100644
--- a/tests/Jellyfin.Extensions.Tests/Json/Models/GenericBodyArrayModel.cs
+++ b/tests/Jellyfin.Extensions.Tests/Json/Models/GenericBodyArrayModel.cs
@@ -8,7 +8,7 @@ namespace Jellyfin.Extensions.Tests.Json.Models
/// The generic body model.
///
/// The value type.
- public class GenericBodyArrayModel
+ public sealed class GenericBodyArrayModel
{
///
/// Gets or sets the value.
diff --git a/tests/Jellyfin.Extensions.Tests/Json/Models/GenericBodyIReadOnlyListModel.cs b/tests/Jellyfin.Extensions.Tests/Json/Models/GenericBodyIReadOnlyListModel.cs
index 8e7b5a35b..7e6b97afe 100644
--- a/tests/Jellyfin.Extensions.Tests/Json/Models/GenericBodyIReadOnlyListModel.cs
+++ b/tests/Jellyfin.Extensions.Tests/Json/Models/GenericBodyIReadOnlyListModel.cs
@@ -8,7 +8,7 @@ namespace Jellyfin.Extensions.Tests.Json.Models
/// The generic body IReadOnlyList model.
///
/// The value type.
- public class GenericBodyIReadOnlyListModel
+ public sealed class GenericBodyIReadOnlyListModel
{
///
/// Gets or sets the value.
diff --git a/tests/Jellyfin.LiveTv.Tests/Jellyfin.LiveTv.Tests.csproj b/tests/Jellyfin.LiveTv.Tests/Jellyfin.LiveTv.Tests.csproj
index cf967b84c..fdcf7d61e 100644
--- a/tests/Jellyfin.LiveTv.Tests/Jellyfin.LiveTv.Tests.csproj
+++ b/tests/Jellyfin.LiveTv.Tests/Jellyfin.LiveTv.Tests.csproj
@@ -1,6 +1,6 @@
- net8.0
+ net9.0
@@ -22,7 +22,7 @@
-
+
diff --git a/tests/Jellyfin.Server.Implementations.Tests/TypedBaseItem/BaseItemKindTests.cs b/tests/Jellyfin.Server.Implementations.Tests/TypedBaseItem/BaseItemKindTests.cs
index 1bd51b246..9a4389e7a 100644
--- a/tests/Jellyfin.Server.Implementations.Tests/TypedBaseItem/BaseItemKindTests.cs
+++ b/tests/Jellyfin.Server.Implementations.Tests/TypedBaseItem/BaseItemKindTests.cs
@@ -35,7 +35,7 @@ namespace Jellyfin.Server.Implementations.Tests.TypedBaseItem
public void EnumParse_GivenValidBaseItemType_ReturnsEnumValue(Type baseItemDescendantType)
{
var enumValue = Enum.Parse(baseItemDescendantType.Name);
- Assert.True(Enum.IsDefined(typeof(BaseItemKind), enumValue));
+ Assert.True(Enum.IsDefined(enumValue));
}
[Theory]
--
cgit v1.2.3
From 9e05abcc850c0c41818042d4383c621f54a6e40f Mon Sep 17 00:00:00 2001
From: Cody Robibero
Date: Sat, 16 Nov 2024 11:01:32 -0700
Subject: Add dotnet9 to abi compat workflow (#13046)
---
.github/workflows/ci-compat.yml | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/.github/workflows/ci-compat.yml b/.github/workflows/ci-compat.yml
index c9d9f8449..2f9a68f41 100644
--- a/.github/workflows/ci-compat.yml
+++ b/.github/workflows/ci-compat.yml
@@ -16,6 +16,11 @@ jobs:
ref: ${{ github.event.pull_request.head.sha }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
+ - name: Setup .NET
+ uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
+ with:
+ dotnet-version: '9.0.x'
+
- name: Build
run: |
dotnet build Jellyfin.Server -o ./out
@@ -41,6 +46,11 @@ jobs:
repository: ${{ github.event.pull_request.head.repo.full_name }}
fetch-depth: 0
+ - name: Setup .NET
+ uses: actions/setup-dotnet@3e891b0cb619bf60e2c25674b222b8940e2c1c25 # v4.1.0
+ with:
+ dotnet-version: '9.0.x'
+
- name: Checkout common ancestor
env:
HEAD_REF: ${{ github.head_ref }}
--
cgit v1.2.3