This site contains everything you'll need to know to work on WriteFreely and other A Bunch Tell projects. It's a living document that we'll update over time.
First steps
First, we need to take care of the paperwork:
- Add your address and sign the Consulting Agreement
- Fill out and sign a W-9 form
- Send us those documents
Note: with a signed Consulting Agreement, you do not need to sign the CLA to contribute to WriteFreely, as is required of general contributors.
Now that all the paperwork is taken care of:
- Create a Phabricator account — this is where most of our work will happen.
- Once we approve your account, have a look around. We'll mostly be using the chat (“Conpherence”) and task-tracking features (“Maniphest”).
We'll have a discussion about what your first task should be, based on our product priorities and your interests. Once we've agreed on a task:
- Make sure your development environment is set up (e.g. if you're working on WriteFreely, make sure Go is installed, and you can run the application)
- Check out the
develop branch with git checkout develop
- Create a new feature branch with
git checkout -b my-feature
- Start working on the feature
Read our guide on good Source Control habits. Overall:
As you go along, track your time, make granular commits (where each represents a single chunk of functionality), and write decently descriptive commit messages (ideally, using the imperative present tense). When a commit relates to a specific task, you can include Ref T500 (where 500 is the task number) in the commit message to associate it to that task.
When the functionality is ready for review, open a pull request on the related GitHub repo. Matt and others will look over the code, run it, and give you feedback — requesting any changes, if needed. While a pull request is open, anyone should feel free to test it out and give their input. Then when everything looks good, we'll merge your change.
Code style
We aim for consistency first and foremost. Try to match the code styles (line breaks, indentation, etc.) currently used in the codebase. Where styles are inconsistent, use the one that seems to be most prevalent.
When writing Go, please run go fmt on all files before committing them. The best way to ensure this happens consistently is to use an editor tool that runs this command every time you save the file (for example, vim-go takes care of this, if you're using Vim).
Read more...
Read more...