-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Problem
The current dependency graph is too large for efficient Pairwise voting, so we need to prune it back to something more manageable for a person putting in, say, up to 5 minutes per comparison.
Proposed Solution
We can use heuristics to prune the dependency graph to a more manageable size, capping the number of dependencies to a maximum of 30 per seed node.
The pruning process relies on the following heuristics:
-
Funding History
Prioritizes repositories associated with projects that have received funding from platforms such as Gitcoin, Optimism, or Open Collective. -
Language Matching
Retains dependencies written in the same programming language as the dependent repository.- Most effective for languages like TypeScript/JavaScript, Rust, Go, and Python.
- Currently less effective for languages like C, Java, and Nim.
-
Maintainer Identity
Prioritizes repositories within a relevant namespace that align closely with the seed node’s dependencies.- Example: In the
libp2pnamespace, bothlibp2p/go-libp2pandlibp2p/go-libp2p-asn-utilexist.
In effect, this should retainlibp2p/go-libp2pas the more relevant repo and prune a less central one likelibp2p/go-libp2p-asn-util.
- Example: In the
-
Star Counts
As a fallback, repositories are ranked by star counts when the above heuristics are insufficient to reduce dependencies below the desired cap.