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.html
to see it. -
npm run watch
: regenerate and reloaddist/tidyblocks.js
whenever files change. -
npm run coverage
: run tests and report code coverage (opencoverage/index.html
to see results). -
npm run data
: create loadable JSON file for each CSV file in./data
. (These files must be loaded in./libs/gui.js
to be accessible.) -
npm run docs
: regenerate code documentation (opendocs/index.html
to 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 assum
andmax
). -
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.js
for testing. -
test/test_*.js
: unit tests. -
static/css/*.css
andstatic/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).