Skip to content

Latest commit

 

History

History
73 lines (57 loc) · 1.87 KB

CONTRIBUTING.md

File metadata and controls

73 lines (57 loc) · 1.87 KB

Contributing

Contributions are always welcome, no matter how large or small. Before contributing, please read the code of conduct.

Developing

Setup

$ git clone https://github.com/babel/babel
$ cd babel
$ make bootstrap

Then you need to run:

$ make watch-core

This will compile babel and then sit in the background and on file modification recompile the necessary files.

Running tests

You can run tests via:

$ make test

This will usually take around two minutes as it's compiling the entire test262 test suite and validating it's AST. This is mostly overkill and you can limit the tests to a select few by directly running them with mocha:

$ mocha test/transformation.js

Workflow

  • Fork the repository
  • Clone your fork and change directory to it (git clone git@github.com:yourUserName/babel.git && cd babel)
  • Install the project dependencies (make bootstrap)
  • Link your forked clone (npm link)
  • Develop your changes ensuring you're fetching updates from upstream often
  • Ensure the test are passing (make test)
  • Create new pull request explaining your proposed change or reference an issue in your commit message

Code Standards

  • General
    • Max of five arguments for functions
    • Max depth of four nested blocks
    • 2-spaced soft tabs
  • Naming
    • CamelCase all class names
    • camelBack all variable names
  • Spacing
    • Spaces after all keywords
    • Spaces before all left curly braces
  • Comments
    • Use JSDoc-style comments for methods
    • Single-line comments for ambiguous code
  • Quotes
    • Always use double quotes
    • Only use single quotes when the string contains a double quote
  • Declaration
    • No unused variables
    • No pollution of global variables and prototypes