We'd love to accept your patches and contributions to this project. There are just a few small guidelines you need to follow.
All submissions, including submissions by project members, require review. We use GitHub pull requests for this purpose. Consult GitHub Help for more information on using pull requests.
All contributions should follow the general principles for this repository:
- Modularization of languages: each language is contained to language-specific directory and test directory.
- Thoughtful Design of GAST: Any changes or additions to the GAST will impact every step of the translations in all languages. Therefore it is crucial that all GAST design choices are justified and examples are given. Follow the same structure as Language Feature Generic AST Design and GAST Examples Doc.
- Google style guide: we use yapf to adhere to the google style guide for each PR. Once you have installed yapf locally (see prerequisites) run
yapf -ir --verbose --style "google" .from the root directory to auto-format. - Tests: any new language features should be tested extensively in the following 3 ways: code to gast, gast to code, integration (code to code). All tests must pass before merging any PR's