Skip to content

Commit e9fb125

Browse files
authored
NuGet 6.10 release notes (#3292)
1 parent a877b2b commit e9fb125

File tree

3 files changed

+180
-0
lines changed

3 files changed

+180
-0
lines changed

docs/TOC.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,7 @@
339339
### [Known Issues](release-notes/known-issues.md)
340340

341341
### NuGet 6.x
342+
#### [NuGet 6.10](release-notes/NuGet-6.10.md)
342343
#### [NuGet 6.9](release-notes/NuGet-6.9.md)
343344
#### [NuGet 6.8](release-notes/NuGet-6.8.md)
344345
#### [NuGet 6.7](release-notes/NuGet-6.7.md)

docs/release-notes/Index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ ms.topic: conceptual
1111

1212
[Known Issues](../release-notes/known-issues.md)
1313

14+
[NuGet 6.10](../release-notes/NuGet-6.10.md)
15+
1416
[NuGet 6.9](../release-notes/NuGet-6.9.md)
1517

1618
[NuGet 6.8](../release-notes/NuGet-6.8.md)

docs/release-notes/NuGet-6.10.md

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
---
2+
title: NuGet 6.10 Release Notes
3+
description: Release notes for NuGet 6.10 including new features, bug fixes, and DCRs.
4+
author: kartheekp-ms
5+
ms.date: 5/13/2024
6+
ms.topic: conceptual
7+
---
8+
9+
# NuGet 6.10 Release Notes
10+
11+
NuGet distribution vehicles:
12+
13+
| NuGet version | Available in Visual Studio version | Available in .NET SDK(s) |
14+
|:---|:---|:---|
15+
| [**6.10**](https://nuget.org/downloads) | [Visual Studio 2022 version 17.10](https://visualstudio.microsoft.com/downloads/) | [8.0.3xx](https://dotnet.microsoft.com/download/dotnet/8.0)<sup>1</sup> |
16+
17+
<sup>1</sup> Installed with Visual Studio 2022 with any .NET workload
18+
19+
## Summary: What's New in 6.10
20+
21+
* [Feature]: add dotnet nuget config command - [#12469](https://github.com/NuGet/Home/issues/12469)
22+
23+
* Warn when vulnerabilities are detected during packages.config restore - [#12307](https://github.com/NuGet/Home/issues/12307)
24+
25+
* Display a vulnerability info bar when there's vulnerabilities in packages.config based projects. - [#13271](https://github.com/NuGet/Home/issues/13271)
26+
27+
* [Bug]: VS Credential Provider Incorrectly Setting Value of `isRetry` - [#11210](https://github.com/NuGet/Home/issues/11210)
28+
29+
* dotnet list package --vulnerable requires constant login to 3rd party nuget feed - [#12456](https://github.com/NuGet/Home/issues/12456)
30+
31+
### Breaking changes
32+
33+
* Add nullable annotations to NuGet.Configuration - [#13250](https://github.com/NuGet/Home/issues/13250)
34+
35+
* [Dotnet Package Search] The search result of the package should be “version” instead of “latestVersion” when executing command “dotnet package search \<Package Name\> --exact-match --format json” - [#13158](https://github.com/NuGet/Home/issues/13158)
36+
37+
* ResolvedDependencyKey should be struct to reduce memory allocations - [#13138](https://github.com/NuGet/Home/issues/13138)
38+
39+
* [DCR]: Central Package Management - Respect .props file as a way to opt-in to the feature. - [#11834](https://github.com/NuGet/Home/issues/11834)
40+
41+
### Issues fixed in this release
42+
43+
* Warn when vulnerabilities are detected during packages.config restore in CLI scenarios. - [#13253](https://github.com/NuGet/Home/issues/13253)
44+
45+
* Stop using JObject in assets file reading to reduce allocations. [#12715](https://github.com/NuGet/Home/issues/12715)
46+
47+
* Add event tracing to restore to make it possible to measure performance - [#13274](https://github.com/NuGet/Home/issues/13274)
48+
49+
* Read auditSources from nuget.config files - [#13211](https://github.com/NuGet/Home/issues/13211)
50+
51+
* SourceRepository.GetResourceAsync should be cancellable. - [#13234](https://github.com/NuGet/Home/issues/13234)
52+
53+
* CreateWalkAsync should not be recursive - [#13222](https://github.com/NuGet/Home/issues/13222)
54+
55+
* ProjectModel.HashObjectWriter.OnFlush is using a SHA512 hash versus a cheaper hash which seems like overkill - [#13214](https://github.com/NuGet/Home/issues/13214)
56+
57+
* Owner package metadata is an array in JSON but a string in Protocol types - [#13186](https://github.com/NuGet/Home/issues/13186)
58+
59+
* dotnet package search --verbosity detailed output table too wide - [#13162](https://github.com/NuGet/Home/issues/13162)
60+
61+
* Calls in SetWarningProperties() have allocation overhead due to multiple enumeration - [#13151](https://github.com/NuGet/Home/issues/13151)
62+
63+
* Use of ConcurrentStack in object pool implementation creates large amounts of allocations - [#13147](https://github.com/NuGet/Home/issues/13147)
64+
65+
* IsBestVersion boxes HashSet\<T\> enumerators resulting in lots of allocation overhead during restore. - [#13146](https://github.com/NuGet/Home/issues/13146)
66+
67+
* Deprecate NuGet.exe list in favor of NuGet.exe search - [#7912](https://github.com/NuGet/Home/issues/7912)
68+
69+
* [Dotnet Package Search] An unhandled exception is thrown when searching with “--verbosity detailed” and “--format json” - [#13300](https://github.com/NuGet/Home/issues/13300)
70+
71+
* `dotnet package search` crashes on .NET 9 preview 2 nightly - [#13286](https://github.com/NuGet/Home/issues/13286)
72+
73+
* Use the StringBuilderPool rather than allocating a new StringBuilder - [#13285](https://github.com/NuGet/Home/issues/13285)
74+
75+
* Pass in an appropriate size for List\<T\> - [#13284](https://github.com/NuGet/Home/issues/13284)
76+
77+
* JsonTextWriter allocates a large number strings - [#13283](https://github.com/NuGet/Home/issues/13283)
78+
79+
* Usage of StringBuilder.Append() allocates when appending an int - [#13282](https://github.com/NuGet/Home/issues/13282)
80+
81+
* Unnecessary boxing of struct enumerators - [#13281](https://github.com/NuGet/Home/issues/13281)
82+
83+
* Process objects should be disposed so that the finalizer doesn't run - [#13280](https://github.com/NuGet/Home/issues/13280)
84+
85+
* Avoid boxing enumerators for collections - [#13279](https://github.com/NuGet/Home/issues/13279)
86+
87+
* [.NET 9 Preview 3] no-op restore is no longer a no-op - [#13269](https://github.com/NuGet/Home/issues/13269)
88+
89+
* Reduce allocations in calling IVsProjectAdpater.IsCapabilityMatchAsync - [#13268](https://github.com/NuGet/Home/issues/13268)
90+
91+
* Consolidate packages.config restore implementations by minimizing discrepancies - [#13233](https://github.com/NuGet/Home/issues/13233)
92+
93+
* Unroll LINQ usage to trim some allocations in AddMSBuildAssets - [#13223](https://github.com/NuGet/Home/issues/13223)
94+
95+
* PackageSpecWriter is calling Any on an ICollection\<T\>/IList\<T\> instances instead of .Count - [#13213](https://github.com/NuGet/Home/issues/13213)
96+
97+
* StringBuilder.Append(int) causes unnecessary allocations - [#13207](https://github.com/NuGet/Home/issues/13207)
98+
99+
* Caching task results can cause all continuations to occur on the same thread - [#13206](https://github.com/NuGet/Home/issues/13206)
100+
101+
* LibraryDependency creates a collection that is mostly empty - [#13184](https://github.com/NuGet/Home/issues/13184)
102+
103+
* PackageSpecWriter should write out original string for versions instead of allocating a new one - [#13183](https://github.com/NuGet/Home/issues/13183)
104+
105+
* SetCentralDependencies is calling OrderBy without specifying comparison defaulting to cultural-sensitive compare - [#13182](https://github.com/NuGet/Home/issues/13182)
106+
107+
* Search results in json format from dotnet package search should not include fields for which no values are provided - [#13166](https://github.com/NuGet/Home/issues/13166)
108+
109+
* The search result of the package should be “totalDownloads” instead of “total downloads” when executing command “dotnet package search \<Package Name\> --format json” - [#13165](https://github.com/NuGet/Home/issues/13165)
110+
111+
* [dotnet package search] the failure to load a serivce index should be an error and not a warning. - [#13163](https://github.com/NuGet/Home/issues/13163)
112+
113+
* dotnet package search format shows help output in addition to a json file - [#13161](https://github.com/NuGet/Home/issues/13161)
114+
115+
* Cancelling static graph-based restore does not end the restore process - [#13140](https://github.com/NuGet/Home/issues/13140)
116+
117+
* Use string.Contains instead of IEnumerable.Contains in VersionRange parsing - [#13124](https://github.com/NuGet/Home/issues/13124)
118+
119+
* Static graph restore doesn't restore packages.config only solution - [#13109](https://github.com/NuGet/Home/issues/13109)
120+
121+
* NuGet restore always touched the project.assets.json file even no content is changed when it needs log error messages. - [#13098](https://github.com/NuGet/Home/issues/13098)
122+
123+
* Audit at restore time must not throw and fail the operation - [#13085](https://github.com/NuGet/Home/issues/13085)
124+
125+
* Getting "An item with the same key has already been added" error when restoring. - [#13067](https://github.com/NuGet/Home/issues/13067)
126+
127+
* PM UI Scrolling no longer loads additional packages. - [#13063](https://github.com/NuGet/Home/issues/13063)
128+
129+
* NuGet restore cache check is no longer using file existence cache - [#13058](https://github.com/NuGet/Home/issues/13058)
130+
131+
* Adding a reference to an esproj from an ASP.Net project results in a NU1105 error - [#12986](https://github.com/NuGet/Home/issues/12986)
132+
133+
* RemoteDependencyWalker allocates a lot due to the fact that it's called recursively - [#12748](https://github.com/NuGet/Home/issues/12748)
134+
135+
* [Bug]: Canceling msbuild restore is slow when invalid/unreachable source configured - [#11813](https://github.com/NuGet/Home/issues/11813)
136+
137+
* Restore: excessive deep cloning of ProjectSpec - [#9041](https://github.com/NuGet/Home/issues/9041)
138+
139+
[List of commits in this release](https://github.com/NuGet/NuGet.Client/compare/6.9.1.3...6.10.0.97)
140+
141+
### Community contributions
142+
143+
Thank you to all the contributors who helped make this NuGet release awesome!
144+
145+
* [Erarndt](https://github.com/NuGet/NuGet.Client/pull/5659)
146+
* [5659](https://github.com/NuGet/NuGet.Client/pull/5659) Reduce boxing when enumerating lists
147+
* [5662](https://github.com/NuGet/NuGet.Client/pull/5662) Use StringBuilder.AppendInt() in more places to reduce allocations when appending integers to a StringBuilder
148+
* [5663](https://github.com/NuGet/NuGet.Client/pull/5663) Remove allocations from TextWriter.NewLine implementation
149+
* [5665](https://github.com/NuGet/NuGet.Client/pull/5665) Use pooled StringBuilder
150+
* [5661](https://github.com/NuGet/NuGet.Client/pull/5661) Avoid enumerator boxing in PackageSpecificWarningProperties.AddRangeOfCodes and TransitiveNoWarnUtils.AddToSeen
151+
* [5660](https://github.com/NuGet/NuGet.Client/pull/5660) Ensure that Process objects are disposed when launching authentication plug-ins
152+
* [5664](https://github.com/NuGet/NuGet.Client/pull/5664) Specify list size in TopologicalSortUtility.CalculateRelationships
153+
* [5624](https://github.com/NuGet/NuGet.Client/pull/5624) Switch CreateNodeAsync to an iterative approach
154+
* [5584](https://github.com/NuGet/NuGet.Client/pull/5584) Unroll LINQ usage to trim some allocations in AddMSBuildAssets
155+
* [5574](https://github.com/NuGet/NuGet.Client/pull/5574) Unroll several LINQ calls
156+
* [5593](https://github.com/NuGet/NuGet.Client/pull/5593) Further reduce allocations in CreateGraphNodeAsync
157+
* [5592](https://github.com/NuGet/NuGet.Client/pull/5592) Avoid multiple enumeration when writing Json objects
158+
* [5600](https://github.com/NuGet/NuGet.Client/pull/5600) Avoid intermediate string allocation caused by StringBuilder Append(i…
159+
* [5555](https://github.com/NuGet/NuGet.Client/pull/5555) Unroll Linq in GetFlags
160+
* [5588](https://github.com/NuGet/NuGet.Client/pull/5588) Avoid boxing HashSet Enumerator in IsBestVerion
161+
* [5589](https://github.com/NuGet/NuGet.Client/pull/5589) Update the pool implementation to use a stack with a lock to avoid al…
162+
* [5568](https://github.com/NuGet/NuGet.Client/pull/5568) Change ResolvedDependencyKey to a struct
163+
* [5553](https://github.com/NuGet/NuGet.Client/pull/5553) Avoid some allocations in GetCompatibilityData
164+
* [5554](https://github.com/NuGet/NuGet.Client/pull/5554) Switch from Tuple to ValueTuple for Dictionary keys
165+
* [5552](https://github.com/NuGet/NuGet.Client/pull/5552) Avoid creating the capture class for calls to WithExtension
166+
* [5556](https://github.com/NuGet/NuGet.Client/pull/5556) Switch from ConcurrentDictionary to Dictionary with lock to avoid rep…
167+
* [5551](https://github.com/NuGet/NuGet.Client/pull/5551) Use string.Contains instead of IEnumerable.Contains
168+
* [5550](https://github.com/NuGet/NuGet.Client/pull/5550) Avoid boxing List\<T\> enumerator
169+
* [GenelleM](https://github.com/NuGet/NuGet.Client/pull/5655)
170+
* [5655](https://github.com/NuGet/NuGet.Client/pull/5655) Add 64-bit non crypto hash algo for dgspec uniqueness computation
171+
* [5629](https://github.com/NuGet/NuGet.Client/pull/5629) Replace calls to Any() on ICollection in PackageSpecWriter with Count > 0 Issue #13213
172+
* [5619](https://github.com/NuGet/NuGet.Client/pull/5619) Reduces some CPU time usage in SetCentralDependencies
173+
* [NikolaMilosavljevic](https://github.com/NuGet/NuGet.Client/pull/5673)
174+
* [5673](https://github.com/NuGet/NuGet.Client/pull/5673) Enable publishing in VMR
175+
* [5625](https://github.com/NuGet/NuGet.Client/pull/5625) Eliminate System.CommandLine prebuilt package
176+
* [brianrob](https://github.com/NuGet/NuGet.Client/pull/5650)
177+
* [5650](https://github.com/NuGet/NuGet.Client/pull/5650) Add Restore Instrumentation

0 commit comments

Comments
 (0)