Skip to content

Commit f314d8b

Browse files
authored
[PackageIndexer] Include XML docs files for new assemblies (#393)
1 parent ed8754d commit f314d8b

File tree

2 files changed

+74
-10
lines changed

2 files changed

+74
-10
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Get-ChildItem -Path "C:\path\to\runtime\src\libraries" -Recurse -Filter "*.csproj" -File |
2+
Where-Object { $_.FullName -notlike "*\ref\*" -and $_.FullName -notlike "*\tests\*" -and $_.FullName -notlike "*\gen\*" -and $_.FullName -notlike "*\shims\*" -and $_.FullName -notlike "*\tools\*" -and $_.FullName -notlike "*\System.Private*\*" -and $_.FullName -notlike "*\Fuzzing\*" -and $_.FullName -notlike "*\externals.csproj" -and $_.FullName -notlike "*\Microsoft.NETCore.Platforms\*" -and $_.BaseName -notlike "System.Threading.RateLimiting" -and $_.BaseName -notlike "Microsoft.XmlSerializer.Generator" } |
3+
ForEach-Object {
4+
$content = Get-Content -Path $_.FullName -Raw
5+
if ($content -notmatch "UseCompilerGeneratedDocXmlFile") {
6+
$_.BaseName
7+
}
8+
}

PackageIndexer/Program.cs

Lines changed: 66 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,65 @@ internal static class Program
2424
{ "netstandard2.1", "netstandard-2.1" }
2525
};
2626

27+
static readonly List<string> s_packagesWithTruthDocs =
28+
[
29+
"Microsoft.Bcl.AsyncInterfaces",
30+
"Microsoft.Bcl.Cryptography",
31+
"Microsoft.Bcl.Memory",
32+
"Microsoft.Bcl.Numerics",
33+
"Microsoft.Bcl.TimeProvider",
34+
"Microsoft.Extensions.Caching.Abstractions",
35+
"Microsoft.Extensions.Caching.Memory",
36+
"Microsoft.Extensions.Configuration",
37+
"Microsoft.Extensions.Configuration.Abstractions",
38+
"Microsoft.Extensions.Configuration.Binder",
39+
"Microsoft.Extensions.Configuration.CommandLine",
40+
"Microsoft.Extensions.Configuration.EnvironmentVariables",
41+
"Microsoft.Extensions.Configuration.FileExtensions",
42+
"Microsoft.Extensions.Configuration.Ini",
43+
"Microsoft.Extensions.Configuration.Json",
44+
"Microsoft.Extensions.Configuration.UserSecrets",
45+
"Microsoft.Extensions.Configuration.Xml",
46+
"Microsoft.Extensions.DependencyInjection",
47+
"Microsoft.Extensions.DependencyInjection.Abstractions",
48+
"Microsoft.Extensions.DependencyInjection.Specification.Tests",
49+
"Microsoft.Extensions.Diagnostics",
50+
"Microsoft.Extensions.Diagnostics.Abstractions",
51+
"Microsoft.Extensions.FileProviders.Abstractions",
52+
"Microsoft.Extensions.FileProviders.Composite",
53+
"Microsoft.Extensions.FileProviders.Physical",
54+
"Microsoft.Extensions.HostFactoryResolver.Sources",
55+
"Microsoft.Extensions.Hosting",
56+
"Microsoft.Extensions.Hosting.Abstractions",
57+
"Microsoft.Extensions.Hosting.Systemd",
58+
"Microsoft.Extensions.Hosting.WindowsServices",
59+
"Microsoft.Extensions.Http",
60+
"Microsoft.Extensions.Logging",
61+
"Microsoft.Extensions.Logging.Abstractions",
62+
"Microsoft.Extensions.Logging.Configuration",
63+
"Microsoft.Extensions.Logging.Console",
64+
"Microsoft.Extensions.Logging.Debug",
65+
"Microsoft.Extensions.Logging.EventLog",
66+
"Microsoft.Extensions.Logging.EventSource",
67+
"Microsoft.Extensions.Logging.TraceSource",
68+
"Microsoft.Extensions.Options",
69+
"Microsoft.Extensions.Options.ConfigurationExtensions",
70+
"Microsoft.Extensions.Options.DataAnnotations",
71+
"Microsoft.Extensions.Primitives",
72+
"System.Composition",
73+
"System.Diagnostics.EventLog.Messages",
74+
"System.Formats.Cbor",
75+
"System.Formats.Nrbf",
76+
"System.Net.ServerSentEvents",
77+
"System.Numerics.Tensors",
78+
"System.Runtime.Serialization.Schema",
79+
"System.Speech"
80+
];
81+
2782
private static async Task<int> Main(string[] args)
2883
{
2984
#if DEBUG
30-
args = [@"c:\users\gewarren\desktop\Package Index 0522.7", "preview"];
85+
args = [@"c:\users\gewarren\desktop\Package Index 0814", "preview"];
3186
#endif
3287

3388
if ((args.Length == 0) || (args.Length > 2))
@@ -161,12 +216,13 @@ private static void GenerateCSVFiles(string indexPackagesPath, string csvPath)
161216
}
162217
}
163218

164-
// Special case for System.ServiceModel.Primitives - add version 4.10.3.
165-
// (See https://github.com/dotnet/dotnet-api-docs/pull/10164#discussion_r1696016010.)
166-
AddCsvEntryToDict("netstandard-2.0", csvDictionary, packageCounter,
167-
PackageEntry.Create("System.ServiceModel.Primitives", "4.10.3", "https://github.com/dotnet/wcf", []),
168-
FrameworkEntry.Create("netstandard2.0")
169-
);
219+
// Update 08/14: Removed since it caused the pipeline to fail on dependencies.
220+
//// Special case for System.ServiceModel.Primitives - add version 4.10.3.
221+
//// (See https://github.com/dotnet/dotnet-api-docs/pull/10164#discussion_r1696016010.)
222+
//AddCsvEntryToDict("netstandard-2.0", csvDictionary, packageCounter,
223+
// PackageEntry.Create("System.ServiceModel.Primitives", "4.10.3", "https://github.com/dotnet/wcf", []),
224+
// FrameworkEntry.Create("netstandard2.0")
225+
// );
170226

171227
// Create the directory.
172228
Directory.CreateDirectory(csvPath);
@@ -209,13 +265,13 @@ FrameworkEntry tfm
209265
StringComparison.InvariantCultureIgnoreCase
210266
);
211267

212-
// Special case for System.Formats.Cbor - include XML file.
213-
if (string.Equals(packageEntry.Name, "System.Formats.Cbor", StringComparison.InvariantCultureIgnoreCase))
268+
// Special case for newer assemblies - include XML documentation files.
269+
if (s_packagesWithTruthDocs.Contains(packageEntry.Name))
214270
includeXml = true;
215271

216272
string squareBrackets = $"[tfm={tfm.FrameworkName};includeXml={includeXml}]";
217273

218-
// Special case for System.ServiceModel.Primitives - use reference assembly.
274+
// Special case for System.ServiceModel.Primitives - use reference assemblies.
219275
if (string.Equals(packageEntry.Name, "System.ServiceModel.Primitives", StringComparison.InvariantCultureIgnoreCase))
220276
squareBrackets = $"[tfm={tfm.FrameworkName};includeXml={includeXml};libpath=ref]";
221277

0 commit comments

Comments
 (0)