Nền tảng code của SINGA tuân theo định dạng Google cho cả code CPP và Python.
Một cách đơn giản để thực hiện định dạng lập trình Google là sử dụng linting và các công cụ định dạng trong Visual Studio Code editor:
Sau khi cài extensions, chỉnh sửa tệp tin settings.json
.
{ "[cpp]": { "editor.defaultFormatter": "xaver.clang-format" }, "cpplint.cpplintPath": "path/to/cpplint", "editor.formatOnSave": true, "python.formatting.provider": "yapf", "python.linting.enabled": true, "python.linting.lintOnSave": true, "clang-format.language.cpp.style": "google", "python.formatting.yapfArgs": ["--style", "{based_on_style: google}"] }
Dựa vào nền tảng bạn đang sử dụng. tệp tin user settings được đặt tại đây:
Thông số cấu hình cụ thể có trong các tệp tin config file tuơng ứng. Những công cụ này sẽ tự động tìm kiếm các tập tin cấu hình configuration files trong root của dự án, vd. .pylintrc
.
Tốt nhất là tất cả người tham gia viết mã code sử dụng cùng một phiên bản công cụ định dạng mã code (clang-format 9.0.0 và yapf 0.29.0), để tất cả định dạng mã code sẽ giống nhau dù thuộc về các PRs khác nhau, nhằm tránh tạo conflict trong github pull request.
Trước tiên, cài đặt LLVM 9.0 cung cấp clang-format phiên bản 9.0.0. Trang tải LLVM là:
Trên Ubuntu
sudo apt-get install clang-format-9
Trên Windows. Tải gói pre-built và cài đặt
Sau đó, cài cpplint, pylint và yapf
Ubuntu or OSX:
$ sudo pip install cpplint $ which cpplint /path/to/cpplint $ pip install yapf==0.29.0 $ pip install pylint
Windows: Cài Anaconda cho gói quản lý package management.
$ pip install cpplint $ where cpplint C:/path/to/cpplint.exe $ pip install yapf==0.29.0 $ pip install pylint
PROBLEMS
.Shift+Ctrl+P
cho Windows hay Shift+Command+P
cho OSX) và gõ Format Document
.Bạn cần phải chữa lỗi định dạng nếu có trước khi gửi đi pull requests.
Chúng tôi khuyến khích dùng Visual Studio Code để viết code. Có thể cài các Extensions như Python, C/C++, Code Spell Checker, autoDocstring, vim, Remote Development. Tham khảo cấu hình (vd., settings.json
) của các extensions tại đây.
Nếu bạn cập nhật mã code CPP, bạn cần recompile SINGA từ nguồn. Nên sử dụng các công cụ cài đặt cơ bản trong *-devel
Docker images hay conda build
.
Nếu bạn chỉ cập nhật mã code Python, bạn cần cài đặt SINGAS một lần, sau đó copy các tập tin Python cập nhật để thay thế chúng trong thư mục cài đặt Python,
cp python/singa/xx.py <path to conda>/lib/python3.7/site-packages/singa/
Vui lòng tham khảo mục git workflow.