-
Notifications
You must be signed in to change notification settings - Fork 210
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
Iterative crawl #3842
Iterative crawl #3842
Conversation
Package publishing
Documentation at https://github.com/dart-lang/ecosystem/wiki/Publishing-automation. |
PR HealthChangelog Entry ✔️
Changes to files need to be accounted for in their respective changelogs. |
c1e2fe6
to
4a394a7
Compare
Fwiw it would be worth upstreaming the change to an iterative algorithm to package:graphs |
1d6ce02
to
4a394a7
Compare
4a394a7
to
51a64ca
Compare
That didn't quite work; the new algorithm crawled each dep one by one, but the test "A hidden generated file does not poison resolving has a situation where one read will just block until others are complete; it relies on the crawl happening "in parallel". Since the goal here is to match the existing algorithm, updated to also crawl "in parallel", i.e. using Benchmark results look similar
|
The current
build_runner
can't actually run the benchmarks I want due to getting a stack overflow, this is a minimal fix: copy thecrawlAsync
algorithm and test out ofpackage:graph
(which we own), make it iterative. The algorithm is significantly changed, the tests are the same.Per suggestion on another PR I benchmarked using
List
instead ofQueue
, there was no consistent difference; so this usesQueue
to make the processing order closer to the previous version.Here is the same benchmark pasted in #3841 but now without failures due to stack overflows :)