-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make ILCompiler.Reflection.ReadyToRun an Official NuGet Package #41379
Comments
When you say "official", do you mean: "is tested, has guarantees around breaking changes to the API surface, and gets published by Microsoft to nuget.org"? Or is this more a request for "a package gets pushed into an Azure NuGet feed with the rest of the artifacts produced by daily builds of dotnet/runtime". Cc @mangod9 |
We'd be fine with the latter - built & provided by dotnet/runtime team (as long as the retention on that feed is for a long-ish time). We are aware that the potential number of consumers for this package might be too small for a full-on nuget.org release with all the necessary quality guarantees. |
tldr: For convenience reasons. It would be appreciated. 👍 Bear with us (consumers)
Christoph, you beat me to it. (I was looking for this library on nuget yesterday and didn't find it, and now here's a request..) |
@cshung will follow up on the requirements here and we will evaluate the best approach to get it officially published. |
I am writing this comment to propose and confirm the requirements for publishing. Just to make sure everybody is on the same page. Retention and FrequencyRetention is probably the most important concern. For projects to reliably depend on a library, it is important for them to make sure the library exists. This is probably more important than the release frequency. Looking at history, the library is not changed often enough to warrant a daily release. So I suggest a release that lasts forever but on-demand, similar to what we did with TestingWe do not have any automated testing of the library. That being said, Breaking changesThe ready to run compiler is still an active project. As such, there will be changes. Making sure the library is backward compatible without breaking changes is more a hindrance than a help to the project. Thanks to NuGet, as long as the referencing projects do not upgrade, breaking changes should not be a problem. The Publishing FeedI am not sure if we need a certain level of guarantees in order to be published through Feedback@christophwille, @sos-dll Microsoft internal folks, if my suggestions are impractical for any reason, feel free to let me know. |
|
Another topic to cover is Security: This is parser for potentially malicious input. Are there things to do for that? |
Good enough for our purposes. |
@cshung this can be closed now I assume? |
Background
ILSpy uses a private NuGet created by @cshung to implement the ReadyToRun decompilation functionality. The private NuGet is mostly copies of \runtime\src\coreclr\src\tools\aot\ILCompiler.Reflection.ReadyToRun plus a few common files that are infrequently updated manually.
Private NuGet inclusion see https://github.com/icsharpcode/ILSpy/blob/master/ILSpy.ReadyToRun/ILSpy.ReadyToRun.csproj#L78
Proposed Solution
Although using this private NuGet gets the job done, taking verbatim copies from "some other place" is a practice we'd like to stop rather sooner than later. The preferred fix is to have an official NuGet package for ILCompiler.Reflection.ReadyToRun - much like we are using System.Reflection.Metadata today.
The text was updated successfully, but these errors were encountered: