Contributing to Less Wrong

Malo Bourgon edited this page Dec 7, 2015 · 16 revisions

Quick Start

  • Fork the lesswrong repo (with a free GitHub account if you don’t already have one)
  • Make, commit and push your your changes following the existing coding style, design patterns and code organisation.
  • Test all your changes in at least IE7, IE8, Chrome, Safari and Firefox
  • Submit a pull request via GitHub

Introduction

To contribute to Less Wrong you will need to first get an instance of the code up and running so that you can make and test your changes. Follow the instructions on the Hacking on Less Wrong page to do that, with one exception: Instead of just cloning our git repository you should fork it. Follow the instructions that GitHub have on forking a project and contributing your changes back to contribute changes. When you’re ready to submit your changes be sure to have a read of the Pull Requests guide. Note that you should notify wezm and/or dariusp and not the tricycle user.

If you’re new to git and/or GitHub they provide additional guides covering such things as the installation of git and setting up your GitHub account.

Priorities

This is open source, so you get to work on whatever you want to… but we get to choose what to accept into our codebase and onto the site. Our priorities are indicated in the GitHub issues. We’ve labelled as Contributions-Welcome those things we think you wonderful people might want to help us with, and Contributions-LeaveItToUs those things that we’re either working on, or very opinionated about. All contributions are welcome… but if we’re busy with other things our attention will fall more quickly on welcome contributions.

If you choose to work on a particular ticket please make us aware so that we don’t double up. The simplest way to notify us is to comment in the issue.

Testing

Any contributions that are user facing must work in all major browsers. At least the following should be tested:

  • Internet Explorer 7+
  • Current version of Mozilla Firefox
  • Current version of Google Chrome
  • Current version of Apple Safari

There is a manual test script that will step you through some tests of the sites core functionality. Additions to the manual test script are welcomed, especially if you intend to contribute user facing changes. To run the manual test script you will need `ruby` and `rake` installed, then run the following from the top level of the Less Wrong codebase and follow the prompts:

rake test:manual

There are few automated tests in the code at the moment. Any help in adding some for the existing code or any contributed code would be most appreciated. Any contributed tests should be put in the r2/r2/tests/unit directory and should run via nose from the project directory. I.e.

cd lesswrong/r2
nosetests r2/tests/unit

For more details on how to write tests have a read of the testing chaper in the Pylons book.

Coding Style

You should follow the coding style of the existing code.