View Source Contributing

Before contributing, please read carefully our Code of Conduct and the following contribution guidelines.

Please, also make sure to understand the Apache-2.0 license and the Developer Certificate of Origin.

Last but not least, do not use GitHub issues for vulnerability reports, read instead the security policy for instructions.

Coding Style

C Code

Identation

Good:

void f(int reverse)
{
    if (reverse) {
        puts("!dlroW olleH");
    } else {
        puts("Hello world");
    }
}

Bad:

void f(int reverse) {
    if (reverse)
        puts ("!dlroW olleH");
    else
        puts ("Hello world");
}

Names

  • Struct names are PascalCase (e.g. Context)
  • Scalar types are lower case (e.g. term)
  • All other names (e.g. functions and variables) are snake_case (e.g. term_is_integer)
  • Always prefix function names (e.g. term_is_nil, term_is_integer, context_new, context_destroy)

Other Coding Conventions

  • Pointer should be with the variable name rather than with the type (e.g. `char name, notchar* name`)
  • Avoid long lines, use intermediate variables with meaningful names.

Elixir Code

Just use Elixir formatter enforced style.