Skip to content

Commit 79be6ed

Browse files
committed
More package creation updates
1 parent 066d2d0 commit 79be6ed

9 files changed

Lines changed: 104 additions & 66 deletions

File tree

src/NuGet.Core/NuGet.Packaging/PackageCreation/Authoring/IPackageMetadata.cs

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
#nullable disable
5-
64
using System;
75
using System.Collections.Generic;
86
using NuGet.Packaging.Core;
@@ -12,26 +10,26 @@ namespace NuGet.Packaging
1210
{
1311
public interface IPackageMetadata
1412
{
15-
string Id { get; }
16-
NuGetVersion Version { get; }
13+
string? Id { get; }
14+
NuGetVersion? Version { get; }
1715

18-
string Title { get; }
16+
string? Title { get; }
1917
IEnumerable<string> Authors { get; }
2018
IEnumerable<string> Owners { get; }
21-
Uri IconUrl { get; }
22-
Uri LicenseUrl { get; }
23-
Uri ProjectUrl { get; }
19+
Uri? IconUrl { get; }
20+
Uri? LicenseUrl { get; }
21+
Uri? ProjectUrl { get; }
2422
bool RequireLicenseAcceptance { get; }
2523
bool DevelopmentDependency { get; }
26-
string Description { get; }
27-
string Summary { get; }
28-
string ReleaseNotes { get; }
29-
string Language { get; }
30-
string Tags { get; }
24+
string? Description { get; }
25+
string? Summary { get; }
26+
string? ReleaseNotes { get; }
27+
string? Language { get; }
28+
string? Tags { get; }
3129
bool Serviceable { get; }
32-
string Copyright { get; }
33-
string Icon { get; }
34-
string Readme { get; }
30+
string? Copyright { get; }
31+
string? Icon { get; }
32+
string? Readme { get; }
3533

3634
/// <summary>
3735
/// Specifies assemblies from GAC that the package depends on.
@@ -48,7 +46,7 @@ public interface IPackageMetadata
4846
/// </summary>
4947
IEnumerable<PackageDependencyGroup> DependencyGroups { get; }
5048

51-
Version MinClientVersion { get; }
49+
Version? MinClientVersion { get; }
5250

5351
/// <summary>
5452
/// Returns sets of Content Files specified in the manifest.
@@ -57,9 +55,9 @@ public interface IPackageMetadata
5755

5856
IEnumerable<PackageType> PackageTypes { get; }
5957

60-
RepositoryMetadata Repository { get; }
58+
RepositoryMetadata? Repository { get; }
6159

62-
LicenseMetadata LicenseMetadata { get; }
60+
LicenseMetadata? LicenseMetadata { get; }
6361

6462
IEnumerable<FrameworkReferenceGroup> FrameworkReferenceGroups { get; }
6563
}

src/NuGet.Core/NuGet.Packaging/PackageCreation/Authoring/LicenseMetadata.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public override int GetHashCode()
9191
return combiner.CombinedHash;
9292
}
9393

94-
public Uri? LicenseUrl
94+
public Uri LicenseUrl
9595
{
9696
get
9797
{
@@ -104,7 +104,7 @@ public Uri? LicenseUrl
104104
return new Uri(GenerateLicenseServiceLink(License));
105105

106106
default:
107-
return null;
107+
throw new NotSupportedException($"Unsupported license type: {Type}");
108108
}
109109
}
110110
}

src/NuGet.Core/NuGet.Packaging/PackageCreation/Authoring/ManifestSchemaUtility.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
#nullable disable
5-
64
using System;
75
using System.Globalization;
86
using System.Linq;

src/NuGet.Core/NuGet.Packaging/PackageCreation/Authoring/ManifestVersionUtility.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
#nullable disable
5-
64
using System;
75
using System.Linq;
86

src/NuGet.Core/NuGet.Packaging/PackageCreation/Xml/PackageMetadataXmlExtensions.cs

Lines changed: 24 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Copyright (c) .NET Foundation. All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

4-
#nullable disable
5-
64
using System;
75
using System.Collections.Generic;
86
using System.Linq;
@@ -138,11 +136,11 @@ public static XElement ToXElement(this ManifestMetadata metadata, XNamespace ns,
138136
return elem;
139137
}
140138

