Add Jellyfin 12.0 build target alongside 10.9
The plugin now multi-targets net8.0 (Jellyfin 10.9, ABI 10.9.0.0) and net10.0 (Jellyfin 12.0, ABI 12.0.0.0) from one source tree, and each release ships both packages. TaskTriggerInfo.Type became a TaskTriggerInfoType enum in 12.0, which is the only source-level break; it is handled with a NET10_0_OR_GREATER switch. CA1873 is disabled in the ruleset alongside CA1848, which it supersedes. build.yaml stays the 10.9 config and the 12.0 one is derived from it at build time, so the two cannot drift apart. Both manifest entries are prepended per release with the 12.0 one first: Jellyfin keeps entries whose targetAbi is <= the server version and takes the first of the highest version, so a 12.0 server picks the 12.0 build while a 10.9 server never sees it. The builder image now carries the .NET 10 SDK with the .NET 8 SDK alongside it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -10,6 +10,19 @@ Add this repository URL in Jellyfin (Dashboard → Plugins → Repositories):
|
||||
https://gitea.tourolle.paris/dtourolle/jellypod/raw/branch/master/manifest.json
|
||||
```
|
||||
|
||||
## Supported Jellyfin Versions
|
||||
|
||||
Jellypod is released as two builds from the same source. The repository manifest
|
||||
lists both, and Jellyfin picks the right one for your server automatically:
|
||||
|
||||
| Jellyfin server | Build | Target framework |
|
||||
| --------------- | -------------- | ---------------- |
|
||||
| 10.9.x | `*_jf10.9.zip` | .NET 8 |
|
||||
| 12.0 and newer | `*_jf12.zip` | .NET 10 |
|
||||
|
||||
If you install manually, download the build matching your server — a build
|
||||
installed on the wrong server will fail to load.
|
||||
|
||||
## Features
|
||||
|
||||
- Browse and subscribe to podcasts
|
||||
@@ -92,7 +105,9 @@ ffmpeg -i "$INPUT" -c:a aac -b:a 128k "$OUTPUT"
|
||||
|
||||
### Manual Installation
|
||||
|
||||
1. Download the latest release from [Releases](https://gitea.tourolle.paris/dtourolle/jellypod/releases)
|
||||
1. Download the latest release from [Releases](https://gitea.tourolle.paris/dtourolle/jellypod/releases),
|
||||
picking `jellypod_<version>_jf10.9.zip` for Jellyfin 10.9.x or
|
||||
`jellypod_<version>_jf12.zip` for Jellyfin 12.0 and newer
|
||||
2. Extract the contents to your Jellyfin plugins directory:
|
||||
- **Linux**: `~/.local/share/jellyfin/plugins/Jellypod/`
|
||||
- **Windows**: `%LOCALAPPDATA%\jellyfin\plugins\Jellypod\`
|
||||
@@ -103,15 +118,32 @@ ffmpeg -i "$INPUT" -c:a aac -b:a 128k "$OUTPUT"
|
||||
|
||||
#### Requirements
|
||||
|
||||
- [.NET SDK 8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0)
|
||||
- [.NET SDK 8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) for the Jellyfin 10.9 build
|
||||
- [.NET SDK 10.0](https://dotnet.microsoft.com/en-us/download/dotnet/10.0) for the Jellyfin 12.0 build
|
||||
|
||||
#### Build
|
||||
|
||||
```bash
|
||||
dotnet build
|
||||
dotnet build # both targets
|
||||
dotnet build -f net8.0 # Jellyfin 10.9 only
|
||||
dotnet build -f net10.0 # Jellyfin 12.0 only
|
||||
```
|
||||
|
||||
The plugin DLL will be in `Jellyfin.Plugin.Jellypod/bin/Debug/net8.0/`.
|
||||
The plugin DLL will be in `Jellyfin.Plugin.Jellypod/bin/Debug/net8.0/` or
|
||||
`Jellyfin.Plugin.Jellypod/bin/Debug/net10.0/`.
|
||||
|
||||
#### Packaging
|
||||
|
||||
`build.yaml` is the [jprm](https://github.com/oddstr13/jellyfin-plugin-repository-manager)
|
||||
config for the Jellyfin 10.9 build. The Jellyfin 12.0 config is derived from it
|
||||
at release time, so the two cannot drift apart:
|
||||
|
||||
```bash
|
||||
sed -e 's/^targetAbi:.*/targetAbi: "12.0.0.0"/' \
|
||||
-e 's/^framework:.*/framework: "net10.0"/' \
|
||||
-e 's/^dotnet_framework:.*/dotnet_framework: "net10.0"/' \
|
||||
build.yaml > build.jf12.yaml
|
||||
```
|
||||
|
||||
## Development
|
||||
|
||||
|
||||
Reference in New Issue
Block a user