jellyfin / jellyfin-plugin-playbackreporting

Playback Statistics Plugin for Jellyfin
https://jellyfin.org
GNU General Public License v3.0
67 stars 25 forks source link

Fix version range to work with dotnet-sdk 3.1.107 #21

Closed Legogris closed 3 years ago

Legogris commented 4 years ago

Without this change, building/restoring on Linux with dotnet-sdk 3.1.107 fails with the following:

/usr/share/dotnet/sdk/3.1.107/NuGet.targets(123,5): error : '10.*-*' is not a valid version string. [/home/legogris/dev/jellyfin-plugin-playbackreporting/Jellyfin.Plugin.PlaybackReporting/Jellyfin.Plugin.PlaybackR
eporting.csproj]

This fixes that.

crobibero commented 4 years ago

Building the plugin with the version as this works fine for me on both Linux and Windows.

Legogris commented 4 years ago

Building the plugin with the version as this works fine for me on both Linux and Windows.

Huh, odd. And there's no additional dependencies or setup? I'm using dotnet-sdk from arch repos.

oddstr13 commented 3 years ago

-* is used explicitly to allow compiling against prerelease NuGet packages, and I've never seen that compile error myself on Ubuntu 18.04.

Possibly a bug in that particular version of the SDK?

crobibero commented 3 years ago

I find it happens sometimes when my IDE doesn't properly run dotnet restore

Legogris commented 3 years ago

Is there some misisng step that needs to be done to make it work? This is with pure CLI and no configuration changed from the default. What's an SDK version I can try with that works for you?

oddstr13 commented 3 years ago

I use this script when building the plugins, and the CI pipeline doing the automated build and publish uses a derivative of it; https://github.com/oddstr13/jellyfin-plugin-repository-manager/blob/master/build_plugin.sh

This is the build log from when I tested before pushing v8 earlier today, it shows the dotnet commands ran by the scripts;

jellyfin-plugin-playbackreporting$ ../build_plugin.sh 
removed './Jellyfin.Plugin.PlaybackReporting/obj/project.assets.json'
warning: `framework` is not specified in build manifest, defaulting to `netstandard2.1`.
warning: The default target framework may change in the future.
Setting project version to 8.2020.1118.247
debug: Old file version: 8.2020.1118.246
debug: Old assembly version: 8.2020.1118.246
Setting project framework to netstandard2.1
debug: Old framework: netstandard2.1
debug: ['run_os_command', ['dotnet', 'clean', '--configuration=Release', '--framework=netstandard2.1'], None, False, '.']
debug: ['run_os_command', ['dotnet', 'restore', '--no-cache'], None, False, '.']
debug: ['run_os_command', ['dotnet', 'publish', '--nologo', '--configuration=Release', '--framework=netstandard2.1', '--output=/tmp/tmp90ft6pac', '/p:Version=8.2020.1118.0247'], None, False, '.']
  Determining projects to restore...
  Restored /mnt/software/Projects/Jellyfin/Plugins/jellyfin-plugin-playbackreporting/Jellyfin.Plugin.PlaybackReporting/Jellyfin.Plugin.PlaybackReporting.csproj (in 489 ms).
  Jellyfin.Plugin.PlaybackReporting -> /mnt/software/Projects/Jellyfin/Plugins/jellyfin-plugin-playbackreporting/Jellyfin.Plugin.PlaybackReporting/bin/Release/netstandard2.1/Jellyfin.Plugin.PlaybackReporting.dll
  Jellyfin.Plugin.PlaybackReporting -> /tmp/tmp90ft6pac/

debug: Reading repo manifest from /mnt/software/Projects/Jellyfin/Plugins/test_repo/manifest.json
Processing /mnt/software/Projects/Jellyfin/Plugins/artifacts/playback-reporting_8.2020.1118.0247.zip
Read meta from `/mnt/software/Projects/Jellyfin/Plugins/artifacts/playback-reporting_8.2020.1118.0247.zip.meta.json`
debug: {'category': 'General', 'changelog': 'Add authentication to plugin endpoints\n', 'description': 'Collect and show user play statistics', 'guid': '5c534381-91a3-43cb-907a-35aa02eb9d2c', 'name': 'Playback Reporting', 'overview': 'Collect and show user play statistics', 'owner': 'jellyfin', 'targetAbi': '10.6.0.0', 'timestamp': '2020-11-18T02:47:19Z', 'version': '8.2020.1118.0247'}
debug: {'guid': '5c534381-91a3-43cb-907a-35aa02eb9d2c', 'name': 'Playback Reporting', 'description': 'Collect and show user play statistics', 'overview': 'Collect and show user play statistics', 'owner': 'jellyfin', 'category': 'General', 'versions': [{'version': '8.2020.1118.0247', 'changelog': 'Add authentication to plugin endpoints\n', 'targetAbi': '10.6.0.0', 'sourceUrl': 'http://localhost:8080/playback-reporting/playback-reporting_8.2020.1118.0247.zip', 'checksum': '4a6e40d46f74987360bf170cb1de9d38', 'timestamp': '2020-11-18T02:47:19Z'}]}
Adding Playback Reporting version 8.2020.1118.0247 to /mnt/software/Projects/Jellyfin/Plugins/test_repo/manifest.json

10.*-* is a requirement for building against the unstable NuGet packages (done extensively just before a new release is cut, to get plugins up to date and ready to go asap after a server release). 10.* does NOT match pre-release packages.

netstandard2.1 is what the plugins have been built with so far, but will be updated to net5.0 for the 10.7 release.

Installed SDKs and runtimes
$ dotnet --info
.NET SDK (reflecting any global.json):
 Version:   5.0.100
 Commit:    5044b93829

Runtime Environment:
 OS Name:     linuxmint
 OS Version:  19.3
 OS Platform: Linux
 RID:         linux-x64
 Base Path:   /usr/share/dotnet/sdk/5.0.100/

Host (useful for support):
  Version: 5.0.0
  Commit:  cf258a14b7

.NET SDKs installed:
  2.2.402 [/usr/share/dotnet/sdk]
  3.0.103 [/usr/share/dotnet/sdk]
  3.1.404 [/usr/share/dotnet/sdk]
  5.0.100 [/usr/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.All 2.2.8 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.2.8 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.0.3 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.10 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.0 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.2.8 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.0.3 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.10 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.0 [/usr/share/dotnet/shared/Microsoft.NETCore.App]