Downstream is actively built and maintained by the Technologies & International Development (T+ID) Lab at Georgia Tech to support the Aggie platform and other research initiatives. Outside contributions are welcome!
Downstream is written in TypeScript, and compiles to Node.js JavaScript.
Node.js 12.9 or higher is required to use Downstream in your project.
Both members of the T+ID Lab and outside contributors should follow the workflow below:
-
Create a fork of the Downstream repo.
-
Install dependencies & development dependencies with
npm install. -
Make changes to your fork of the Downstream repo.
-
Write tests for changes in the
src/folder, if necessary. -
Write documentation in the
docs/folder, if necessary. -
Open a Pull Request between your fork and the
developbranch.
-
Assign yourself as a Reviewer to new Pull Request.
-
Review the PR and request changes as many times as needed.
-
Downstream uses semantic versioning. If the PR is ready, merge it into
develop. Determine whether the changes constitute aPATCH,MINOR, orMAJORversion bump. -
Pull down
developto your local clone (not fork) of the Downstream repo. -
From
develop, run thenpm version <bump>command:- Run
npm version patchforPATCH-level changes. - Run
npm version minorforMINOR-level changes. - Run
npm version majorforMAJOR-level changes.
- Run
The npm version script will check out master; merge the latest changes from develop into master; commit and tag the bumped version; push the tagged commit to the Downstream repo; check out develop once again; rebase develop to master; and finally push rebased develop to the new Downstream repo.
Meanwhile, Travis CI will pick up the new tag pushed to master and publish the latest version of Downstream to NPM for you automatically. Voila! The PR has been successfully merged.
Downstream uses Mocha as a testing framework, and ts-mocha for TypeScript integration.
Run the Mocha tests for Downstream with one command:
npm testNote: Tests for built-in components are disabled by default.
Built-in components rely on external resources such as external APIs that may change or require special access that may eventually be revoked. Contributors should be able to work on the rest of the Downstream repo without having to worry about such problems.
Enable and add to tests for built-in components while working on those components, but make sure to disable them when you are done. If you're an outside contributor working on a built-in component but don't have the API keys to test it, you may request in your Pull Request for the reviewer to run tests on your behalf using their keys.