2018-02-16 22:32:24 +00:00
|
|
|
{
|
2018-05-05 07:04:42 +00:00
|
|
|
"name": "sourcecred",
|
2019-08-07 18:12:11 +00:00
|
|
|
"version": "0.4.0",
|
2019-08-13 15:46:23 +00:00
|
|
|
"private": false,
|
2018-02-16 22:32:24 +00:00
|
|
|
"dependencies": {
|
2018-03-19 22:31:08 +00:00
|
|
|
"aphrodite": "^2.1.0",
|
2019-07-19 12:01:36 +00:00
|
|
|
"base64url": "^3.0.1",
|
Update better-sqlite3 to v5
When we took a dep on better-sqlite3 in #836, we used a fork, because
better-sqlite3 did not yet support private in-memory databases via the
`:memory:` filepath. As of better-sqlite3 v5, this has been added to
mainline, so we no longer need the fork.
The v4->v5 transition involves some breaking changes. The only ones that
affected us were two field renames, from `lastUpdateROWID` to
`lastUpdateRowid`, and `returnsData` to `reader`.
Test plan:
After updating the field accesses, `yarn test --full` passes. For added
safety, I also blew away cache, loaded a nontrivial repository, and
verified that the full cred workflow still works.
cc @wchargin
2019-07-04 16:48:34 +00:00
|
|
|
"better-sqlite3": "^5.4.0",
|
2019-07-05 19:10:02 +00:00
|
|
|
"chalk": "2.4.2",
|
|
|
|
"commonmark": "^0.29.0",
|
2019-07-07 14:13:12 +00:00
|
|
|
"d3-array": "^2.2.0",
|
Initial Timeline Explorer
This commit adds a TimelineExplorer for visualizing timeline cred data.
The centerpiece is the TimelineCredChart, a d3-based line chart showing
how the top users' cred evolved over time. It has features like tooltips,
reasonable ticks on the x axis, a legend, and filtering out line
segments that stay on the x axis.
An inspection test is included, which you can check out here:
http://localhost:8080/test/TimelineCredView/
Also, you can run it for any loaded repository at:
http://localhost:8080/timeline/$repoOwner/$repoName
This commit also includes new dependencies:
- recharts (for the charts)
- react-markdown (for rendering the Markdown descriptions)
- remove-markdown (so the legend will be clean text)
- d3-time-format for date axis generation
- d3-scale and d3-scale-chromatic for color scales
Test plan: The frontend code is mostly untested, in keeping with my
observation that the costs of testing the old explorer were really high,
and the tests brought little benefit. However, I have manually tested it
thoroughly. Also, there is an inspection test for the TimelineCredView
(see above).
2019-05-31 17:17:27 +00:00
|
|
|
"d3-format": "^1.3.2",
|
|
|
|
"d3-scale": "^3.0.0",
|
|
|
|
"d3-scale-chromatic": "^1.3.3",
|
2019-07-07 14:13:12 +00:00
|
|
|
"d3-time": "^1.0.11",
|
Initial Timeline Explorer
This commit adds a TimelineExplorer for visualizing timeline cred data.
The centerpiece is the TimelineCredChart, a d3-based line chart showing
how the top users' cred evolved over time. It has features like tooltips,
reasonable ticks on the x axis, a legend, and filtering out line
segments that stay on the x axis.
An inspection test is included, which you can check out here:
http://localhost:8080/test/TimelineCredView/
Also, you can run it for any loaded repository at:
http://localhost:8080/timeline/$repoOwner/$repoName
This commit also includes new dependencies:
- recharts (for the charts)
- react-markdown (for rendering the Markdown descriptions)
- remove-markdown (so the legend will be clean text)
- d3-time-format for date axis generation
- d3-scale and d3-scale-chromatic for color scales
Test plan: The frontend code is mostly untested, in keeping with my
observation that the costs of testing the old explorer were really high,
and the tests brought little benefit. However, I have manually tested it
thoroughly. Also, there is an inspection test for the TimelineCredView
(see above).
2019-05-31 17:17:27 +00:00
|
|
|
"d3-time-format": "^2.1.3",
|
2019-07-21 15:05:21 +00:00
|
|
|
"deep-freeze": "^0.0.1",
|
2018-07-27 19:38:40 +00:00
|
|
|
"express": "^4.16.3",
|
2019-07-05 19:10:02 +00:00
|
|
|
"fs-extra": "8.1.0",
|
2018-08-15 19:01:27 +00:00
|
|
|
"history": "^3.0.0",
|
2018-07-27 19:38:40 +00:00
|
|
|
"isomorphic-fetch": "^2.2.1",
|
|
|
|
"json-stable-stringify": "^1.0.1",
|
|
|
|
"lodash.clonedeep": "^4.5.0",
|
|
|
|
"lodash.isequal": "^4.5.0",
|
|
|
|
"lodash.sortby": "^4.7.0",
|
|
|
|
"object-assign": "4.1.1",
|
2018-09-01 17:42:30 +00:00
|
|
|
"pako": "^1.0.6",
|
2019-07-05 19:10:02 +00:00
|
|
|
"promise": "8.0.3",
|
2018-07-27 20:27:19 +00:00
|
|
|
"react": "^16.4.1",
|
|
|
|
"react-dom": "^16.4.1",
|
2019-05-20 14:12:57 +00:00
|
|
|
"react-icons": "^3.7.0",
|
|
|
|
"react-markdown": "^4.0.8",
|
2018-07-27 19:38:40 +00:00
|
|
|
"react-router": "3.2.1",
|
Initial Timeline Explorer
This commit adds a TimelineExplorer for visualizing timeline cred data.
The centerpiece is the TimelineCredChart, a d3-based line chart showing
how the top users' cred evolved over time. It has features like tooltips,
reasonable ticks on the x axis, a legend, and filtering out line
segments that stay on the x axis.
An inspection test is included, which you can check out here:
http://localhost:8080/test/TimelineCredView/
Also, you can run it for any loaded repository at:
http://localhost:8080/timeline/$repoOwner/$repoName
This commit also includes new dependencies:
- recharts (for the charts)
- react-markdown (for rendering the Markdown descriptions)
- remove-markdown (so the legend will be clean text)
- d3-time-format for date axis generation
- d3-scale and d3-scale-chromatic for color scales
Test plan: The frontend code is mostly untested, in keeping with my
observation that the costs of testing the old explorer were really high,
and the tests brought little benefit. However, I have manually tested it
thoroughly. Also, there is an inspection test for the TimelineCredView
(see above).
2019-05-31 17:17:27 +00:00
|
|
|
"recharts": "^1.6.2",
|
|
|
|
"remove-markdown": "^0.3.0",
|
2018-08-22 18:37:29 +00:00
|
|
|
"retry": "^0.12.0",
|
Add CLI command to clear sourcecred data directory (#1111)
Resolves #1067
Adds the CLI commands:
`sourcecred clear --all` -- removes the $SOURCECRED_DIRECTORY
`sourcecred clear --cache` -- removes the cache directory
`sourcecred clear --help` -- provides usage info
`sourcecred clear` -- prompts the user to be more specific
Test plan:
The unit tests ensure that the command is properly wired into the
sourcecred CLI, including help text integration. However, just to be
safe, we can start by verifying that calling `sourcecred` without
arguments lists the `clear` command as a valid option, and that
calling `sourcecred help clear` prints help information. (Note: it's
necessary to run `yarn backend` before testing these changes)
The unit tests also ensure that the command removes the proper
directories, so there isn't really a need to manually test it,
although the reviewer may choose to do so to be safe.
Although out of scope for unit tests on this function, we can also do
integration tests, to make sure that running the clear command doesn't
leave the sourcecred directory in an invalid state from the perspective of the `load` command.
```js
$ yarn backend;
$ node bin/sourcecred.js load sourcecred/example-github;
$ node bin/sourcecred.js clear --cache;
$ node bin/sourcecred.js load sourcecred/example-github;
$ node bin/sourcecred.js clear --all;
$ node bin/sourcecred.js load sourcecred/example-github;
```
The expected behavior of the above command block is that the load command never fails or throws an error.
@decentralion and I discussed the scenario where `rimraf` errors.
We decided that testing this scenario wasn't necessary, because
`rimraf` doesn't error if a directory doesn't exist, and
rimraf's maintainer suggests [monkey-patching the fs module]
to get rimraf to error in testing scenarios.
Thanks @decentralion for reviewing and pair-programming this with me.
[monkey-patching the fs module]: https://github.com/isaacs/rimraf/issues/31#issuecomment-29534796
2019-05-13 09:59:58 +00:00
|
|
|
"rimraf": "^2.6.3",
|
2019-05-20 14:12:57 +00:00
|
|
|
"svg-react-loader": "^0.4.6",
|
2019-07-05 23:22:04 +00:00
|
|
|
"tmp": "^0.0.33",
|
2018-07-27 19:38:40 +00:00
|
|
|
"whatwg-fetch": "2.0.3"
|
|
|
|
},
|
|
|
|
"devDependencies": {
|
2019-07-18 13:04:05 +00:00
|
|
|
"@babel/core": "^7.5.5",
|
|
|
|
"@babel/plugin-proposal-class-properties": "^7.5.5",
|
|
|
|
"@babel/preset-env": "^7.5.5",
|
2019-07-11 04:15:53 +00:00
|
|
|
"@babel/preset-flow": "^7.0.0",
|
|
|
|
"@babel/preset-react": "^7.0.0",
|
|
|
|
"babel-eslint": "^10.0.2",
|
|
|
|
"babel-jest": "^24.8.0",
|
|
|
|
"babel-loader": "^8.0.6",
|
2019-07-11 04:41:26 +00:00
|
|
|
"copy-webpack-plugin": "^5.0.3",
|
|
|
|
"css-loader": "^3.0.0",
|
2019-07-05 19:10:02 +00:00
|
|
|
"dotenv": "8.0.0",
|
|
|
|
"dotenv-expand": "5.1.0",
|
2018-07-27 19:38:40 +00:00
|
|
|
"enzyme": "^3.3.0",
|
|
|
|
"enzyme-adapter-react-16": "^1.1.1",
|
|
|
|
"enzyme-to-json": "^3.3.3",
|
2019-08-07 11:48:31 +00:00
|
|
|
"eslint": "6.1.0",
|
2019-08-09 13:40:53 +00:00
|
|
|
"eslint-plugin-flowtype": "4.0.0",
|
2019-08-07 11:40:57 +00:00
|
|
|
"eslint-plugin-import": "2.18.1",
|
2019-07-05 17:36:43 +00:00
|
|
|
"eslint-plugin-jsx-a11y": "6.2.3",
|
2019-08-07 11:41:10 +00:00
|
|
|
"eslint-plugin-react": "7.14.3",
|
2019-07-11 04:41:26 +00:00
|
|
|
"file-loader": "^4.0.0",
|
2019-08-10 07:04:01 +00:00
|
|
|
"flow-bin": "^0.105.0",
|
2019-07-04 17:53:48 +00:00
|
|
|
"jest": "^24.8.0",
|
2019-07-05 19:10:02 +00:00
|
|
|
"jest-fetch-mock": "^2.1.2",
|
2019-08-05 02:26:50 +00:00
|
|
|
"prettier": "1.18.2",
|
2019-07-05 19:10:02 +00:00
|
|
|
"raf": "3.4.1",
|
2018-02-17 21:28:47 +00:00
|
|
|
"react-dev-utils": "^5.0.0",
|
2018-07-27 19:38:40 +00:00
|
|
|
"static-site-generator-webpack-plugin": "^3.4.1",
|
2019-07-11 04:41:26 +00:00
|
|
|
"url-loader": "^2.0.1",
|
2019-08-14 14:11:47 +00:00
|
|
|
"webpack": "^4.39.2",
|
2019-07-11 04:41:26 +00:00
|
|
|
"webpack-cli": "^3.3.5",
|
|
|
|
"webpack-dev-server": "^3.7.2",
|
|
|
|
"webpack-manifest-plugin": "^2.0.4",
|
2018-07-27 19:38:40 +00:00
|
|
|
"webpack-node-externals": "^1.7.2"
|
2018-02-16 22:32:24 +00:00
|
|
|
},
|
2019-07-05 19:10:02 +00:00
|
|
|
"greenkeeper": {
|
|
|
|
"ignore": [
|
|
|
|
"history",
|
|
|
|
"react-dev-utils",
|
|
|
|
"react-router",
|
2019-07-18 13:02:52 +00:00
|
|
|
"whatwg-fetch",
|
|
|
|
"tmp"
|
2019-07-05 19:10:02 +00:00
|
|
|
]
|
|
|
|
},
|
2018-02-16 22:32:24 +00:00
|
|
|
"scripts": {
|
2018-02-18 09:59:28 +00:00
|
|
|
"prettify": "prettier --write '**/*.js'",
|
2018-03-02 22:39:54 +00:00
|
|
|
"check-pretty": "prettier --list-different '**/*.js'",
|
2018-09-05 04:45:10 +00:00
|
|
|
"start": "NODE_ENV=development webpack-dev-server --config config/webpack.config.web.js",
|
|
|
|
"build": "NODE_ENV=production webpack --config config/webpack.config.web.js",
|
2018-09-05 19:28:27 +00:00
|
|
|
"backend": "NODE_ENV=development webpack --config config/webpack.config.backend.js",
|
2018-07-31 17:53:10 +00:00
|
|
|
"test": "node ./config/test.js",
|
|
|
|
"unit": "BABEL_ENV=test NODE_ENV=test jest --env=jsdom",
|
Add `sharness` for shell-based testing (#597)
Summary:
We will shortly want to perform testing of shell scripts; it makes the
most sense to do so via the shell. We could roll our own testing
framework, but it makes more sense to use an existing one. By choosing
Sharness, we’re in good company: `go-ipfs` and `go-multihash` use it as
well, and it’s derived from Git’s testing library. I like it a lot.
For now, we need a dummy test file; our test runner will fail if there
are no tests to run. As soon as we have a real test, we can remove this.
This commit was generated by following the “per-project installation”
instructions at https://github.com/chriscool/sharness, and by
additionally including that repository’s `COPYING` file as
`SHARNESS_LICENSE`, with a header prepended. I considered instead adding
Sharness as a submodule, which is supported and has clear advantages
(e.g., you can update the thing), but opted to avoid the complexity of
submodules for now.
Test Plan:
Create the following tests in the `sharness` directory:
```shell
$ cat sharness/good.t
#!/bin/sh
test_description='demo of passing tests'
. ./sharness.sh
test_expect_success "look at me go" true
test_expect_success EXPENSIVE "this may take a while" 'sleep 2'
test_done
# vim: ft=sh
$ cat sharness/bad.t
#!/bin/sh
test_description='demo of failing tests'
. ./sharness.sh
test_expect_success "I don't feel so good" false
test_done
# vim: ft=sh
```
Note that `yarn sharness` and `yarn test` fail appropriately. Note that
`yarn sharness-full` fails appropriately after taking two extra seconds,
and `yarn test --full` runs the latter. Each failure message should
print the name of the failing test case, not just the suite name, and
should indicate that the passing tests passed.
Then, remove `sharness/bad.t`, and note that the above commands all
pass, with the `--full` variants still taking longer.
Finally, remove `sharness/good.t`, and note that the above commands all
pass (and all pass quickly).
wchargin-branch: add-sharness
2018-08-06 19:56:25 +00:00
|
|
|
"sharness": "make -sC ./sharness prove PROVE_OPTS=-f TEST_OPTS='--chain-lint'",
|
2018-10-31 18:06:48 +00:00
|
|
|
"sharness-full": "make -sC ./sharness prove PROVE_OPTS=-vf TEST_OPTS='-v --chain-lint --long'",
|
2019-01-07 22:38:21 +00:00
|
|
|
"coverage": "yarn run unit --coverage",
|
2018-03-02 22:39:54 +00:00
|
|
|
"flow": "flow",
|
2018-07-31 17:53:10 +00:00
|
|
|
"lint": "eslint src config --max-warnings 0"
|
2018-02-17 21:28:47 +00:00
|
|
|
},
|
2019-08-13 15:46:23 +00:00
|
|
|
"license": "(MIT OR Apache-2.0)",
|
2018-02-17 21:28:47 +00:00
|
|
|
"jest": {
|
|
|
|
"collectCoverageFrom": [
|
|
|
|
"src/**/*.{js,jsx,mjs}"
|
|
|
|
],
|
|
|
|
"setupFiles": [
|
2018-07-26 22:08:14 +00:00
|
|
|
"<rootDir>/config/polyfills.js",
|
|
|
|
"<rootDir>/config/jest/setupJest.js"
|
2018-02-17 21:28:47 +00:00
|
|
|
],
|
|
|
|
"testMatch": [
|
|
|
|
"<rootDir>/src/**/__tests__/**/*.{js,jsx,mjs}",
|
|
|
|
"<rootDir>/src/**/?(*.)(spec|test).{js,jsx,mjs}"
|
|
|
|
],
|
|
|
|
"testEnvironment": "node",
|
|
|
|
"testURL": "http://localhost",
|
|
|
|
"transform": {
|
|
|
|
"^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest",
|
|
|
|
"^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
|
|
|
|
"^(?!.*\\.(js|jsx|mjs|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
|
|
|
|
},
|
|
|
|
"transformIgnorePatterns": [
|
|
|
|
"[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$"
|
|
|
|
],
|
|
|
|
"moduleNameMapper": {
|
|
|
|
"^react-native$": "react-native-web"
|
|
|
|
},
|
|
|
|
"moduleFileExtensions": [
|
|
|
|
"web.js",
|
|
|
|
"js",
|
|
|
|
"json",
|
|
|
|
"web.jsx",
|
|
|
|
"jsx",
|
2019-07-14 19:05:49 +00:00
|
|
|
"node",
|
|
|
|
"mjs"
|
2018-02-17 21:28:47 +00:00
|
|
|
]
|
|
|
|
},
|
2018-07-27 21:32:30 +00:00
|
|
|
"files": [
|
|
|
|
"/bin",
|
|
|
|
"/build"
|
2018-09-02 23:11:56 +00:00
|
|
|
]
|
2018-02-16 22:32:24 +00:00
|
|
|
}
|