I'm happy that you're considering contributing to the project. There is always plenty to do:
- Filing/fixing bugs
- Development of new data structures
- Defining more comprehensive testing suites
- Improving documentation
- Streamlining developer workflow
- Updating examples
I'd like to formally invite you to participate in our Slack channel.
Read through the codebase to get a better feel for our style. Our primary style objective is to produce clear, readable code to facilitate maintenance and new-member adoption. See the full tslint list here. In our view, long lines and verbose variable naming beats concise code any day.
Comment, comment, comment!
We take documentation seriously. In addition to clear, readable code, comprehensive documentation is a must - this
includes ample comments within code, and pertinent markdown files placed in the
docs
directory.
We have a complete, but fairly limited, suite of tests included in the src
directory. New trees (and most new code, in general) should include basic testing to demonstrate correctness. We ask
that you follow the naming convention for testing files. E.g. if testing a file named foo.ts
, your test file should
reside in the same directory with the name foo.spec.ts
.
If adding a system-wide integration test, place the file (again, with the extension .spec.ts
) in the root-level
directory test
.
After documentation and testing, examples provide additional clarity on how to use your code. The
examples
directory hosts files with the extension .demo.ts
to distinguish their purpose from standard source files. These
files are linted, so please use good coding style.
This is your chance to show users how easy your feature is to use!
Please send a GitHub Pull Request to arboriculture with a clear list of what you've done (read more about pull requests).
Always write a clear log message for your commits. Including references to any issues that may be fixed or augmented can also be helpful. One-line messages are fine for small changes, but bigger changes should look like this:
$ git commit -m "Autex"
On behalf of our community, I'd like to thank you for any contributions to the project!
Sincerely, Graham Haley