Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
103 lines (69 sloc) 5.75 KB

Contributing to Bionode

Thank you for your interest in contributing to Bionode and joining us 🎉!

Bionode is an Open Source community that aims at building highly reusable code and tools for bioinformatics by leveraging the Node.JS ecosystem. We use Node.JS Streams to process big genomic data.

We welcome all kinds of contributions at all levels of experience, either code, knowledge, questions or suggestions. Many of our goals and GitHub issues do not require biology knowledge (e.g. very technical, coding) and some don't even require JavaScript knowledge (e.g. events, community, documentation).

This document has a set of guidelines for contributing to Bionode on GitHub. These are guidelines, not rules. This guide is meant to make it easier for you to get involved.

Participation guidelines

This project adheres to a code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to mail@bionode.io.

What we're working on

Take a look at the GitHub issues in our organisation wide project board at project.bionode.io. Here's what each column means:

  • Backlog All the issues we have open (sorted by most recent). You'll find a lot in here and maybe something you could help us with.
  • Next What we want to work on next! Picking something to solve here would be greatly appreciated!!
  • In Progress Things we are currently working on, come help us! The person assigned to each issue is the one in charge and who you can ask any question.
  • Done Solved issues (sorted by closed date). Here you can check what we've been up to in the past.

If you want to have a view of where all of this is going in the long run, check out our Roadmap issue, where we discuss our vision.

How to submit changes

Each bionode tool and library has its own repository (like a folder). Once you've identified one of the issues above that you feel you can contribute to, you're ready to make a change to the repository of that issue! However, it's always a good idea to talk to us first. Specially if you intend to take on something big, just to make sure we're on the same track. 😉

  1. Fork the repository that the issue belongs to. This makes your own version of the tool/library that you can edit and use. If you were invited to the Bionode organisation on GitHub, you can just git clone the repo and use a git branch instead of forking.
  2. Make your changes! You can do this in the GitHub interface on your own local machine. Once you're happy with your changes...
  3. Submit a pull request. This opens a discussion around your project and lets the project lead know you are proposing changes.

First time contributing to open source? Check out this free series, How to Contribute to an Open Source Project on GitHub.

How to report bugs

Any general Bionode bug or question should be reported on the issue tracker of bionode/bionode. Anything that is specific to one of the tools, e.g. bionode-ncbi, should be reported under that tool issue tracker.

Communication channels

Don't be shy! Come talk to us 😃

Node.JS specific commands

If you're new to Node.JS we highly recommend checking the NodeSchool workshop that you can install and run in your command line. Example:

npm install -g learnyounode
learnyounode

To install a local version of a bionode tool that you are modifying (e.g. bionode-ncbi):

git clone git@github.com:bionode/bionode-ncbi.git
cd bionode-ncbi
npm install # Install all dependencies defined in the package.json file
npm link # Setup bionode-ncbi in your PATH to point to this local version

You can now modify the code in the bionode-ncbi folder and test the effect of those changes when you run the bionode-ncbi command in your terminal.

To run a bionode tool suite of tests and check their code coverage, you can do:

npm test
npm run coverage

To rebuild and minify a bionode module for the browser (if supported) do:

npm run build-browser

To rebuild the documentation using the comments in the code do:

npm run build-docs

Style guide

We currently recommend using the JavaScript Standard Style to check your code. You can run it in the folder you're working (see below) and install it as an extension for your text editor (e.g. Atom or Visual Studio Code).

npm install -g standard
standard

Testing

We use tape with tape-nock for testing. Code coverage is checked with istanbul.