Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Re-enable packages for BuildAllConfigurations#16191

Merged
ericstj merged 9 commits into
dotnet:masterfrom
ericstj:packages
Feb 16, 2017
Merged

Re-enable packages for BuildAllConfigurations#16191
ericstj merged 9 commits into
dotnet:masterfrom
ericstj:packages

Conversation

@ericstj
Copy link
Copy Markdown
Member

@ericstj ericstj commented Feb 15, 2017

/cc @weshaggard @joperezr @mellinoe @chcosta

This re-enables package build in the new engineering infrastructure. It's still using the old method for dependency harvesting. I need to do some work there, this is the first step.

Comment thread Packaging.props Outdated
<SkipBaseLineCheck>true</SkipBaseLineCheck>
<LineupPackageVersion Condition="'$(LineupPackageVersion)' == ''">2.0.0</LineupPackageVersion>
<PlatformPackageVersion Condition="'$(PlatformPackageVersion)' == ''">2.0.0</PlatformPackageVersion>
<PackageTargetRuntime Condition="'$(PackageTargetRuntime)' != '' AND '$(PackageTargetRuntimeSuffix)' != ''">$(PackageTargetRuntime)-$(PackageTargetRuntimeSuffix)</PackageTargetRuntime>
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I plan to move support for PackageTargetRuntimeSuffix into buildtools. The purpose of this is to allow both TargetGroup and OSGroup to independently contribute to a compound RID.

Comment thread Tools-Override/Packaging.targets Outdated
@@ -0,0 +1,1292 @@
<?xml version="1.0" encoding="utf-8"?>
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I actually didn't end up using this and will remove it.

Comment thread buildvertical.targets

<!-- Runs in a leaf project (eg: csproj) to determine configurations to package -->
<Target Name="GetPackageConfigurations"
Returns="$(PackageConfigurations)">
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This enables an optionally independent property for the configurations that go in the package. I'm open to other knobs here. Perhaps a better semantic would be ExcludePackageConfigurations, where PackageConfigurations = BuildConfigurations - ExcludePackageConfigurations.

Comment thread dir.props
<BuildConfigurationImportFile>$(ToolsDir)/configuration/configuration.props</BuildConfigurationImportFile>

<!-- if PKGPROJ doesn't set BuildConfigurations, make sure it only builds for TargetGroup=package or BuildAllConfigurations -->
<BuildConfigurations Condition="'$(MSBuildProjectExtension)' == '.pkgproj' AND '$(BuildConfigurations)' == ''">package</BuildConfigurations>
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I needed to have a TargetGroup and a BuildConfigurations value so that packages wouldn't just get the running BuildConfiguration, which contains an OSGroup, which would set PackageTargetRuntime: even for identity packages.

Comment thread dir.props
<Import Project="$(BuildConfigurationImportFile)" Condition="Exists('$(BuildConfigurationImportFile)')" />

<!-- Import packaging props -->
<Import Project="$(MSBuildThisFileDirectory)Packaging.props"/>
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This reordering can be removed once I put PackageTargetRuntimeSuffix in buildtools

<BuildConfigurations>
uap-Windows_NT;
uapaot-Windows_NT;
uap;
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Per above, I use the OSGroup agnostic configurations because OSGroup implies a PackageTargetRuntime.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

But if we do this, won't we try to build this package in non-Windows builds as well? I believe that would fail since most uap configurations are Windows only.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Only if someone tried to Build UAP targetgroup there...

This turns the package build back on and fixes all packages so that
they build.

There is still work to do to fix dependencies.
All runtime packages will be part of the framework package.

One exception (still TBD) is SqlClient's SNI.dll.
For all libraries that no longer ship in packages, remove baseline
entries for the non-shipping versions.
This to start I did a one-time call of UpdatePackageIndex specifying
InboxFrameworkListFolder=<buildTools>\FrameworkLists

This committed all the previous framework lists to the package index.

Then I updated using the included target to include the inbox items
from framework packages.
@ericstj
Copy link
Copy Markdown
Member Author

ericstj commented Feb 16, 2017

This is nearly ready. I'm waiting on an official build of Build-tools to come out with these changes dotnet/buildtools#1337. That's currently blocked on the myget outage. Once that's in I'll commit the update to this PR and merge it after passing CI.

/cc @ahsonkhan @davidfowl

@ericstj ericstj changed the title [WIP] Re-enable packages for BuildAllConfigurations Re-enable packages for BuildAllConfigurations Feb 16, 2017
@ericstj
Copy link
Copy Markdown
Member Author

ericstj commented Feb 16, 2017

Looks like CI is still failing due to MyGet issues. Will wait some time then rerun.

@ericstj
Copy link
Copy Markdown
Member Author

ericstj commented Feb 16, 2017

@dotnet-bot test Innerloop Ubuntu14.04 Release Build and Test

@ericstj ericstj merged commit 9d1d63f into dotnet:master Feb 16, 2017
@karelz karelz modified the milestone: 2.0.0 Feb 22, 2017
macrogreg pushed a commit to open-telemetry/opentelemetry-dotnet-instrumentation that referenced this pull request Sep 24, 2020
Re-enable packages for BuildAllConfigurations

Commit migrated from dotnet/corefx@9d1d63f
picenka21 pushed a commit to picenka21/runtime that referenced this pull request Feb 18, 2022
Re-enable packages for BuildAllConfigurations

Commit migrated from dotnet/corefx@9d1d63f
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants