-
Notifications
You must be signed in to change notification settings - Fork 127
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
[Feature]: Trimmable DotNet Project #304
[Feature]: Trimmable DotNet Project #304
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall I like the idea and I can see the use of splitting off the dynamic reading from the base package, but as it is right now I don't think it can be merged just yet.
- The use of
InternalsVisibleTo
is something that really should be avoided in my opinion, and I don't believe it is necessary in this case. - There are still some warnings that were introduced by marking
AsmResolver.DotNet
trimmable. - Few other minor comments can be found in the review.
Side Note; this is a structural breaking change and thus has to wait for a major version bump to be merged. We might need to make specific branches for v4 and v5 if we want to work on both of them simultaneously.
Which warnings are you referring to? Looking at the app veyor log, it seems there are only 4 warnings total:
|
If you make a v5 branch, I can redirect this onto that branch. |
AppVeyor might be deceiving here, since it does not test for publishing as self-contained trimmed bundles. If you try to publish a simple program that just reads and writes a module, you will be notified of problems in DotNetCorePathProvider.cs, ModuleDefinition.cs and TypeSignature.cs, even without explicitly using these functions. The first two can be surpressed I think. The latter, however, is related to the actual DynamicMethodDefinition part, as it is resolving |
What would be the best way to make that part of the continuous integration? |
I am not sure if it is possible directly in an appveyor.yml, as these warnings are only triggered when trying to publish a consumer project. There's the option for custom build scripts which we may be able to use to manually invoke |
Would you be willing to switch from AppVeyor to GitHub Actions? It's very customizable. Also, it may be a good idea to switch the default branch from |
I am fine with using github actions, but whether we use actions or appveyor isn't going to change the fact that this test is going to require a publish on a project that uses AsmResolver.DotNet (i.e. not a publish of a core package itself). I don't really see a need of switching default branches if the pipeline can be configured to work on multiple branches. I'd rather see the master branch as the front page of the project, since it is the version that most people will be using in the end. |
As far as I can see, I think to fix the warnings happening in
|
Bumps [System.Text.Json](https://github.com/dotnet/runtime) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/dotnet/runtime/releases) - [Commits](dotnet/runtime@v6.0.4...v6.0.5) --- updated-dependencies: - dependency-name: System.Text.Json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]>
…date-offsets Refactor ISegment::UpdateOffsets
…er, avoiding expensive resolutions.
…etadataReaderContext.
…m contains these tables.
…tables Read/Write support Portable PDB metadata
…mResolver into ds5678-TrimmableDotNetProject
It seems like it is possible to run |
to avoid trim warnings.
This pull request enables trimmable support in the
AsmResolver.DotNet
module by moving the problematic code into a new non-trimmable projectAsmResolver.DotNet.Dynamic
.