Skip to content

Latest commit

 

History

History
75 lines (62 loc) · 2.28 KB

CONTRIBUTING.md

File metadata and controls

75 lines (62 loc) · 2.28 KB

This project was generated by the dash-component-boilerplate it contains the minimal set of code required to create your own custom Dash component.

CONTRIBUTING

Thank you for your interest in contributing to Dash JBrowse. This short guide will help you get started.

Quick start

git clone https://github.com/GMOD/dash_jbrowse
cd dash_jbrowse
yarn
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -r tests/requirements.txt #optional testing
python usage.py

Visit http://localhost:8050 in your web browser

This will start a flask server with a configured dash_jbrowse component. Check out our README for documentation.

Install dependencies

  1. Install npm packages

    $ npm install
    
  2. Create a virtual env and activate (you can also use conda).

    $ python3 -m venv venv
    $ source venv/bin/activate
    
  3. Install python packages required to build components.

    $ pip install -r requirements.txt
    $ pip install -r tests/requirements.txt #optional testing
    

Write your component code in src/.

  • The demo app is in src/demo and you will import your example component code into your demo app.
  • Test your code in a Python environment:
    1. Build your code
      $ npm run build
      
    2. Run and modify the usage.py sample dash app:
      $ python usage.py
      
  • Write tests for your component.
    • A sample test is available in tests/test_usage.py, it will load usage.py and you can then automate interactions with selenium.
    • Run the tests with $ pytest tests.
    • The Dash team uses these types of integration tests extensively. Browse the Dash component code on GitHub for more examples of testing (e.g. https://github.com/plotly/dash-core-components)
  • Add custom styles to your component by putting your custom CSS files into your distribution folder (dash_jbrowse).
    • Make sure that they are referenced in MANIFEST.in so that they get properly included when you're ready to publish your component.
    • Make sure the stylesheets are added to the _css_dist dict in dash_jbrowse/__init__.py so dash will serve them automatically when the component suite is requested.