1083540d21
Summary: Closes #82. This affords clients type-safety without needing to verbosely annotate every node or edge passed into the graph functions. It also enables graph algorithms to be more expressive in their types: for instance, the merge function now clearly indicates from its type that the first graph’s nodes are passed as the first argument to the node reducer, and the second graph’s nodes to the second. Clients can upgrade immediately by using `Graph<*, *>`. Thankfully, Flow supports variance well enough for this all to be possible without too much trouble. Test Plan: Existing unit tests pass statically and at runtime. I added a test case to demonstrate that merging works covariantly. To see some failures, change `string` to an incompatible type, like `number`, in the definitions of `makeGraph` in test functions for conservatively rejecting graphs with conflicting nodes/edges (ll. 446, 462). wchargin-branch: parameterize-graph |
||
---|---|---|
config | ||
experiments | ||
flow-typed/npm | ||
public | ||
scripts | ||
src | ||
.flowconfig | ||
.gitignore | ||
.prettierignore | ||
.prettierrc.json | ||
.travis.yml | ||
LICENSE | ||
README.md | ||
package.json | ||
yarn.lock |
README.md
SourceCred
The open-source community provides an enormous amount of value to the world. However, open-source contributors go largely unrewarded and unrecognized. SourceCred aims to help that situation, by building tools that enable quantitatively measuring the value that open-source contributors provide to individual projects, and to the community as a whole.
SourceCred will create a "Cred Graph", which is a graph that shows how the contributions that compose open-source projects are related to and derive value from each other. From this, we'll be able to assign "cred" to users based on how valuable their contributions are. Cred will be assigned based on a mixture of objective data (e.g. references between GitHub pull requests) and subjective feedback (e.g. projects' own judgments on how important different contributions were).
If you'd like to contribute, please follow along with our issues, as we are using issues to coordinate development and design decisions. We also have a slack.