mirror of
https://github.com/status-im/sourcecred.git
synced 2025-01-10 12:46:16 +00:00
e2c99c418b
Summary: This makes significant progress toward #923. As of this commit, it is possible to use the Mirror module for the whole loading pipeline. This process may be slow for repositories that do not use pull requests at all (more precisely, that have large connected commit subgraphs none of whose nodes is the merge commit of a pull request; see #920 for details) so it is not yet the default codepath. Test Plan: Existing unit tests should suffice. For extra testing, I’ve added a script that fetches a repository both via the old continuations logic and the new Mirror logic, then constructs relational views and checks whether the data is the same. For `example-github`, the views are identical. For `sourcecred`, they are not: the old continuations logic erroneously omits two commits, which the Mirror logic includes. You can run the test like this: ``` $ node ./bin/testContinuations.js \ > sourcecred sourcecred MDEwOlJlcG9zaXRvcnkxMjAxNDU1NzA= \ > /tmp/continuations.json /tmp/mirror.json \ > 2> >(jq . >&2) { "child": "0d38dde23a6de831315f3643a7d2bc15e8df7678", "parent": "cb8ba0eaa1abc1f921e7165bb19e29b40723ce65", "type": "UNKNOWN_PARENT_OID" } { "child": "d152f48ce4c2ed1d046bf6ed4f139e7e393ea660", "parent": "de7a8723963d9cd0437ef34f5942a071b850c0e7", "type": "UNKNOWN_PARENT_OID" } Different. Saving to disk... ``` Use `diff -u <(jq . /tmp/continuations.json) <(jq . /tmp/mirror.json)` to inspect the differences, and note that exactly the two missing commits have been added and that there are no other changes. (The diff is small: just 51 lines of nicely formatted JSON.) The full log is here: <https://gist.github.com/wchargin/e159cac9dcf3cc3b1efbd54f59e24e0b> I also generated the `sourcecred/sourcecred` cred attribution and viewed it with `yarn start`, which seems to work fine. wchargin-branch: relationalview-new-data-format