141-
private static XElement GetXElementFromGroupableItemSets<TSet, TItem>(
139+
private static XElement? GetXElementFromGroupableItemSets<TSet, TItem>(
142140
XNamespace ns,
143141
IEnumerable<TSet> objectSets,
144142
Func<TSet, bool> isGroupable,
145-
Func<TSet, string> getGroupIdentifer,
143+
Func<TSet, string?> getGroupIdentifer,
146144
Func<TSet, IEnumerable<TItem>> getItems,
147145
Func<XNamespace, TItem, XElement> getXElementFromItem,
148146
string parentName,
@@ -233,7 +231,7 @@ private static XElement GetXElementFromPackageDependency(XNamespace ns, PackageD
233231
return new XElement(ns + "dependency", attributes);
234232
}
235233

236-
private static XElement GetXElementFromFrameworkAssemblies(XNamespace ns, IEnumerable<FrameworkAssemblyReference> references)
234+
private static XElement? GetXElementFromFrameworkAssemblies(XNamespace ns, IEnumerable<FrameworkAssemblyReference> references)
237235
{
238236
if (references == null || !references.Any())
239237
{
@@ -250,7 +248,7 @@ private static XElement GetXElementFromFrameworkAssemblies(XNamespace ns, IEnume
250248
null)));
251249
}
252250

253-
private static XElement GetXElementFromManifestContentFiles(XNamespace ns, IEnumerable<ManifestContentFiles> contentFiles)
251+
private static XElement? GetXElementFromManifestContentFiles(XNamespace ns, IEnumerable<ManifestContentFiles> contentFiles)
254252
{
255253
if (contentFiles == null || !contentFiles.Any())
256254
{
@@ -263,34 +261,32 @@ private static XElement GetXElementFromManifestContentFiles(XNamespace ns, IEnum
263261

264262
private static XElement GetXElementFromManifestContentFile(XNamespace ns, ManifestContentFiles file)
265263
{
266-
var attributes = new List<XAttribute>();
267-
268-
attributes.Add(GetXAttributeFromNameAndValue("include", file.Include));
269-
attributes.Add(GetXAttributeFromNameAndValue("exclude", file.Exclude));
270-
attributes.Add(GetXAttributeFromNameAndValue("buildAction", file.BuildAction));
271-
attributes.Add(GetXAttributeFromNameAndValue("copyToOutput", file.CopyToOutput));
272-
attributes.Add(GetXAttributeFromNameAndValue("flatten", file.Flatten));
273-
274-
attributes = attributes.Where(xAtt => xAtt != null).ToList();
275-
276-
return new XElement(ns + Files, attributes);
264+
var attributes = new List<XAttribute?>
265+
{
266+
GetXAttributeFromNameAndValue("include", file.Include),
267+
GetXAttributeFromNameAndValue("exclude", file.Exclude),
268+
GetXAttributeFromNameAndValue("buildAction", file.BuildAction),
269+
GetXAttributeFromNameAndValue("copyToOutput", file.CopyToOutput),
270+
GetXAttributeFromNameAndValue("flatten", file.Flatten)
271+
};
272+
273+
return new XElement(ns + Files, attributes.Where(xAtt => xAtt != null));
277274
}
278275

279276
private static XElement GetXElementFromLicenseMetadata(XNamespace ns, LicenseMetadata metadata)
280277
{
281-
var attributes = new List<XAttribute>();
278+
var attributes = new List<XAttribute?>();
282279

283280
attributes.Add(GetXAttributeFromNameAndValue(NuspecUtility.Type, metadata.Type.ToString().ToLowerInvariant()));
284281
if (!metadata.Version.Equals(LicenseMetadata.EmptyVersion))
285282
{
286283
attributes.Add(GetXAttributeFromNameAndValue(NuspecUtility.Version, metadata.Version));
287284
}
288-
attributes = attributes.Where(xAtt => xAtt != null).ToList();
289285

290-
return new XElement(ns + NuspecUtility.License, metadata.License, attributes);
286+
return new XElement(ns + NuspecUtility.License, metadata.License, attributes.Where(xAtt => xAtt != null));
291287
}
292288

293-
private static XElement GetXElementFromManifestRepository(XNamespace ns, RepositoryMetadata repository)
289+
private static XElement? GetXElementFromManifestRepository(XNamespace ns, RepositoryMetadata repository)
294290
{
295291
var attributeList = new List<XAttribute>();
296292
if (repository != null && !string.IsNullOrEmpty(repository.Type))
@@ -305,12 +301,12 @@ private static XElement GetXElementFromManifestRepository(XNamespace ns, Reposit
305301

306302
if (!string.IsNullOrEmpty(repository?.Branch))
307303
{
308-
attributeList.Add(new XAttribute(NuspecUtility.RepositoryBranch, repository.Branch));
304+
attributeList.Add(new XAttribute(NuspecUtility.RepositoryBranch, repository!.Branch!));
309305
}
310306

311307
if (!string.IsNullOrEmpty(repository?.Commit))
312308
{
313-
attributeList.Add(new XAttribute(NuspecUtility.RepositoryCommit, repository.Commit));
309+
attributeList.Add(new XAttribute(NuspecUtility.RepositoryCommit, repository!.Commit!));
314310
}
315311

316312
if (attributeList.Count > 0)
@@ -335,20 +331,18 @@ private static XElement GetXElementFromManifestPackageTypes(XNamespace ns, IEnum
335331

336332
private static XElement GetXElementFromManifestPackageType(XNamespace ns, PackageType packageType)
337333
{
338-
var attributes = new List<XAttribute>();
334+
var attributes = new List<XAttribute?>();
339335

340336
attributes.Add(GetXAttributeFromNameAndValue(NuspecUtility.Name, packageType.Name));
341337
if (packageType.Version != PackageType.EmptyVersion)
342338
{
343339
attributes.Add(GetXAttributeFromNameAndValue(NuspecUtility.Version, packageType.Version));
344340
}
345341

346-
attributes = attributes.Where(xAtt => xAtt != null).ToList();
347-
348-
return new XElement(ns + NuspecUtility.PackageType, attributes);
342+
return new XElement(ns + NuspecUtility.PackageType, attributes.Where(xAtt => xAtt != null));
349343
}
350344

351-
private static XAttribute GetXAttributeFromNameAndValue(string name, object value)
345+
private static XAttribute? GetXAttributeFromNameAndValue(string name, object? value)
352346
{
353347
if (name == null || value == null)
354348
{
@@ -358,7 +352,7 @@ private static XAttribute GetXAttributeFromNameAndValue(string name, object valu
358352
return new XAttribute(name, value);
359353
}
360354

361-
private static void AddElementIfNotNull<T>(XElement parent, XNamespace ns, string name, T value)
355+
private static void AddElementIfNotNull<T>(XElement parent, XNamespace ns, string name, T? value)
362356
where T : class
363357
{
364358
if (value != null)
@@ -367,7 +361,7 @@ private static void AddElementIfNotNull<T>(XElement parent, XNamespace ns, strin
367361
}
368362
}
369363

370-
private static void AddElementIfNotNull<T>(XElement parent, XNamespace ns, string name, T value, Func<T, object> process)
364+
private static void AddElementIfNotNull<T>(XElement parent, XNamespace ns, string name, T? value, Func<T, object> process)
371365
where T : class
372366
{
373367
if (value != null)

src/NuGet.Core/NuGet.Packaging/PublicAPI/net472/PublicAPI.Shipped.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ NuGet.Packaging.LicenseMetadata.Equals(NuGet.Packaging.LicenseMetadata? other) -
331331
NuGet.Packaging.LicenseMetadata.License.get -> string!
332332
NuGet.Packaging.LicenseMetadata.LicenseExpression.get -> NuGet.Packaging.Licenses.NuGetLicenseExpression?
333333
NuGet.Packaging.LicenseMetadata.LicenseMetadata(NuGet.Packaging.LicenseType type, string! license, NuGet.Packaging.Licenses.NuGetLicenseExpression? expression, System.Collections.Generic.IReadOnlyList<string!>? warningsAndErrors, System.Version! version) -> void
334-
NuGet.Packaging.LicenseMetadata.LicenseUrl.get -> System.Uri?
334+
NuGet.Packaging.LicenseMetadata.LicenseUrl.get -> System.Uri!
335335
NuGet.Packaging.LicenseMetadata.Type.get -> NuGet.Packaging.LicenseType
336336
NuGet.Packaging.LicenseMetadata.Version.get -> System.Version!
337337
NuGet.Packaging.LicenseMetadata.WarningsAndErrors.get -> System.Collections.Generic.IReadOnlyList<string!>?
@@ -1538,11 +1538,11 @@ static NuGet.Packaging.Licenses.NuGetLicenseExpressionExtensions.OnEachLeafNode(
15381538
~static NuGet.Packaging.Manifest.ReadFrom(System.IO.Stream stream, System.Func<string, string> propertyProvider, bool validateSchema) -> NuGet.Packaging.Manifest
15391539
~static NuGet.Packaging.Manifest.ReadFrom(System.IO.Stream stream, bool validateSchema) -> NuGet.Packaging.Manifest
15401540
~static NuGet.Packaging.Manifest.Validate(NuGet.Packaging.Manifest manifest) -> void
1541-
~static NuGet.Packaging.ManifestSchemaUtility.GetManifestSchemaSet(string schemaNamespace) -> System.Xml.Schema.XmlSchemaSet
1542-
~static NuGet.Packaging.ManifestSchemaUtility.GetSchemaNamespace(int version) -> string
1543-
~static NuGet.Packaging.ManifestSchemaUtility.GetVersionFromNamespace(string namespace) -> int
1544-
~static NuGet.Packaging.ManifestSchemaUtility.IsKnownSchema(string schemaNamespace) -> bool
1545-
~static NuGet.Packaging.ManifestVersionUtility.GetManifestVersion(NuGet.Packaging.ManifestMetadata metadata) -> int
1541+
static NuGet.Packaging.ManifestSchemaUtility.GetManifestSchemaSet(string! schemaNamespace) -> System.Xml.Schema.XmlSchemaSet!
1542+
static NuGet.Packaging.ManifestSchemaUtility.GetSchemaNamespace(int version) -> string!
1543+
static NuGet.Packaging.ManifestSchemaUtility.GetVersionFromNamespace(string! namespace) -> int
1544+
static NuGet.Packaging.ManifestSchemaUtility.IsKnownSchema(string! schemaNamespace) -> bool
1545+
static NuGet.Packaging.ManifestVersionUtility.GetManifestVersion(NuGet.Packaging.ManifestMetadata! metadata) -> int
15461546
static NuGet.Packaging.MinClientVersionUtility.GetNuGetClientVersion() -> NuGet.Versioning.NuGetVersion!
15471547
static NuGet.Packaging.MinClientVersionUtility.IsMinClientVersionCompatible(NuGet.Packaging.Core.NuspecCoreReaderBase! nuspecReader) -> bool
15481548
static NuGet.Packaging.MinClientVersionUtility.IsMinClientVersionCompatible(NuGet.Versioning.NuGetVersion! packageMinClientVersion) -> bool

src/NuGet.Core/NuGet.Packaging/PublicAPI/net472/PublicAPI.Unshipped.txt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,29 @@
11
#nullable enable
2+
NuGet.Packaging.IPackageMetadata.Authors.get -> System.Collections.Generic.IEnumerable<string!>!
3+
NuGet.Packaging.IPackageMetadata.ContentFiles.get -> System.Collections.Generic.IEnumerable<NuGet.Packaging.ManifestContentFiles!>!
4+
NuGet.Packaging.IPackageMetadata.Copyright.get -> string?
5+
NuGet.Packaging.IPackageMetadata.DependencyGroups.get -> System.Collections.Generic.IEnumerable<NuGet.Packaging.PackageDependencyGroup!>!
6+
NuGet.Packaging.IPackageMetadata.Description.get -> string?
7+
NuGet.Packaging.IPackageMetadata.FrameworkReferenceGroups.get -> System.Collections.Generic.IEnumerable<NuGet.Packaging.FrameworkReferenceGroup!>!
8+
NuGet.Packaging.IPackageMetadata.FrameworkReferences.get -> System.Collections.Generic.IEnumerable<NuGet.Packaging.FrameworkAssemblyReference!>!
9+
NuGet.Packaging.IPackageMetadata.Icon.get -> string?
10+
NuGet.Packaging.IPackageMetadata.IconUrl.get -> System.Uri?
11+
NuGet.Packaging.IPackageMetadata.Id.get -> string?
12+
NuGet.Packaging.IPackageMetadata.Language.get -> string?
13+
NuGet.Packaging.IPackageMetadata.LicenseMetadata.get -> NuGet.Packaging.LicenseMetadata?
14+
NuGet.Packaging.IPackageMetadata.LicenseUrl.get -> System.Uri?
15+
NuGet.Packaging.IPackageMetadata.MinClientVersion.get -> System.Version?
16+
NuGet.Packaging.IPackageMetadata.Owners.get -> System.Collections.Generic.IEnumerable<string!>!
17+
NuGet.Packaging.IPackageMetadata.PackageAssemblyReferences.get -> System.Collections.Generic.IEnumerable<NuGet.Packaging.PackageReferenceSet!>!
18+
NuGet.Packaging.IPackageMetadata.PackageTypes.get -> System.Collections.Generic.IEnumerable<NuGet.Packaging.Core.PackageType!>!
19+
NuGet.Packaging.IPackageMetadata.ProjectUrl.get -> System.Uri?
20+
NuGet.Packaging.IPackageMetadata.Readme.get -> string?
21+
NuGet.Packaging.IPackageMetadata.ReleaseNotes.get -> string?
22+
NuGet.Packaging.IPackageMetadata.Repository.get -> NuGet.Packaging.Core.RepositoryMetadata?
23+
NuGet.Packaging.IPackageMetadata.Summary.get -> string?
24+
NuGet.Packaging.IPackageMetadata.Tags.get -> string?
25+
NuGet.Packaging.IPackageMetadata.Title.get -> string?
26+
NuGet.Packaging.IPackageMetadata.Version.get -> NuGet.Versioning.NuGetVersion?
227
~NuGet.Packaging.PackageBuilder.PackageBuilder(string path, string basePath, System.Func<string, string> propertyProvider, bool includeEmptyDirectories, bool deterministic, NuGet.Common.ILogger logger, string versionOverride) -> void
328
~NuGet.Packaging.PackageBuilder.PackageBuilder(string path, string basePath, System.Func<string, string> propertyProvider, bool includeEmptyDirectories, bool deterministic, string versionOverride) -> void
429
~NuGet.Packaging.PackageBuilder.PackageBuilder(string path, System.Func<string, string> propertyProvider, bool includeEmptyDirectories, bool deterministic, NuGet.Common.ILogger logger, string versionOverride) -> void

src/NuGet.Core/NuGet.Packaging/PublicAPI/net8.0/PublicAPI.Shipped.txt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ NuGet.Packaging.LicenseMetadata.Equals(NuGet.Packaging.LicenseMetadata? other) -
331331
NuGet.Packaging.LicenseMetadata.License.get -> string!
332332
NuGet.Packaging.LicenseMetadata.LicenseExpression.get -> NuGet.Packaging.Licenses.NuGetLicenseExpression?
333333
NuGet.Packaging.LicenseMetadata.LicenseMetadata(NuGet.Packaging.LicenseType type, string! license, NuGet.Packaging.Licenses.NuGetLicenseExpression? expression, System.Collections.Generic.IReadOnlyList<string!>? warningsAndErrors, System.Version! version) -> void
334-
NuGet.Packaging.LicenseMetadata.LicenseUrl.get -> System.Uri?
334+
NuGet.Packaging.LicenseMetadata.LicenseUrl.get -> System.Uri!
335335
NuGet.Packaging.LicenseMetadata.Type.get -> NuGet.Packaging.LicenseType
336336
NuGet.Packaging.LicenseMetadata.Version.get -> System.Version!
337337
NuGet.Packaging.LicenseMetadata.WarningsAndErrors.get -> System.Collections.Generic.IReadOnlyList<string!>?
@@ -1523,10 +1523,10 @@ static NuGet.Packaging.Licenses.NuGetLicenseExpressionExtensions.OnEachLeafNode(
15231523
~static NuGet.Packaging.Manifest.ReadFrom(System.IO.Stream stream, System.Func<string, string> propertyProvider, bool validateSchema) -> NuGet.Packaging.Manifest
15241524
~static NuGet.Packaging.Manifest.ReadFrom(System.IO.Stream stream, bool validateSchema) -> NuGet.Packaging.Manifest
15251525
~static NuGet.Packaging.Manifest.Validate(NuGet.Packaging.Manifest manifest) -> void
1526-
~static NuGet.Packaging.ManifestSchemaUtility.GetSchemaNamespace(int version) -> string
1527-
~static NuGet.Packaging.ManifestSchemaUtility.GetVersionFromNamespace(string namespace) -> int
1528-
~static NuGet.Packaging.ManifestSchemaUtility.IsKnownSchema(string schemaNamespace) -> bool
1529-
~static NuGet.Packaging.ManifestVersionUtility.GetManifestVersion(NuGet.Packaging.ManifestMetadata metadata) -> int
1526+
static NuGet.Packaging.ManifestSchemaUtility.GetSchemaNamespace(int version) -> string!
1527+
static NuGet.Packaging.ManifestSchemaUtility.GetVersionFromNamespace(string! namespace) -> int
1528+
static NuGet.Packaging.ManifestSchemaUtility.IsKnownSchema(string! schemaNamespace) -> bool
1529+
static NuGet.Packaging.ManifestVersionUtility.GetManifestVersion(NuGet.Packaging.ManifestMetadata! metadata) -> int
15301530
static NuGet.Packaging.MinClientVersionUtility.GetNuGetClientVersion() -> NuGet.Versioning.NuGetVersion!
15311531
static NuGet.Packaging.MinClientVersionUtility.IsMinClientVersionCompatible(NuGet.Packaging.Core.NuspecCoreReaderBase! nuspecReader) -> bool
15321532
static NuGet.Packaging.MinClientVersionUtility.IsMinClientVersionCompatible(NuGet.Versioning.NuGetVersion! packageMinClientVersion) -> bool

0 commit comments

Comments
 (0)