Skip to content

Commit e9ffa8c

Browse files
Require package readmes for shipping packages (#105019)
* Require package readmes for shipping packages Add a target that validates that a package readme exists for a shipping package. Set EnableDefaultPackageReadmeFile=false in projects that don't yet have a package readme. * Delete empty package readme files that were accidentally committed * Update packaging.targets * Only enable package readme validation for src/libraries * Move to targets file * Update eng/packaging.targets Co-authored-by: Carlos Sánchez López <[email protected]> * Update packaging.targets --------- Co-authored-by: Carlos Sánchez López <[email protected]>
1 parent 1c4ac7d commit e9ffa8c

File tree

58 files changed

+87
-1066
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+87
-1066
lines changed

eng/packaging.targets

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,12 @@
2020
<!-- Don't treat the TPM as an input to APICompat PackageValidation's reference assembly calculation. -->
2121
<ApiCompatIgnoreTargetPlatformMoniker Condition="'$(SuppressDependenciesWhenPacking)' == 'true'">true</ApiCompatIgnoreTargetPlatformMoniker>
2222
<PackageDesignerMarkerFile>$(MSBuildThisFileDirectory)useSharedDesignerContext.txt</PackageDesignerMarkerFile>
23-
<PackageReadmeFile Condition="'$(PackageReadmeFile)' == '' and Exists('PACKAGE.md')">PACKAGE.md</PackageReadmeFile>
23+
24+
<!-- PackageReadmeFile specifies the package readme file name in the package. PackageReadmeFilePath points to the package readme file on disk. -->
25+
<PackageReadmeFile Condition="'$(PackageReadmeFile)' == '' and '$(EnableDefaultPackageReadmeFile)' == 'true'">PACKAGE.md</PackageReadmeFile>
26+
<PackageReadmeFilePath Condition="'$(PackageReadmeFilePath)' == '' and '$(EnableDefaultPackageReadmeFile)' == 'true'">PACKAGE.md</PackageReadmeFilePath>
27+
<BeforePack>$(BeforePack);ValidatePackageReadmeExists</BeforePack>
28+
2429
<!-- Non-shipping packages shouldn't incrementally serviced. -->
2530
<PackageUseIncrementalServicingVersion Condition="'$(IsShipping)' != 'true'">false</PackageUseIncrementalServicingVersion>
2631
<!-- Generate packages for rid specific projects or for allconfigurations during build. -->
@@ -83,9 +88,9 @@
8388
TargetFramework="$(NetFrameworkMinimum)" />
8489
</ItemGroup>
8590

86-
<!-- Add a package README file from. -->
87-
<ItemGroup Condition="'$(PackageReadmeFile)' != ''">
88-
<None Include="$(PackageReadmeFile)" Pack="true" PackagePath="\" />
91+
<!-- Add a package README file -->
92+
<ItemGroup Condition="'$(PackageReadmeFilePath)' != ''">
93+
<None Include="$(PackageReadmeFilePath)" Pack="true" PackagePath="\" />
8994
</ItemGroup>
9095

9196
<Choose>
@@ -312,4 +317,10 @@
312317
<Error Condition="'$(ServicingVersion)' == '0'" Text="ServicingVersion is set to 0 and it should be an increment of the patch version from the last released package." />
313318
</Target>
314319

320+
<Target Name="ValidatePackageReadmeExists"
321+
Condition="'$(PackageReadmeFilePath)' != '' and
322+
!Exists('$(PackageReadmeFilePath)')">
323+
<Error Text="$(PackageId) is a shipping package and is missing a required package README file. Add a 'PACKAGE.md' file into to the source project folder." />
324+
</Target>
325+
315326
</Project>

src/libraries/Directory.Build.targets

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@
126126
'$(IsTestProject)' != 'true' and
127127
'$(IsTestSupportProject)' != 'true' and
128128
'$(IsGeneratorProject)' != 'true'">true</SkipTargetingPackShimReferences>
129+
130+
<!-- Make libraries packages use and require a package readme file. -->
131+
<EnableDefaultPackageReadmeFile Condition="'$(EnableDefaultPackageReadmeFile)' == '' and '$(IsShipping)' == 'true'">true</EnableDefaultPackageReadmeFile>
129132
</PropertyGroup>
130133

131134
<Import Project="$(RepositoryEngineeringDir)codeOptimization.targets" />

src/libraries/Microsoft.Bcl.Memory/src/Microsoft.Bcl.Memory.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
System.Index
1919
System.Range
2020
</PackageDescription>
21+
<!-- TODO: Add package README file: https://github.com/dotnet/runtime/issues/99358 -->
22+
<EnableDefaultPackageReadmeFile>false</EnableDefaultPackageReadmeFile>
2123
</PropertyGroup>
2224

2325
<!-- DesignTimeBuild requires all the TargetFramework Derived Properties to not be present in the first property group. -->

src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/Microsoft.Extensions.DependencyInjection.Specification.Tests.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
<PackageDescription>Suite of xUnit.net tests to check for container compatibility with Microsoft.Extensions.DependencyInjection.</PackageDescription>
1616
<!-- this assembly doesn't need to be binplaced -->
1717
<EnableBinPlacing>false</EnableBinPlacing>
18+
<!-- TODO: Add package README file: https://github.com/dotnet/runtime/issues/99358 -->
19+
<EnableDefaultPackageReadmeFile>false</EnableDefaultPackageReadmeFile>
1820
</PropertyGroup>
1921

2022
<ItemGroup>

src/libraries/Microsoft.Extensions.DependencyInjection.Specification.Tests/src/PACKAGE.md

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/libraries/Microsoft.Extensions.Diagnostics.Abstractions/src/Microsoft.Extensions.Diagnostics.Abstractions.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ Microsoft.Extensions.Diagnostics.Metrics.InstrumentRule
1717
Microsoft.Extensions.Diagnostics.Metrics.MeterScope
1818
Microsoft.Extensions.Diagnostics.Metrics.MetricsBuilderExtensions
1919
Microsoft.Extensions.Diagnostics.Metrics.MetricsOptions</PackageDescription>
20+
<!-- TODO: Add package README file: https://github.com/dotnet/runtime/issues/99358 -->
21+
<EnableDefaultPackageReadmeFile>false</EnableDefaultPackageReadmeFile>
2022
</PropertyGroup>
2123

2224
<ItemGroup>

src/libraries/Microsoft.Extensions.Diagnostics/src/Microsoft.Extensions.Diagnostics.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
<DisablePackageBaselineValidation>true</DisablePackageBaselineValidation>
1010
<IsPackable>true</IsPackable>
1111
<PackageDescription>This package includes the default implementation of IMeterFactory and additional extension methods to easily register it with the Dependency Injection framework.</PackageDescription>
12+
<!-- TODO: Add package README file: https://github.com/dotnet/runtime/issues/99358 -->
13+
<EnableDefaultPackageReadmeFile>false</EnableDefaultPackageReadmeFile>
1214
</PropertyGroup>
1315

1416
<ItemGroup>

src/libraries/Microsoft.Extensions.FileProviders.Composite/src/Microsoft.Extensions.FileProviders.Composite.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
<EnableDefaultItems>true</EnableDefaultItems>
77
<IsPackable>true</IsPackable>
88
<PackageDescription>Composite file and directory providers for Microsoft.Extensions.FileProviders.</PackageDescription>
9+
<!-- TODO: Add package README file: https://github.com/dotnet/runtime/issues/99358 -->
10+
<EnableDefaultPackageReadmeFile>false</EnableDefaultPackageReadmeFile>
911
</PropertyGroup>
1012

1113
<ItemGroup>

src/libraries/Microsoft.Extensions.FileProviders.Composite/src/PACKAGE.md

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/libraries/Microsoft.Extensions.Logging.Configuration/src/Microsoft.Extensions.Logging.Configuration.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
<EnableConfigurationBindingGenerator>true</EnableConfigurationBindingGenerator>
88
<IsPackable>true</IsPackable>
99
<PackageDescription>Configuration support for Microsoft.Extensions.Logging.</PackageDescription>
10+
<!-- TODO: Add package README file: https://github.com/dotnet/runtime/issues/99358 -->
11+
<EnableDefaultPackageReadmeFile>false</EnableDefaultPackageReadmeFile>
1012
</PropertyGroup>
1113

1214
<ItemGroup>

src/libraries/Microsoft.Extensions.Logging.Configuration/src/PACKAGE.md

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/libraries/Microsoft.Extensions.Logging.EventLog/src/Microsoft.Extensions.Logging.EventLog.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
<EnableDefaultItems>true</EnableDefaultItems>
66
<IsPackable>true</IsPackable>
77
<PackageDescription>Windows Event Log logger provider implementation for Microsoft.Extensions.Logging.</PackageDescription>
8+
<!-- TODO: Add package README file: https://github.com/dotnet/runtime/issues/99358 -->
9+
<EnableDefaultPackageReadmeFile>false</EnableDefaultPackageReadmeFile>
810
</PropertyGroup>
911

1012
<ItemGroup>

src/libraries/Microsoft.Extensions.Logging.EventSource/src/Microsoft.Extensions.Logging.EventSource.csproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
77
<IsPackable>true</IsPackable>
88
<PackageDescription>EventSource/EventListener logger provider implementation for Microsoft.Extensions.Logging.</PackageDescription>
9+
<!-- TODO: Add package README file: https://github.com/dotnet/runtime/issues/99358 -->
10+
<EnableDefaultPackageReadmeFile>false</EnableDefaultPackageReadmeFile>
911
</PropertyGroup>
1012

1113
<ItemGroup>

src/libraries/Microsoft.Extensions.Logging.EventSource/src/PACKAGE.md

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/libraries/Microsoft.NET.WebAssembly.Threading/src/Microsoft.NET.WebAssembly.Threading.proj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
<NoWarn>$(NoWarn);NU5128;NU5131;PKV004</NoWarn>
1313
<!-- Place assemblies in the nuget ref folder -->
1414
<BuildOutputTargetFolder>ref</BuildOutputTargetFolder>
15+
<!-- TODO: Add package README file: https://github.com/dotnet/runtime/issues/99358 -->
16+
<EnableDefaultPackageReadmeFile>false</EnableDefaultPackageReadmeFile>
1517
</PropertyGroup>
1618

1719
<ItemGroup>

src/libraries/Microsoft.NET.WebAssembly.Threading/src/PACKAGE.md

Lines changed: 0 additions & 44 deletions
This file was deleted.

src/libraries/Microsoft.XmlSerializer.Generator/src/Microsoft.XmlSerializer.Generator.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<Project Sdk="Microsoft.NET.Sdk">
2+
23
<PropertyGroup>
34
<TargetFramework>netstandard2.0</TargetFramework>
45
<AssemblyName>dotnet-Microsoft.XmlSerializer.Generator</AssemblyName>
@@ -16,6 +17,8 @@
1617
<!-- this assembly doesn't need to be binplaced -->
1718
<EnableBinPlacing>false</EnableBinPlacing>
1819
<IsTrimmable>false</IsTrimmable>
20+
<!-- TODO: Add package README file: https://github.com/dotnet/runtime/issues/99358 -->
21+
<EnableDefaultPackageReadmeFile>false</EnableDefaultPackageReadmeFile>
1922
</PropertyGroup>
2023

2124
<ItemGroup>

0 commit comments

Comments
 (0)