Skip to content

Add Infra for porting lib only packages to use dotnet pack instead of pkgprojs #51765

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

Merged
merged 11 commits into from
Apr 29, 2021
Merged

Conversation

Anipik
Copy link
Contributor

@Anipik Anipik commented Apr 23, 2021

Related PR #48385

Design Changes

  • no more pkgproj
  • separate symbol nuspec files
  • minor change in metadata like no owners (Metadata not supported by the nuget pack)
  • nuspec name contains package version
  • no more pkgpath files (not sure why we were producing it in the first place)
  • no more package reports
  • removed implicit framework assembly references from the package like mscorlib.dll for net472
  • exclude="Build,Analyzers" for all dependencies

Validation changes

  • Closure verification in the all config
  • Package validation during build packages is no longer done as it was not doing any substantial work for extensions packages.

Test

  • verified the nuspec files to check

  • did a beynd comparer for the overall artifacts, changes were expected

  • moving just one proj to unblock this effort and to add infra, (will start moving similar projs after this one is merged)

Added few comments in response to the comments to the previous linked pr

@Anipik Anipik requested review from ViktorHofer and ericstj April 23, 2021 21:55
@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@Anipik
Copy link
Contributor Author

Anipik commented Apr 23, 2021

Curious, why is true removed in the nuspec? Arcade sets it to true: https://github.com/dotnet/arcade/blob/99b9f805da070d301d76eac578a46dd75d9e5f7c/src/Microsoft.DotNet.Arcade.Sdk/tools/ProjectDefaults.props#L14. Is it omitted in case it's true?

not sure but its being passed as true to the pack task. It seems like servicable property is being written only to symbols package by the pack task

@Anipik
Copy link
Contributor Author

Anipik commented Apr 23, 2021

The diff is between nuspec before the change and symbols package nuspec after the change

@@ -1,15 +1,12 @@
 <EF><BB><BF><?xml version="1.0" encoding="utf-8"?>
-<package xmlns="http://schemas.microsoft.com/packaging/2013/01/nuspec.xsd">
-  <metadata minClientVersion="2.12">
+<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
+  <metadata>
     <id>Microsoft.Extensions.Configuration.EnvironmentVariables</id>
     <version>6.0.0-dev</version>
-    <title>Microsoft.Extensions.Configuration.EnvironmentVariables</title>
     <authors>Microsoft</authors>
-    <owners>microsoft,dotnetframework</owners>
-    <requireLicenseAcceptance>false</requireLicenseAcceptance>
     <license type="expression">MIT</license>
+    <licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
     <icon>Icon.png</icon>
-    <projectUrl>https://dot.net/</projectUrl>
     <iconUrl>http://go.microsoft.com/fwlink/?LinkID=288859</iconUrl>
     <description>Environment variables configuration provider implementation for Microsoft.Extensions.Configuration.</description>
     <releaseNotes>https://go.microsoft.com/fwlink/?LinkID=799421</releaseNotes>
@@ -18,27 +15,24 @@
     <repository type="git" url="https://github.com/dotnet/runtime" commit="0000000000000000000000000000000000000000" />
     <dependencies>
       <group targetFramework=".NETFramework4.6.1">
-        <dependency id="Microsoft.Extensions.Configuration" version="6.0.0-dev" />
-        <dependency id="Microsoft.Extensions.Configuration.Abstractions" version="6.0.0-dev" />
+        <dependency id="Microsoft.Extensions.Configuration.Abstractions" version="6.0.0-dev" exclude="Build,Analyzers" />
+        <dependency id="Microsoft.Extensions.Configuration" version="6.0.0-dev" exclude="Build,Analyzers" />
       </group>
       <group targetFramework=".NETStandard2.0">
-        <dependency id="Microsoft.Extensions.Configuration" version="6.0.0-dev" />
-        <dependency id="Microsoft.Extensions.Configuration.Abstractions" version="6.0.0-dev" />
+        <dependency id="Microsoft.Extensions.Configuration.Abstractions" version="6.0.0-dev" exclude="Build,Analyzers" />
+        <dependency id="Microsoft.Extensions.Configuration" version="6.0.0-dev" exclude="Build,Analyzers" />
       </group>
     </dependencies>
-    <frameworkAssemblies>
-      <frameworkAssembly assemblyName="mscorlib" targetFramework=".NETFramework4.6.1" />
-    </frameworkAssemblies>
   </metadata>
   <files>
-    <file src="C:\Users\anagniho\.nuget\packages\microsoft.dotnet.arcade.sdk\6.0.0-beta.21219.2\tools\Assets\DotNetPackageIcon.png" target="Icon.png" exclude="" />
-    <file src="C:\git\runtime3\artifacts\bin\Microsoft.Extensions.Configuration.EnvironmentVariables\net461-Debug\Microsoft.Extensions.Configuration.EnvironmentVariables.dll" target="lib\net461" exclude="" />
-    <file src="C:\git\runtime3\artifacts\bin\Microsoft.Extensions.Configuration.EnvironmentVariables\net461-Debug\Microsoft.Extensions.Configuration.EnvironmentVariables.pdb" target="lib\net461" exclude="" />
-    <file src="C:\Users\anagniho\.nuget\packages\microsoft.private.intellisense\5.0.0-preview-20201009.2\IntellisenseFiles\net\1033\Microsoft.Extensions.Configuration.EnvironmentVariables.xml" target="lib\net461" exclude="" />
-    <file src="C:\git\runtime3\artifacts\bin\Microsoft.Extensions.Configuration.EnvironmentVariables\netstandard2.0-Debug\Microsoft.Extensions.Configuration.EnvironmentVariables.dll" target="lib\netstandard2.0" exclude="" />
-    <file src="C:\git\runtime3\artifacts\bin\Microsoft.Extensions.Configuration.EnvironmentVariables\netstandard2.0-Debug\Microsoft.Extensions.Configuration.EnvironmentVariables.pdb" target="lib\netstandard2.0" exclude="" />
-    <file src="C:\Users\anagniho\.nuget\packages\microsoft.private.intellisense\5.0.0-preview-20201009.2\IntellisenseFiles\net\1033\Microsoft.Extensions.Configuration.EnvironmentVariables.xml" target="lib\netstandard2.0" exclude="" />
-    <file src="C:\git\runtime3\LICENSE.TXT" target="LICENSE.TXT" exclude="" />
-    <file src="C:\git\runtime3\THIRD-PARTY-NOTICES.TXT" target="THIRD-PARTY-NOTICES.TXT" exclude="" />
+    <file src="C:\git\runtime4\artifacts\bin\Microsoft.Extensions.Configuration.EnvironmentVariables\net461-Debug\Microsoft.Extensions.Configuration.EnvironmentVariables.pdb" target="lib\net461\Microsoft.Extensions.Configuration.EnvironmentVariables.pdb" />
+    <file src="C:\git\runtime4\artifacts\bin\Microsoft.Extensions.Configuration.EnvironmentVariables\netstandard2.0-Debug\Microsoft.Extensions.Configuration.EnvironmentVariables.pdb" target="lib\netstandard2.0\Microsoft.Extensions.Configuration.EnvironmentVariables.pdb" />
+    <file src="C:\git\runtime4\artifacts\bin\Microsoft.Extensions.Configuration.EnvironmentVariables\net461-Debug\Microsoft.Extensions.Configuration.EnvironmentVariables.dll" target="lib\net461\Microsoft.Extensions.Configuration.EnvironmentVariables.dll" />
+    <file src="C:\git\runtime4\artifacts\bin\Microsoft.Extensions.Configuration.EnvironmentVariables\netstandard2.0-Debug\Microsoft.Extensions.Configuration.EnvironmentVariables.dll" target="lib\netstandard2.0\Microsoft.Extensions.Configuration.EnvironmentVariables.dll" />
+    <file src="C:\Users\anagniho\.nuget\packages\microsoft.private.intellisense\5.0.0-preview-20201009.2\IntellisenseFiles\net\1033\Microsoft.Extensions.Configuration.EnvironmentVariables.xml" target="lib\net461\Microsoft.Extensions.Configuration.EnvironmentVariables.xml" />
+    <file src="C:\Users\anagniho\.nuget\packages\microsoft.private.intellisense\5.0.0-preview-20201009.2\IntellisenseFiles\net\1033\Microsoft.Extensions.Configuration.EnvironmentVariables.xml" target="lib\netstandard2.0\Microsoft.Extensions.Configuration.EnvironmentVariables.xml" />
+    <file src="C:\Users\anagniho\.nuget\packages\microsoft.dotnet.arcade.sdk\6.0.0-beta.21219.2\tools\Assets\DotNetPackageIcon.png" target="Icon.png" />
+    <file src="C:\git\runtime4\LICENSE.TXT" target="LICENSE.TXT" />
+    <file src="C:\git\runtime4\THIRD-PARTY-NOTICES.TXT" target="THIRD-PARTY-NOTICES.TXT" />
   </files>
 </package>
\ No newline at end of file

@safern
Copy link
Member

safern commented Apr 24, 2021

It seems like project url should be in the nuspec and it's being removed?

Also why is the framework reference to mscorlib removed?

@Anipik
Copy link
Contributor Author

Anipik commented Apr 24, 2021

It seems like project url should be in the nuspec and it's being removed?

It was being set to an empty, fixed and checked nuspec it contains the same value now

Also why is the framework reference to mscorlib removed?

sdk adds this by default so packages dont need to have this anymore.

@Anipik
Copy link
Contributor Author

Anipik commented Apr 25, 2021

cc headsup @dseefeld this change might effect on how u build the packages. let me know if it breaks anything and i can help

@ViktorHofer
Copy link
Member

ViktorHofer commented Apr 27, 2021

Please move the PackageDescription into the csproj from the Directory.Build.props as well:

<PackageDescription>Environment variables configuration provider implementation for Microsoft.Extensions.Configuration.</PackageDescription>

Copy link
Member

@ViktorHofer ViktorHofer left a comment

Choose a reason for hiding this comment

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

I'm now very happy about this PR 👍 Thanks

@Anipik
Copy link
Contributor Author

Anipik commented Apr 29, 2021

awesome

@Anipik
Copy link
Contributor Author

Anipik commented Apr 29, 2021

failed test #52031

@Anipik Anipik merged commit 28b9c72 into dotnet:main Apr 29, 2021
@Anipik Anipik deleted the port branch April 29, 2021 22:07
@karelz karelz added this to the 6.0.0 milestone May 20, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Jun 19, 2021
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.

4 participants