We're stoked that you would like to contribute to Tree-Buf! Please refer to the following guidelines before getting started.
Until Tree-Buf matures care must be taken to ensure that changes are directed toward Tree-Buf's short-term goals. It may be best to open an issue before submitting a PR to sync up on whether a change is a good idea right now before the format is stabilized.
For example, porting Tree-Buf to a second language would not be a good investment of time because until the format is stabilized it will be difficult to keep multiple implementations in sync.
When maturity is reached it is expected that a broader range of contributions will be welcome.
All performance improvements must be accompanied by benchmarks using real-world data sets. A separate repository will be used for storing benchmarks (coming soon)
All bugfixes must be accompanied by a test case which failed before the bugfix and passes with the bugfix.
Unsafe code is allowed, especially for performance reasons. It must be sound. If I'm not completely convinced of it's soundness, it will be assumed to be unsound.
All code in this repository is under the MIT license.