Contributing to the Runestone Project

We welcome contributions large and small to the Runestone Components. We welcome contributions from newcomers as well as seasoned Runestone hackers. You don’t need to be an expert to make a contribution here. When I started this project I had barely written a line of Javascript, Runestone is a project that is all about helping people learn, if you learn by helping us improve Runestone that is even better!

Getting started

If you are wondering what needs to be done, please check out our issues queue for a good first issue or our Projects page on github. We have a number of projects that are in various stages of completion. If you are interested in working on some aspect of a project just chime in on the issue attached to the task and we will be happy to help you get started. Our developing page can walk you through getting your development environment set up. We are particularly interested in any roadblocks you encounter in getting set up. We want to make it as easy as possible for you to contribute. If you have any questions or problems please don’t hesitate to ask on our Discord or simply create a new issue.

If you are interested in working on a project that is not listed on our projects page, please create an issue describing what you would like to do and we will be happy to discuss it with you.

Code Style and Linting: Getting your PR merged

We use black to reformat all of our python code. Please do so before making a PR. We also use flake8 to check for linting errors. We are working toward having our code use type hints, but not everything is there. New code that you develop should use type hints.

Don’t worry about making the perfect PR. Our philosophy tends to be that if a PR is making something better we will merge it. It doesn’t have to fix everything, and we are happy to coach you if you need it. Small is better than big If you are working on a large feature, please break it up into smaller PRs. It is much easier to review and merge a series of small PRs than one large one. In fact it might even be good to work with us on a large feature so we can add it to our project page and you can get help along the way.

More to come in this section.