Thank you for your interest in contributing to Bionode 🎉!
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
- What we're working on
- How to submit changes
- How to report bugs
- Communication channels
This project adheres to a code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to [email protected].
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.
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. 😉
- 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 agit branch
instead offorking
. - Make your changes! You can do this in the GitHub interface on your own local machine. Once you're happy with your changes...
- 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.
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.
Don't be shy! Come talk to us 😃
- Email [email protected]
- Chat room http://gitter.im/bionode/bionode
- IRC #bionode on Freenode
- Twitter @bionode
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 [email protected]: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
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
We use tape with tape-nock for testing. Code coverage is checked with istanbul.