a bunch tell // team

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:

  1. Add your address and sign the Consulting Agreement
  2. Fill out and sign a W-9 form
  3. 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:

  1. Create a Phabricator account — this is where most of our work will happen.
  2. 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).

#BestPractices for working with git on Write.as projects.

Read more...

#BestPractices and #GuidingPrinciples for implementing anything in code.

Read more...