Contributing Guide¶
License¶
The source file should contain a license header. See the existing files as the example.
Name style¶
All name in python and cpp using snake case style, except for op
for Tensorflow
.
For Golang, using Camel-Case for variable name
and interface
.
Python style¶
Changes to Python code should conform the Chromium Python Style Guide.You can use yapf to check the style.
The style configuration is .style.yapf
.
C++ style¶
Changes to C++ code should conform to Google C++ Style Guide.
You can use cpplint to check the style and use clang-format to format the code.The style configuration is .clang-format
.
C++ macro¶
C++ macros should start with ATHENA_
, except for most common ones like LOG
and VLOG
.
Golang style¶
For Golang styple, please see docs below:
Before commit golang code, plase using go fmt
and go vec
to format and lint code.
Logging guideline¶
For python
using abseil-py, more info.
For C++ using abseil-cpp, more info.
For Golang using glog.
Unit test¶
For python
using tf.test.TestCase
For C++ using googletest
For Golang using go test
for unittest.