Skip to main content

Contributing

TreeSpider is still a work-in-progress and I am planning to make it better that it currently is, and your contribution is highly appreciated, and if you need a feature or want to add a tree type, a new chart head, a new link type or any other things you are welcome to contribute them, or if you noticed a bug you're welcome to create a pull request, your contributions are appreciated.

Codebase short intro

TreeSpider is fully built with D3 and object oriented TypeScript, and it also uses rollup as the bundler, the source code is under the src directory and the output bundle is in the dist directory.

Technologies used

The following are the technologies used

  • D3.js
  • TypeScript
  • SCSS
  • rollup
  • babel
  • jest

Getting started

To get started to contribute, in a convenient directory on your computer, open the terminal and clone the TreeSpider github repository, then run npm i to install all the dev dependencies, then install sass globally with npm i -g sass.

Starting the project

To start the project, in the package.json file check the list of commands under the scripts property for all the commands needed for development and bundling, to start rollup bundler in watch-mode for development run

npm run rollup-watch

Next, start the sass css compiler in watch mode by running

npm run sass

Then you are good to go and to start making changes, the single scss file is under the /scss directory.

Testing

After development, testing is neccessary, to test you can either add some test cases to the already created test files under the /__test__ directory or create new test files, after creating the tests or if no tests were added, run

npm run test

If all tests passed, then you can create a pull request, no need for bundling as it will be bundled with GitHub Actions after it has been merged.