dotnet / machinelearning

ML.NET is an open source and cross-platform machine learning framework for .NET.
https://dot.net/ml
MIT License
9.02k stars 1.88k forks source link

Add `source link`, `deterministic` build and symbols on release/nuget package #6900

Open bruno-garcia opened 10 months ago

bruno-garcia commented 10 months ago

The current publish flow (as of 3.0.0) isn't following the NuGet package best practicies.

image

Ideally it:

  1. uses the compiler deterministic flag to allow us to match source to the compiled DLLs.
  2. publishes a debug symbols package to nuget.org so tools like IDEs and crash reporting services like http://sentry.io can fetch symbols and show line numbers, file paths
  3. Add sourcelink and embed sources so tools can fetch the source code at the exact commit published, as well as display link to open file on GitHub (Sentry can do that for example)