Skip to content

Latest commit

 

History

History
19 lines (14 loc) · 1.58 KB

File metadata and controls

19 lines (14 loc) · 1.58 KB

How to contribute

We'd love to accept your patches and contributions to this project. There are just a few small guidelines you need to follow.

Code reviews

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.

Codebase Principles

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