Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NuGet package reverse dependency #99

Closed
wants to merge 1 commit into from
Closed

Conversation

bruno-garcia
Copy link
Member

@bruno-garcia bruno-garcia commented Mar 20, 2020

Last day of vacation so a quick hack:

http://localhost:5002/api/package/dependant/newtonsoft.json

image

And:
Filter by Version range:

image

No range filter, but include version/target framework in result:

http://localhost:5002/api/package/dependant/newtonsoft.json/version

image

The 'filter by version range' evaluates in memory so likely will not work (OOM?) with all dataset for big packages.

@bruno-garcia
Copy link
Member Author

bruno-garcia commented Mar 21, 2020

The IAsyncEnumerable approach used for the package Ids endpoint doesn't work with large number of dependencies.

It fails with:

System.InvalidOperationException

'AsyncEnumerableReader' reached the configured maximum size of the buffer when enumerating a value of type 'Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[System.String]'. This limit is in place to prevent infinite streams of 'IAsyncEnumerable<>' from continuing indefinitely. If this is not a programming mistake, consider ways to reduce the collection size, or consider manually converting 'Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryable`1[System.String]' into a list rather than increasing the limit.

Reason is System.Text.Json doesn't serialize the IAsyncEnumerable in a streaming manner.

See: dotnet/runtime#1570

@bruno-garcia bruno-garcia changed the title reverse dependency NuGet package reverse dependency Mar 21, 2020
@bruno-garcia bruno-garcia changed the base branch from master to main June 15, 2020 14:42
@bruno-garcia
Copy link
Member Author

Folks at Microsoft are building this into nuget.org
Since this works but it doesn't scale and is slow on big dependencies, we'll just close it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant