castleproject / Core

Castle Core, including Castle DynamicProxy, Logging Services and DictionaryAdapter
http://www.castleproject.org/
Other
2.2k stars 467 forks source link

Support Sourcelink and Deterministic Build #669

Open 304NotModified opened 11 months ago

304NotModified commented 11 months ago

This PR enables Source Link and Deterministic Builds.

Why

Most of the top NuGet packages has enabled Source Link. Also some are using Deterministic Build.

E.g. Newtonsoft.Json

image

I've also configured deterministic builds for other open-source projects, e.g. https://github.com/nunit/nunit/pull/3810, https://github.com/App-vNext/Polly/pull/839

More info

Before

(Checked with https://github.com/NuGetPackageExplorer/NuGetPackageExplorer)

image image image image

After

TODO

Note, no signature because this is from local. You could also see this by downloading the .nugpkg and .snupkg from the artifacts from AppVeyor

Note! the .snukpg should be published to nuget.org, otherwise the source link won't work

Note

AFAIK the nuget push on https://github.com/castleproject/Core/blob/f937cc1a766250772d1a6f582fab1d11594591c2/appveyor.yml#L69C1-L72C158 will also push the snupkg (and that's good!)

TODO

stakx commented 11 months ago

Hi @304NotModified and thanks for working on this. I am going to take a closer look soon. In the meantime, could you take a look at a previous (but unmerged) SourceLink PR https://github.com/castleproject/Core/pull/524 and see how much of the review comments there may still apply here too? Thanks!

304NotModified commented 11 months ago

Will do, probably after this weekend!

I will undraft this PR when it's ready :)