`aspire update` is slow due to using `dotnet package search` - using the nuget API directly would be faster
- Dominant language
- C#
- Stars
- 6.3k
- Forks
- 991
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 196
Description
### Is there an existing issue for this?
- [x] I have searched the existing issues
### Is your feature request related to a problem? Please describe the problem.
running `aspire update` takes a few minutes for a project with 10+ aspire packages.
this is due to the command using `dotnet package search` for each package.
### Describe the solution you'd like
using https://learn.microsoft.com/en-us/nuget/api/search-query-service-resource directly without the CLI could be faster.
or maybe have a single search for `Aspire` with tags to reduce the amount of dotnet commands executed
### Additional context
the debug output:
[12:56:01] [dbug] DotNetCliRunner: dotnet(50992) stdout: C:\Users\meblachm\AppData\Roaming\NuGet\NuGet.Config
[12:56:01] [dbug] DotNetCliRunner: dotnet(50992) stdout: C:\Program Files (x86)\NuGet\Config\Microsoft.VisualStudio.FallbackLocation.config
[12:56:01] [dbug] DotNetCliRunner: dotnet(50992) stdout: C:\Program Files (x86)\NuGet\Config\Microsoft.VisualStudio.Offline.config
[12:56:01] [dbug] DotNetCliRunner: dotnet process with PID: 46708 has exited with code: 0
[12:56:01] [dbug] DiskCache: Deleted expired cache file: C:\Users\meblachm\.aspire\cache\nuget-search\7AA36946EE7B5B7C0D91C248923BA194B48FED4F13D994D945B6BCCB34EDD666.1760473147.json
[12:56:01] [dbug] DiskCache: Disk cache miss for key
query=Microsoft.Extensions.ServiceDiscovery|prerelease=False|take=1000|skip=0|nugetConfigHash=46AB8C04B48C435EAAC5FDFA56A95385E955B5E706B0C4C969216BC55917A575|76D332CC8153C1A2CA1A2B041A9E644024B14C653E378ACF10627ABB27F538F6|EA42B903F68C8AC846734849D65D74FDFCC70376D803DB231644B8EA66AC7509|579ABEBD9EFD1869ECD359B
EFB8D5869D50C8E84F9357EC58666CFA2D0AF0449|cliVersion=9.5.1+286943594f648310ad076e3dbfc11f4bcc8a3d83
[12:56:01] [dbug] DotNetCliRunner: Running dotnet with args: package search Microsoft.Extensions.ServiceDiscovery --take 1000 --skip 0 --format json
[12:56:01] [dbug] DotNetCliRunner: Started dotnet with PID: 54852
[12:56:01] [dbug] DotNetCliRunner: Starting to forward stream with identifier 'stdout' on process '54852' to logger
[12:56:01] [dbug] DotNetCliRunner: Starting to forward stream with identifier 'stderr' on process '54852' to logger
[12:56:01] [dbug] DotNetCliRunner: Waiting for dotnet process to exit with PID: 54852
[12:56:01] [dbug] DotNetCliRunner: dotnet process with PID: 50992 has exited with code: 0
[12:56:01] [dbug] DiskCache: Deleted expired cache file: C:\Users\meblachm\.aspire\cache\nuget-search\4DCB4C51E8D26087ABB4E0A4684727F7F9F6E26B5366B25B7CC08B7E39DA384A.1760473148.json
[12:56:01] [dbug] DiskCache: Disk cache miss for key
query=Microsoft.Extensions.ServiceDiscovery|prerelease=True|take=1000|skip=0|nugetConfigHash=46AB8C04B48C435EAAC5FDFA56A95385E955B5E706B0C4C969216BC55917A575|76D332CC8153C1A2CA1A2B041A9E644024B14C653E378ACF10627ABB27F538F6|EA42B903F68C8AC846734849D65D74FDFCC70376D803DB231644B8EA66AC7509|579ABEBD9EFD1869ECD359BE
FB8D5869D50C8E84F9357EC58666CFA2D0AF0449|cliVersion=9.5.1+286943594f648310ad076e3dbfc11f4bcc8a3d83
[12:56:01] [dbug] DotNetCliRunner: Running dotnet with args: package search Microsoft.Extensions.ServiceDiscovery --take 1000 --skip 0 --format json --prerelease
[12:56:01] [dbug] DotNetCliRunner: Started dotnet with PID: 50768
[12:56:01] [dbug] DotNetCliRunner: Starting to forward stream with identifier 'stderr' on process '50768' to logger
[12:56:01] [dbug] DotNetCliRunner: Starting to forward stream with identifier 'stdout' on process '50768' to logger
[12:56:01] [dbug] DotNetCliRunner: Waiting for dotnet process to exit with PID: 50768
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: {
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "version": 2,
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "problems": [],
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "searchResult": [
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: {
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "sourceName": "MDA-external",
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "packages": [
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: {
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "id": "Biwen.Microsoft.Extensions.ServiceDiscovery",
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "latestVersion": "1.1.0"
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: },
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: {
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "id": "Microsoft.Extensions.ServiceDiscovery",
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "latestVersion": "9.5.1"
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: },
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: {
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "id": "Microsoft.Extensions.ServiceDiscovery.Abstractions",
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "latestVersion": "9.5.1"
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: },
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: {
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "id": "Microsoft.Extensions.ServiceDiscovery.Dns",
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "latestVersion": "9.5.1"
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: },
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: {
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "id": "Microsoft.Extensions.ServiceDiscovery.Yarp",
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "latestVersion": "9.5.1"
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: },
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: {
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "id": "SH.Microsoft.Extensions.ServiceDiscovery.AgileConfig",
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: "latestVersion": "1.0.0"
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: }
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: ]
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: }
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: ]
[12:56:27] [dbug] DotNetCliRunner: dotnet(54852) stdout: }
[12:56:27] [dbug] DotNetCliRunner: dotnet process with PID: 54852 has exited with code: 0
[12:56:27] [dbug] DiskCache: Stored disk cache entry for key
query=Microsoft.Extensions.ServiceDiscovery|prerelease=False|take=1000|skip=0|nugetConfigHash=46AB8C04B48C435EAAC5FDFA56A95385E955B5E706B0C4C969216BC55917A575|76D332CC8153C1A2CA1A2B041A9E644024B14C653E378ACF10627ABB27F538F6|EA42B903F68C8AC846734849D65D74FDFCC70376D803DB231644B8EA66AC7509|579ABEBD9EFD1869ECD359B
EFB8D5869D50C8E84F9357EC58666CFA2D0AF0449|cliVersion=9.5.1+286943594f648310ad076e3dbfc11f4bcc8a3d83 (file: C:\Users\meblachm\.aspire\cache\nuget-search\7AA36946EE7B5B7C0D91C248923BA194B48FED4F13D994D945B6BCCB34EDD666.1760522187.json)
we are using an Azure Devops feed here.
Contributor guide
Assessment
This issue has not been assessed yet.