Contributions of all kinds are welcome. By offering a contribution, you agree to abide by our Code of Conduct and that your work may be made available under the terms of our license.
-
To report a bug or request a new feature, please check the list of open issues to see if it's already there, and if not, file as complete a description as you can.
-
If you have made a fix or improvement, please create a pull request. We will review these as quickly as we can (typically within 2-3 days).
-
npm run build: regeneratedist/tidyblocks.js, then openindex.htmlto see it. -
npm run watch: regenerate and reloaddist/tidyblocks.jswhenever files change. -
npm run coverage: run tests and report code coverage (opencoverage/index.htmlto see results). -
npm run data: create loadable JSON file for each CSV file in./data. (These files must be loaded in./libs/gui.jsto be accessible.) -
npm run docs: regenerate code documentation (opendocs/index.htmlto view). -
npm run lint: run code style check. -
npm run test: run tests without code coverage (which is faster).
TidyBlocks uses Blockly for the workspace, React for the user interface, and Jekyll + GitHub Pages for the website as a whole.
-
libs/util.js: low-level utilities. -
libs/dataframe.js: operations on data tables. -
libs/expr.js,libs/value.js, andlibs.op.js: things that can go in table rows. These may be nested (i.e.,add(multiply(2, column('red')), column('blue')) -
libs/summarize.js: summarization operations (such assumandmax). -
libs/transform.js: operations on entire tables. These use expressions, summarizers, and statistical tests. -
libs/pipeline.js: pipelines made up of stages. -
libs/program.js: programs made up of pipelines. -
libs/persist.js: convert serialized JSON to programs, pipelines, stages, and expressions. -
libs/env.js: the runtime environment for a program that stores datasets, records error messages, and so on. -
libs/gui.js: handle interactions with the user. -
blocks/*.js: implementation of blocks.blocks/blocks.js: block initialization and code generation entry point.blocks/helper.js: utilities.
-
index.html: interface page. -
index.js: gathers blocks for bundling to createtidyblocks.min.jsfor testing. -
test/test_*.js: unit tests. -
static/css/*.cssandstatic/sass/*: CSS for the user interface. -
_config.yml: Jekyll configuration file. -
_data/*,_includes/*, and_layouts/*: Jekyll site generation files. -
coverage/*: code coverage data generated bynpm run coverage. -
data/*: built-in datasets. -
docs/*: JSDoc code documentation generated bynpm run docs. -
workspaces/*: small programs to load for interactive testing. -
guide/*: source for user guide (written with Jekyll).