# Ways to contribute¶

Thank you for considering contributing to lab.js! We’re thrilled to have you around. This page summarizes a few of the many different ways in which you can help.

We would like to stress at this point that contributions can take may forms, and often don’t require writing code – maybe something could be documented more clearly, maybe a feature could be more helpful, a design more inviting. Help is welcome in any of these areas!

If you’re searching for a place to contribute, please do let us know: There’s always things to do, and we’d be glad to help you find something that fits your interests and resources. If you’re writing a tool that might interoperate with this one, we’re more than happy to link things up; if you’re looking to extend or build on this project, we’d be proud to provide a stepping stone for you!

## Report bugs or suggest improvements¶

Notice something amiss, or some room for improvement? You’re already helping by letting us know — we’d love to hear from you, and try to make things work for everyone. We track bugs and tasks using GitHub issues. Here are some steps you can take to help us fix things and help you quickly and more effectively:

Before submitting an issue

• Please take a quick look whether the problem or idea has been reported already (there’s a list of open issues). You can try the search function with some related terms for a cursory check. If you do find a previous report, please add a comment there instead of opening a new issue. If you’re unsure, we’d be glad to help!

Submitting a (great) bug report

• Pick a descriptive title that clearly identifies the issue.
• Describe the steps that led to the problem so that we can go through the same sequence. Does the problem reoccur when you go through the same steps once more? Is it specific to a particular browser? Can you share the study in which the error occurs? It is a massive help if you can provide us all the information needed to recreate the problem.
• Briefly describe what you had expected and how that differed from what happened, and possibly, why.

Making a suggestion

• Summarize your idea with a clear title.
• Describe your suggestion in as much detail as possible. How would it change the usage of the software?
• Explain how the suggestion would be useful to most users.

Note

This software was built to make our own research easier, and we’re always eager to make it more useful. If there’s an annoyance we can fix easily, we’re always glad to do so!

## Share studies¶

A great way to support fellow researchers is to share your studies. We maintain a set of example studies that can serve as a starting point for other scientists, and we’re continuously collecting more.

• If you have a study you’d like to contribute, we’re all ears! It needn’t be perfect by any means (though we’d be glad to make it so).
• We’re also always looking for ideas for studies that are missing from the collection, so if you would like to see a study for your research or teaching, let us know! It’s easiest to work from a published study, so any references you can provide are hugely helpful.

Tip

If you’re constructing a study you would be willing to contribute to the examples, we’ll help you build it if we can. We’re careful with promises, but because it makes us really happy to help you out and other users too, we’ll do our best to help you build polish the study. Do reach out!

## Contribute code and/or documentation¶

Wow, thank you for considering making a contribution to the code or documentation! You have won a special place in our heart already [1]. As an open project, we welcome contributions from everybody, and we will gladly help you make yours.

If you’re looking for a way to get started, you might find a task that interests and suits you, or an inspiration, in our collection of good first bugs or the list of upcoming milestones. We would be happy, though, to help you find something that works for you.

Note

We would like to encourage you to reach out before you start working: Between our contributors, we have a lot of ideas and code lying around, and might be able to give you a head start. If you are are planning to add significant amounts of additional functionality, we might ask you to build an external add-on or a plugin first before including your code in lab.js itself. In any case, we would be thrilled to help you get started!

If you are familiar with Git and GitHub, please feel free to fork the repository and submit pull requests; otherwise, your contributions are welcome in any shape or form. If you would like to learn to use GitHub, a nice way to get started is the course How to Contribute to an Open Source Project on GitHub by Kent C. Dodds.

We would like contributions to conform to the Developer Certificate of Origin to make sure that the licensing works out. We encourage contributors to ‘sign off’ patches as the Linux kernel developers do. If you’re not familiar with the process, please don’t let that stop you; we’ll gladly walk you through the process when you submit a change.

 [1] Since you’ve gotten this far, would you mind if we included you in our worldwide swag distribution scheme? Seriously, do ping us, sending a few stickers your way is the absolute least we can do.