貢獻代碼

如何做出貢獻?

  • 作貢獻並不一定意味着添加代碼。您可以 提出問題參與討論提出功能建議 ,這些都是有價值的貢獻。我也非常希望你分享使用qteasy創建的交易策略,或實現的好想法。當然,爲qteasy編寫代碼也是一種很好的貢獻方式。對任何貢獻,我在此都深表謝意。

  • 您可以參閱所有的開源軟件貢獻指南(例如,開源指南)。因此,我僅提到一些我在qteasy中可能特別關注的事項。


報告問題

  • 在提交問題報告時,請提供清晰的問題描述和您的工作環境資訊。您可以使用bug提交模板以便在您的描述中包括以下部分:

    • 你期望看到的結果:描述你在遇到問題時想要實現的目標或期望看到的結果

    • 具體代碼:提供你認爲可以得到期望結果的代碼

    • 實際結果:描述你實際得到的結果,包括錯誤資訊

    • 工作環境:告訴我你的機器、操作系統和依賴包的版本

    • 系統配置:列印出你的qteasy配置和本地數據源概覽

    • 重現方法:儘量提供可以讓我重現問題的例子,以便找出問題的根本原因


提供示例和改進文檔

  • 我尤其希望並感謝您幫助我提供更多的使用示例、或幫助我改進項目文檔,例如:

    • 編寫示例交易策略

    • 分享批處理代碼片段

    • 分享可視化圖表

    • 糾正文檔中的錯誤

  • 請按照下面的Fork/Clone/Pull Request工作流程提供您的貢獻,我會盡快給予反饋。


分支/克隆/合併請求工作流程

  • GitHub上的標準貢獻工作流程稱爲Fork/Clone (分支/克隆)。對於那些可能不熟悉的人,這裏是一個簡要的總結和一些參考鏈接。

    • 我們假設您熟悉git的基礎知識:git clonegit commit

  • 注意:一個“Fork(分支)”只是一個在GitHub上創建的git clone,它保存在GitHub上您自己的賬戶中。您可以使用GitHub上的Fork按鈕創建一個Fork:這樣GitHub就可以跟蹤原始github存儲庫和您的Fork之間的關係。

  • 基本工作流程如下:

    1. 創建一個Fork(分支),這個分支將存在於您的github賬戶中。

    2. 將您的Fork分支克隆到本地機器上(git clone)。

    3. 修改您本地的代碼,用git commit提交更改,然後將更改**git push**到您的GitHub Fork中。

    4. 當您對Fork中的代碼滿意時,在您的Fork的GitHub頁面上,打開一個Pull Request (PR)。Pull Request實際上是請求將您Fork中的更改合併到主qteasy存儲庫中。PR提供了一個地方,可以在GitHub上查看更改,併發布關於它們的評論和討論。

    5. 經過代碼審查後,如果維護者要求您進行額外的更改,您不需要重新提交另一個Pull Request(只要原始PR仍然是打開狀態)。相反,您可以在本地克隆中進行更改,然後再次git push到您的Fork中。更改將自動流入打開的Pull Request中。

    6. 完成上述步驟後,qteasy的維護者將從您的Fork中合併更改到qteasy存儲庫中。PR將自動關閉。(但是您的Fork將繼續存在,並且可以在將來再次用於其他Pull Request;請參閱GitHub文檔,瞭解如何保持您的Fork最新)。

  • 一些參考資料:

  • GitHub文檔:

    • https://docs.github.com/en/get-started/quickstart/contributing-to-projects

  • 一些用戶的gists:

    • https://gist.github.com/Chaser324/ce0505fbed06b947d962

    • https://gist.github.com/rjdmoore/ed014fba0ee2c7e75060ccd01b726cb8


編碼規範

  • 我並不非常嚴格地要求遵守PEP-8的每一條規則,但也不是完全放任不管。我傾向於走中間道路:只要是大家普遍遵守的規範和常見的編碼習慣,我都可以接受。

  • 以下是我可能會特別關心的一些事項:

    • 如果您編寫代碼,請不要使用製表符進行縮進,使用4個空格。

    • 如果您編寫代碼,請始終提供清晰簡潔的註釋,解釋代碼的作用。這對於功能不太明顯的代碼尤爲重要。

    • 如果您添加了一個重要的功能(即,需要解釋其用法的功能不僅僅是幾句話),請爲該功能創建一個“功能教程”。有關功能教程的示例,請參見示例文件夾中的文件

    • 如果您添加了一個重要的功能,請在**tests文件夾**中創建一個迴歸測試文件,類似於那裏的其他迴歸測試文件。通常,最簡單的方法是從該功能的“功能教程”中選取一些示例(參見上一點)。

    • 如果您要修改一個已有的代碼文件,請儘量模仿該文件中已有的代碼風格。