Skip to content
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

Use checked-in platform manifest in 3.1.2 #18250

Merged
merged 2 commits into from
Jan 15, 2020
Merged

Use checked-in platform manifest in 3.1.2 #18250

merged 2 commits into from
Jan 15, 2020

Conversation

wtgodbe
Copy link
Member

@wtgodbe wtgodbe commented Jan 9, 2020

I generated this platform manifest based off of the 3.1.0 runtime pack. Checking it into the repo is sufficient for 3.1.2, since there is no "known good" platform manifest for 3.1.x that we can harvest and insert into the package. Replaces #17957. Copied from there:

#14538 changed PlatformManifest.txt in the Targeting pack to list the assemblies in the targeting pack, rather than to list the assemblies in the runtime pack. At the time, we thought the former was the correct behavior, but in reality the latter is correct. The platform manifest exists to inform an app, while building against the ref pack assemblies, what will be available in the shared framework at runtime. We changed this behavior between 3.0.0 and 3.0.1, which broke customers who had transitive 2.x dependencies in their 3.0 apps (specifically aspnetcorev2_inprocess.dll).

We have a somewhat ugly workaround for this and are working on finding a better one.

I'll open an issue to track coming up with a better solution in case we need to service the targeting pack in the future - ideally a solution would be general across all repos that generate a targeting pack

CC @nguerrera @dagood @ericstj @Pilchie @JunTaoLuo @jkotalik @dougbu

<IsTargetingPackBuilding Condition=" '$(DotNetBuildFromSource)' == 'true' ">false</IsTargetingPackBuilding>
<IsTargetingPackBuilding
Condition=" '$(IsTargetingPackBuilding)' == '' AND '$(VersionPrefix)' == '3.0.1' ">true</IsTargetingPackBuilding>
Condition=" '$(IsTargetingPackBuilding)' == '' AND '$(VersionPrefix)' == '3.1.2' ">true</IsTargetingPackBuilding>
Copy link
Contributor

@JunTaoLuo JunTaoLuo Jan 10, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI I already made these changes in https://github.com/dotnet/aspnetcore/pull/18151/files so there may be some conflict when merging.

@@ -33,7 +33,7 @@
<!-- TargetingPackVersionPrefix is used by projects, like .deb and .rpm, which use slightly different version formats. -->
<TargetingPackVersionPrefix>$(VersionPrefix)</TargetingPackVersionPrefix>
<!-- Targeting packs do not produce patch versions in servicing builds. No API changes are allowed in patches. -->
<TargetingPackVersionPrefix Condition="'$(IsServicingBuild)' == 'true'">$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0</TargetingPackVersionPrefix>
<TargetingPackVersionPrefix Condition="'$(IsTargetingPackBuilding)' != 'true'">$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).2</TargetingPackVersionPrefix>
Copy link
Contributor

@JunTaoLuo JunTaoLuo Jan 10, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Good catch.

Copy link
Member

@Pilchie Pilchie left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me based on the conversations I've had so far with @ericstj and @nguerrera

@Pilchie Pilchie added the feature-platform Deprecated: Cross-cutting issues related to ASP.NET Core as a platform label Jan 10, 2020
@wtgodbe
Copy link
Member Author

wtgodbe commented Jan 10, 2020

This was approved for 3.1.2 in #17957

@wtgodbe wtgodbe added this to the 3.1.2 milestone Jan 10, 2020
@wtgodbe wtgodbe added the Servicing-approved Shiproom has approved the issue label Jan 10, 2020
Copy link
Member

@dougbu dougbu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good but please do a fake non-servicing build after cleaning your repo e.g. port to 'master'. That'll confirm build ordering doesn't mess up the changes to the App.Ref. (App.Runtime depends on App.Ref, not the other way 'round. But, I'm not sure about when the specific packaging targets run.)

@@ -53,7 +53,8 @@ This package is an internal implementation of the .NET Core SDK and is not meant
<!-- Platform manifest and package override metatdata -->
<ReferencePackSharedFxVersion>$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0</ReferencePackSharedFxVersion>
<ReferencePackSharedFxVersion Condition="'$(VersionSuffix)' != ''">$(ReferencePackSharedFxVersion)-$(VersionSuffix)</ReferencePackSharedFxVersion>
<ReferencePlatformManifestOutputPath>$(ArtifactsObjDir)ref\PlatformManifest.txt</ReferencePlatformManifestOutputPath>
<ReferencePlatformManifestPath Condition="'$(IsServicingBuild)' != 'true'">$(PlatformManifestOutputPath)</ReferencePlatformManifestPath>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit:

Suggested change
<ReferencePlatformManifestPath Condition="'$(IsServicingBuild)' != 'true'">$(PlatformManifestOutputPath)</ReferencePlatformManifestPath>
<ReferencePlatformManifestPath>$(PlatformManifestOutputPath)</ReferencePlatformManifestPath>

@wtgodbe wtgodbe merged commit ee57a0c into release/3.1 Jan 15, 2020
@wtgodbe wtgodbe deleted the PlatMan31 branch January 15, 2020 19:01
dougbu added a commit that referenced this pull request Jan 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-platform Deprecated: Cross-cutting issues related to ASP.NET Core as a platform Servicing-approved Shiproom has approved the issue
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants