-
Notifications
You must be signed in to change notification settings - Fork 10.1k
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
Update the artifacts directory organization and simplify publishing targets #5701
Conversation
By default, all projects which produce packages are not intended to ship to NuGet.org as a product package. | ||
Packages which are intended to ship to NuGet.org must opt-in by setting this to true in the project file. | ||
--> | ||
<IsProductPackage Condition=" '$(IsProductPackage)' == '' ">false</IsProductPackage> |
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.
Is this semantically different from IsShipping
that's used by arcade? If there's an important different should we discuss with them? If not, should we just use the same property name as arcade?
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.
I think of IsShipping as a subset of IsProductPackage. IsProductPackage means "this is a package that is meant for a customer to use" and IsShipping means "this package should ship in the next release". In 2.2 we had a handful of packages that were built as "product packages" but that we decided to yank from shipping after the build was done.
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.
It sounds like we have a requirement that they don't totally support then? Is this tracked somewhere
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.
dotnet/arcade#1179 is probably the best item for this. Arcade publishing is a hot mess right now and will likely be completely re-invented again before we finish RTM. I'm not pinning any hopes on 'IsShipping'.
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.
Looks good. Some suggestions and requests but no show-stoppers.
<NpmPackageToPublish Include="$(DependencyAssetsDir)%(ArtifactInfo.FileName)%(ArtifactInfo.Extension)" Condition="'%(ArtifactInfo.ArtifactType)' == 'NpmPackage'"> | ||
<RelativeBlobPath>$(NpmBlobBasePath)%(ArtifactInfo.PackageId)/%(ArtifactInfo.FileName)%(ArtifactInfo.Extension)</RelativeBlobPath> | ||
<!-- NPM packages --> | ||
<NpmPackagesToPublish Include="$(ProductPackageOutputPath)*.tgz"> |
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.
Is it a safe assumption that all tgz files are npm packages?
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.
In the context of the ProductPackageOutputPath folder, yes, *.tgz should only match npm packages.
</PropertyGroup> | ||
|
||
<PropertyGroup> |
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.
Seems like this is boilerplate now, is it possible to pop it up a level into something like src/Directory.Build.targets
?
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.
This entire file will completely go away as we continue to make progress on #4246.
....AzureAppServices.HostingStartup/Microsoft.AspNetCore.AzureAppServices.HostingStartup.csproj
Show resolved
Hide resolved
*.tgz = NPM packages which ship to npmjs.org | ||
internal/ | ||
*.nupkg = NuGet packages for internal use only. Used to hand off bits to Microsoft partner teams. Not intended for use by customers. | ||
``` |
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.
Nice 👍
…d publishing targets
…argets (dotnet/aspnetcore#5701) This simplifies the way that we publish files to our network drop share. Changes: * Instead of explicitly listing every file that needs to publish, use directories to classify packages and artifacts into different categories. * Add documentation for the expected layout of artifacts/ * Remove the need for static analysis to determine which packages go to which project * Add the MSBuild property "IsProductPackage" to .csproj files which ship as a package to NuGet.org. Commit migrated from dotnet/aspnetcore@335c9be7b4a7
This simplifies the way that we publish files to our network drop share.
Changes:
Implements https://github.com/aspnet/AspNetCore-Internal/issues/1427
cc @mkArtakMSFT @muratg