貢獻?

謝謝你的關心!Sanic一直在尋找貢獻者。如果您不喜歡貢獻代碼,那么將docstring添加到源文件中是非常值得贊賞的。

我們致力于為所有人提供一個友好、安全和友好的環境,無論性別、性取向、殘疾、種族、宗教或類似的個人特征如何。我們的 code of conduct 設定行為標準。

安裝?

為了在SANIC上開發(主要是為了運行測試),強烈建議從源代碼安裝。

因此,假設您已經克隆了repo,并且在已設置虛擬環境的工作目錄中,然后運行:

pip3 install -e . ".[dev]"

依賴關系更改?

Sanic 不使用 requirements*.txt 用于管理與之相關的任何依賴項的文件,以簡化管理依賴項所需的工作。請確保您已閱讀并理解文檔中解釋此方法的以下部分 sanic 管理中的依賴項 setup.py 文件。

相關性類型

使用

安裝

要求

SANIC運行所需的最小裸依賴項

pip3 install -e .

測試要求/附加要求 [“測試”]

運行單元測試所需的依賴項 sanic

pip3 install -e '.[test]'

extras_require['dev']

增加貢獻的額外開發需求

pip3 install -e '.[dev]'

extras_require['docs']

建立和增強SANIC文檔所需的依賴性

pip3 install -e '.[docs]'

運行所有測試?

為了運行Sanic的測試,建議使用如下毒素:

tox

就這么簡單!

tox.ini 包含不同的環境。跑步 tox 如果沒有任何參數,將運行所有unittests、執行lint和其他檢查。

運行單元測試?

tox environment -> [testenv]

要僅執行unittests,請運行 tox 在這樣的環境下:

tox -e py36 -v -- tests/test_config.py
# or
tox -e py37 -v -- tests/test_config.py

運行絨布檢查?

tox environment -> [testenv:lint]

排列 flake8 , blackisort 檢查。

tox -e lint

進行其他檢查?

tox environment -> [testenv:check]

執行其他檢查。

tox -e check

運行靜態分析?

tox environment -> [testenv:security]

執行靜態分析安全掃描

tox -e security

運行文檔健全性檢查?

tox environment -> [testenv:docs]

對文檔執行健全檢查

tox -e docs

代碼風格?

為了保持代碼的一致性,Sanic使用了以下工具。

  1. isort

  2. black

  3. flake8

伊索爾特?

isort 對Python導入進行排序。它將導入按字母順序分為三類。

  1. 內置

  2. 第三方

  3. 特定項目

黑色?

black 是一個Python代碼格式化程序。

薄片8?

flake8 是一個Python風格的指南,它將以下工具打包為一個工具。

  1. PyFlakes

  2. pycodestyle格式

  3. Ned Batchelder的McCabe腳本

isort , blackflake8 檢查在 tox 皮棉支票。

參考 tox 有關詳細信息的文檔。

拉動請求?

所以拉請求審批規則非常簡單:

  1. 所有請求都必須具有與其關聯的更改日志詳細信息。

  2. 所有請求都必須通過單元測試。

  3. 所有請求都必須由項目上至少一個當前協作者審閱和批準。

  4. 所有請求都必須通過flake8檢查。

  5. 所有請求都必須與現有代碼一致。

  6. 如果決定從任何公共接口中刪除/更改任何內容,則應附帶一條取消預測消息。

  7. 如果您實現了一個新特性,您應該至少有一個單元測試伴隨它。

  8. 示例必須是以下之一:

    • 如何使用Sanic的示例

    • 如何使用Sanic擴展的示例

    • 如何使用Sanic和異步庫的示例

Changelog?

當您修復/貢獻某些內容到 sanic 社區。這將使我們能夠在發布期間生成更好的、定義良好的更改日志,這可以極大地幫助社區用戶。

注解

簡單說明公關的細節

詳細描述公關的內容以及正在進行的更改或增強。這里不需要包含示例或任何其他細節。但是,在這里提供足夠的上下文以讓用戶理解這一更改的全部內容以及為什么將其引入 sanic 代碼庫。

確保在第一行后留有行間距,以確保文檔呈現干凈

貢獻類型

更改日志文件名格式

變更日志文件位置

特征

<git_issue>.feature.rst

changelogs

錯誤修正

<git_issue>.bugfix.rst

changelogs

改進的文檔

<git_issue>.doc.rst

changelogs

折舊和清除

<git_issue>.removal.rst

changelogs

其他內部變更

<git_issue>.misc.rst

changelogs

文檔?

Sanic的文檔是使用 sphinx . 指南以降價形式書寫,可在 docs 文件夾,而模塊引用是使用 sphinx-apidoc .

要從頭生成文檔:

sphinx-apidoc -fo docs/_api/ sanic
sphinx-build -b html docs docs/_build

# There is a simple make command provided to ease the work required in generating
# the documentation
make docs

HTML文檔將在 docs/_build 文件夾。

警告

Sanic的主要目標之一是速度。在可用性、安全性或特性方面沒有顯著提高的情況下降低Sanic性能的代碼可能不會合并。請不要讓這嚇到你!如果您對某個想法有任何顧慮,請打開一個問題進行討論并提供幫助。