videre-project / MTGOSDK

A software development kit (SDK) for inspecting and interacting with the Magic: The Gathering Online (MTGO) client.
Apache License 2.0
3 stars 0 forks source link

Add Sourcelink Support with Deterministic Builds #18

Closed Qonfused closed 2 months ago

Qonfused commented 2 months ago

Resolves #15, adding SourceLink support to the SDK.

### Tasks
- [x] Configure [`SourceLink`](https://github.com/dotnet/sourcelink) for .NET 8+ projects.
- [x] Update publishing config for .snupkg PDB symbols.
- [x] Configure [`DotNet.ReproducibleBuilds`](https://github.com/dotnet/reproducible-builds) for reproducible builds.
- [x] Ensure MTGO reference assembly pipeline (Refasmer + ILRepack) is deterministic.
- [x] Ensure MTGOSDK.Resources bundle is deterministic
Qonfused commented 2 months ago

Currently, the outputted ClrMD assembly from the ScubaDiver project is not deterministic (due to ILMerge): https://github.com/videre-project/MTGOSDK/blob/d3b37b455cc0ce2d1f69a54f1cd7cebd7ee2a9c2/third_party/ScubaDiver/ScubaDiver.csproj#L59-L78

ILMerge will have to be phased out for ILRepack, which supports deterministic builds.