aaubry / YamlDotNet

YamlDotNet is a .NET library for YAML
MIT License
2.48k stars 466 forks source link

Include symbols and deterministic build #910

Closed lahma closed 2 weeks ago

lahma commented 4 months ago

Here I'm basically trying to fix problems that can be seen in NuGet Package explorer: https://nuget.info/packages/YamlDotNet/15.1.1 . Creating symbols and using deterministic build, including repository readme as package readme as NuGet likes to complain about missing readmes.

The build infrastructure is a bit hard to use so let's see if this produces to correct outcome...

As build now passes, should somehow also include snupkg as part of NuGet release push.

thompson-tomo commented 3 months ago

Closes #919

EdwardCooke commented 1 month ago

Will this actually push up the symbols to nuget? I've never tried it so I'm not 100% certain that it actually will.

lahma commented 1 month ago

Quartz.NET does the push with following (https://github.com/quartznet/quartznet/actions/runs/9015590350/job/24771019629):

  10:18:47 [INF] > "C:\Program Files\dotnet\dotnet.exe" nuget push D:\a\quartznet\quartznet\artifacts\Quartz.OpenTelemetry.Instrumentation.3.9.0.nupkg --source https://api.nuget.org/v3/index.json --api-key [REDACTED] --skip-duplicate
  10:18:47 [INF] > "C:\Program Files\dotnet\dotnet.exe" nuget push D:\a\quartznet\quartznet\artifacts\Quartz.3.9.0.nupkg --source https://api.nuget.org/v3/index.json --api-key [REDACTED] --skip-duplicate
  10:18:48 [INF] > "C:\Program Files\dotnet\dotnet.exe" nuget push D:\a\quartznet\quartznet\artifacts\Quartz.OpenTracing.3.9.0.nupkg --source https://api.nuget.org/v3/index.json --api-key [REDACTED] --skip-duplicate
  10:18:49 [INF] > "C:\Program Files\dotnet\dotnet.exe" nuget push D:\a\quartznet\quartznet\artifacts\Quartz.AspNetCore.3.9.0.nupkg --source https://api.nuget.org/v3/index.json --api-key [REDACTED] --skip-duplicate
  10:18:49 [INF] > "C:\Program Files\dotnet\dotnet.exe" nuget push D:\a\quartznet\quartznet\artifacts\Quartz.Plugins.3.9.0.nupkg --source https://api.nuget.org/v3/index.json --api-key [REDACTED] --skip-duplicate
  10:18:49 [INF] > "C:\Program Files\dotnet\dotnet.exe" nuget push D:\a\quartznet\quartznet\artifacts\Quartz.Extensions.DependencyInjection.3.9.0.nupkg --source https://api.nuget.org/v3/index.json --api-key [REDACTED] --skip-duplicate
  10:18:50 [INF] > "C:\Program Files\dotnet\dotnet.exe" nuget push D:\a\quartznet\quartznet\artifacts\Quartz.Plugins.TimeZoneConverter.3.9.0.nupkg --source https://api.nuget.org/v3/index.json --api-key [REDACTED] --skip-duplicate
  10:18:50 [INF] > "C:\Program Files\dotnet\dotnet.exe" nuget push D:\a\quartznet\quartznet\artifacts\Quartz.Extensions.Hosting.3.9.0.nupkg --source https://api.nuget.org/v3/index.json --api-key [REDACTED] --skip-duplicate
  10:18:51 [INF] > "C:\Program Files\dotnet\dotnet.exe" nuget push D:\a\quartznet\quartznet\artifacts\Quartz.Serialization.Json.3.9.0.nupkg --source https://api.nuget.org/v3/index.json --api-key [REDACTED] --skip-duplicate
  10:18:51 [INF] > "C:\Program Files\dotnet\dotnet.exe" nuget push D:\a\quartznet\quartznet\artifacts\Quartz.Jobs.3.9.0.nupkg --source https://api.nuget.org/v3/index.json --api-key [REDACTED] --skip-duplicate

Output:

 10:18:52 [DBG] Pushing Quartz.Jobs.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 432ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Jobs.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 365ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Extensions.Hosting.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 485ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Extensions.Hosting.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 254ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Extensions.DependencyInjection.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 461ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Extensions.DependencyInjection.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 197ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.AspNetCore.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 451ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.AspNetCore.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 144ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 823ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 292ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Serialization.Json.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 487ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Serialization.Json.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 189ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Plugins.TimeZoneConverter.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 641ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Plugins.TimeZoneConverter.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 251ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Plugins.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 495ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Plugins.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 238ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.OpenTracing.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG] warn : Readme missing. Go to https://aka.ms/nuget-include-readme learn How to include a readme file within the package.
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 532ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.OpenTracing.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 206ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.OpenTelemetry.Instrumentation.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG] warn : Readme missing. Go to https://aka.ms/nuget-include-readme learn How to include a readme file within the package.
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 464ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.OpenTelemetry.Instrumentation.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 157ms
 10:18:52 [DBG] Pushing Quartz.Jobs.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 432ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Jobs.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 365ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Extensions.Hosting.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 485ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Extensions.Hosting.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 254ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Extensions.DependencyInjection.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 461ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Extensions.DependencyInjection.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 197ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.AspNetCore.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 451ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.AspNetCore.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 144ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 823ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 292ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Serialization.Json.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 487ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Serialization.Json.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 189ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Plugins.TimeZoneConverter.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 641ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Plugins.TimeZoneConverter.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 251ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Plugins.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 495ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.Plugins.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 238ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.OpenTracing.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG] warn : Readme missing. Go to https://aka.ms/nuget-include-readme learn How to include a readme file within the package.
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 532ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.OpenTracing.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 206ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.OpenTelemetry.Instrumentation.3.9.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/package/
  10:18:52 [DBG] warn : Readme missing. Go to https://aka.ms/nuget-include-readme learn How to include a readme file within the package.
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/package/ 464ms
  10:18:52 [DBG] Your package was pushed.
  10:18:52 [DBG] Pushing Quartz.OpenTelemetry.Instrumentation.3.9.0.snupkg to 'https://www.nuget.org/api/v2/symbolpackage'...
  10:18:52 [DBG]   PUT https://www.nuget.org/api/v2/symbolpackage/
  10:18:52 [DBG]   Created https://www.nuget.org/api/v2/symbolpackage/ 157ms

So the NuGet push should automatically detect .snupkg too.

aaubry commented 2 weeks ago

This feature has been released in version 15.3.0.