dotnet / dotnet/source-build

Should source-build-reference-packages use Microsoft.NET.Sdk.IL?

Open
#1,595 1 comment 0 reactions 0 assignees View on GitHub
area-infra
Dominant language
No language data
Stars
287
Forks
145
Avg merge
1d 22h
Merged PRs (30d)
10

Description

dotnet/runtime produces [Microsoft.NET.Sdk.IL](https://github.com/dotnet/runtime/tree/355ae18f40b4548f1baca724d97fdafea764bb3b/src/coreclr/src/.nuget/Microsoft.NET.Sdk.IL), which:
* Restores the right ilasm + ildasm packages, allowing for overrides
* Runs ilasm with some preset flags and extensibility (it appears, through `$(IlasmFlags)`)

The IL SDK seems to have been in a bit of ownership limbo, but it is used in at least one other non-dotnet/runtime repo, and there are some recent plans to be careful about breaking changes: https://github.com/dotnet/runtime/issues/1338#issuecomment-604431105.

source-build-reference-packages already knows how to call ilasm correctly, and has its own way to grab it. I don't *think* there are any improvements we'd get immediately from switching. I think there are mainly the ordinary nice results of sharing code: we simplify source-build-reference-packages, and the IL SDK *may* handle ilasm breaking changes (package name, flags, etc.), rather than us duplicating the changes after the fact. If source-build-reference-packages needs any more complex behavior, we could push it into the SDK so it can be reviewed/maintained by ilasm/ildasm experts.

The circular dependency is not a concern--this would be the same situation as the Arcade SDK. (And FWIW, source-build-ref-pkgs will get a deeper dependence on the Arcade SDK in 5.0.)

Thought of this while poking at https://github.com/dotnet/source-build/issues/1591 "Change source-build-reference-packages to follow the 5.0 plan as an ordinary repo". I don't think it necessarily makes sense to do in 5.0.

/cc @dseefeld @crummel @ViktorHofer

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.