Thanks for considering contributing to Avalon. This document describes where and how to contribute. If you are new to Avalon, please first read the documentation available at Read The Docs.
When submitting your patch, please make sure to avoid rude, offensive and/or hate-inciting language. This is applicable to your comments in the code, commits and issues.
We seek to form a diverse and inclusive community and people who are seeking to contribute come from all backgrounds and we cannot assume them to know everything that seem familiar to us.
Any behavior that make anyone feel unwelcome will result in an immediate banned from the community after exactly one warning, no more and no less. All infractions will be publicly recorded for future reference before the ban.
The language is designed under the mantra of no case is special enough to merit exceptional treatement and the same mantra will be applied to every contributor: you are not special enough to warrant special treatement that drives others away.
The documentation provides tutorials and the language reference and is a good place to start if you want to learn Avalon.
As the language is still in version 0.0.1, feel free to file any issue that you feel will help improve the language. This includes but not limited to: bug reports, feature requests and documentation clarification and expansion.
Before contributing, please make sure to have all items on the contributor checklist ticked.
-
You must have a Github account. If you don't, please create one using Github sign up.
-
Install the compiler. Instructions are available at Installing Avalon.
-
Make sure you know Git.
-
Start hacking.
-
Send the maintainer (Ntwali Bashige) an email at [email protected] with a description of your contribution. This step is important because before merging your contribution, I might have a discussion with you regarding your patch.
-
Send a pull request.
The original author (Ntwali Bashige) is not skilled with C++ therefore, contributing code is easy to improve performance or fix bugs.
Please keep your patch small. Huge patches that try to fix too many things will be rejected. You can fix a lot of things if they are all similar.
For instance, at the moment, I am catching exceptions by value instead of by const reference. Submitting a patch that solves this is acceptable because there is no logic is there to understand.
The documentation is always update and ripe for contribution to fix typography mistakes, grammatical errors and clarifying concepts.
Test, test and test. We can't have enough of those. Even one single test that demonstrates a specific corner case is always welcome.
-
Use 4 spaces (never tabs) to ident code.
-
Use whitespace for readability.
-
User underscore_case for C++ identifiers.
-
Follow the Avalon documentation style guide for Avalon code to feature in the SDK.
-
Stick to ASCII characters in the source and avoid Unicode characters.
-
Do not work on the master branch. Create a branch with your Github name and work from the same.
-
Use descriptive messages so that your commits make sense and match our email exchange.
This document will continue to be updated as the language evolve and more people contribute. I repeat again: be civil in all your exchanges with the community.