-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Adds support for generating Mono named NETCore.App Runtime Packs #34980
Adds support for generating Mono named NETCore.App Runtime Packs #34980
Conversation
In the platforms where there will be both Mono and CoreCLR, we should provide uniquely named runtime packs for easier identification. dotnet#34193 contains the discussion that drove this PR.
src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Runtime.pkgproj
Outdated
Show resolved
Hide resolved
src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Runtime.pkgproj
Show resolved
Hide resolved
Do we want to start generating mono desktop runtime packs already? Or is this just a step towards that? |
src/installer/pkg/projects/netcoreapp/pkg/Microsoft.NETCore.App.Runtime.pkgproj
Outdated
Show resolved
Hide resolved
Yes, I think so. This will be to support Xamarin.Mac. Also, the benchmark team was relying on runtime nuget packages in order to get mono into their runs. Since they were recently disabled, I'm intending for the runtime pack to be a substitute. |
Co-Authored-By: Alexander Köplinger <[email protected]>
…k/runtime into enable-custom-named-runtimepack
…to pick up RuntimeFlavor earlier
…s that need worked through
Removing linux & windows installers. Will file separate issues. Linux (base-job needs modified)
Win (mono needs to write file version & other attributes to coreclr.dll)
|
Official build passed https://dev.azure.com/dnceng/internal/_build/results?buildId=604886&view=results |
I don't know what's expected since I haven't been keeping up with the infra, but this look strange: In
The same nupkg (well, filename) is uploaded during
That makes it a race, but don't know if the contents are different. This may be present in more of the build legs, don't know if this is really a problem with this PR. It's weird to me that this Libraries native package is being uploaded at this point in the build, at all. |
I saw that too and thought about trying to remove it. Should it hold this PR up though? |
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.
Setup changes look reasonable to me. Up to infra team if the race issue needs more attention in this specific PR.
Good catch @dagood. So the package contents should be the same as for this new leg the libraries assets are build against coreclr since I don’t see @steveisok adding a configuration for OSX with mono configuration in libraries. However I think we should do that and probably skip package generation in libraries when RuntimeFlavor == mono. cc @ericstj thoughts? |
<RuntimeFlavor Condition="'$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'Android' or '$(TargetOS)' == 'WebAssembly'">Mono</RuntimeFlavor> | ||
<RuntimeFlavor Condition="'$(RuntimeFlavor)' == '' and ($(_subset.Contains('+mono+')) or $(_subset.Contains('+mono.runtime'))) and (!$(_subset.Contains('+clr+')) and !$(_subset.Contains('+clr.runtime')))">Mono</RuntimeFlavor> | ||
<RuntimeFlavor Condition="'$(RuntimeFlavor)' == ''">CoreCLR</RuntimeFlavor> | ||
|
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.
nit: Please close this PropertyGroup and open a new one.
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.
can that happen in a follow up PR?
</PropertyGroup> | ||
|
||
<!-- Init _subSet here in to allow RuntimeFlavor to be set as early as possible --> |
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.
<!-- Init _subSet here in to allow RuntimeFlavor to be set as early as possible --> | |
<!-- Init _subset here in to allow RuntimeFlavor to be set as early as possible --> |
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.
Same - can that happen in a follow up PR?
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.
of course, those were just nits.
|
||
<PropertyGroup> | ||
<RuntimeFlavor Condition="'$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'Android' or '$(TargetOS)' == 'WebAssembly'">Mono</RuntimeFlavor> | ||
<RuntimeFlavor Condition="'$(RuntimeFlavor)' == '' and ($(_subset.Contains('+mono+')) or $(_subset.Contains('+mono.runtime'))) and (!$(_subset.Contains('+clr+')) and !$(_subset.Contains('+clr.runtime')))">Mono</RuntimeFlavor> |
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.
Lost some +
in the move, it looks like, if I understand the pattern right:
<RuntimeFlavor Condition="'$(RuntimeFlavor)' == '' and ($(_subset.Contains('+mono+')) or $(_subset.Contains('+mono.runtime'))) and (!$(_subset.Contains('+clr+')) and !$(_subset.Contains('+clr.runtime')))">Mono</RuntimeFlavor> | |
<RuntimeFlavor Condition="'$(RuntimeFlavor)' == '' and ($(_subset.Contains('+mono+')) or $(_subset.Contains('+mono.runtime+'))) and (!$(_subset.Contains('+clr+')) and !$(_subset.Contains('+clr.runtime+')))">Mono</RuntimeFlavor> |
I would put it on multiple lines for easier reading/review, but this is subjective and I'm sure some people are annoyed at me doing it all the time 😄:
<RuntimeFlavor
Condition="
'$(RuntimeFlavor)' == '' and
(
$(_subset.Contains('+mono+')) or
$(_subset.Contains('+mono.runtime'))
) and
(
!$(_subset.Contains('+clr+')) and
!$(_subset.Contains('+clr.runtime'))
)">Mono</RuntimeFlavor>
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.
@steveisok I edited my message on Teams and added the missing pluses :D You probably took mine before the edit :D
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.
FWIW, seems like this is a nit as well to me--I think it would only cause a problem if we added a clr.runtimefoobar
subset (and... some probably complicated scenario about what the subset's meant to do).
Co-authored-by: Steve Pfister <[email protected]>
In the platforms where there will be both Mono and CoreCLR, we should provide uniquely named runtime packs for easier identification. This is currently scoped to desktop mono, but could be applied to other scenarios as needed.
Refer to #34193 for the discussion that drove this PR.