貢獻 Selenium 網站及文件
Selenium 是一個大型軟體專案,其網站和文件是理解其運作方式以及學習有效利用其潛力的關鍵。
這個專案包含 Selenium 的網站和文件。這是一個持續進行的努力(不針對任何特定版本),旨在提供關於如何有效使用 Selenium、如何參與以及如何貢獻 Selenium 的最新資訊。
對於網站和文件的貢獻,請遵循以下貢獻章節中描述的流程。
Selenium 專案歡迎所有人的貢獻。您可以透過多種方式提供協助。
回報問題
在回報新問題或評論現有問題時,請確保討論內容與 Selenium 軟體、其網站和/或文件的具體技術問題相關。
所有 Selenium 組件都隨著時間快速變更,因此可能會導致文件過時。如果您發現這種情況,如前所述,請隨時為此建立問題。您也可能知道如何更新文件,因此請向我們發送包含相關變更的 pull request。
如果您不確定您發現的是否為問題,請透過 https://selenium.dev.org.tw/support 中描述的溝通管道詢問。
如何提供協助
建立範例
需要移動的範例標記為
我們希望能夠在 CI 中執行我們所有的程式碼範例,以確保人們可以複製貼上並執行網站上的所有內容。因此,我們將程式碼放在 examples 目錄中它所屬的位置。文件中的每個頁面都對應到每種語言中的一個測試檔案,並且應該遵循命名慣例。例如,此頁面 https://selenium.dev.org.tw/documentation/webdriver/browsers/chrome/ 的範例會新增到這些檔案中
"/examples/java/src/test/java/dev/selenium/browsers/ChromeTest.java"
"/examples/python/tests/browsers/test_chrome.py"
"/examples/dotnet/SeleniumDocs/Browsers/ChromeTest.cs"
"/examples/ruby/spec/browsers/chrome_spec.rb"
"/examples/javascript/test/browser/chromeSpecificCaps.spec.js"
每個範例都應該有自己的測試。理想情況下,每個測試都應該有一個斷言來驗證程式碼是否按預期運作。一旦程式碼被複製到正確檔案中的自身測試中,就需要 references 在 markdown 檔案中。
例如,Ruby 中的標籤會像這樣
{{< tab header="Ruby" >}}
{{< gh-codeblock path="/examples/ruby/spec/browsers/chrome_spec.rb#L8-L9" >}}
{{< /tab >}}
行號在末尾僅代表實際表示所顯示項目的程式碼行。如果使用者想要更多上下文,他們可以點擊 GitHub 頁面的連結,該連結將顯示完整的上下文。
確保如果您在頁面中新增測試,markdown 檔案中的所有其他行號仍然正確。在頁面頂端新增測試意味著更新文件中針對該檔案的所有帶有行號的參考。
最後,確保測試在 CI 中通過。
移動範例
需要移動的範例標記為
「建立範例」章節中的所有內容都適用,但有一個新增事項。
確保標籤包含 text=true
。預設情況下,標籤會格式化為程式碼,因此要使用 markdown 或其他 shortcode 陳述式(如 gh-codeblock
),需要將其宣告為 text。對於大多數範例,tabpane
會宣告 text=true
,但如果某些標籤有程式碼範例,則 tabpane
無法指定它,並且必須在不需要自動程式碼格式化的標籤中指定它。
貢獻機制
Selenium 專案歡迎新的貢獻者。隨著時間推移做出重大且有價值的貢獻的個人將被任命為 Committers,並獲得專案的 commit 權限。
本指南將引導您完成貢獻流程。
步驟 1:Fork
在 GitHub 上 Fork 專案,並在本機檢出您的副本。
% git clone git@github.com:seleniumhq/seleniumhq.github.io.git
% cd seleniumhq.github.io
依賴項目:Hugo
我們使用 Hugo 和 Docsy 主題來建置和呈現網站。您需要 Hugo 二進制檔案的「extended」Sass/SCSS 版本才能在這個網站上工作。我們建議使用 Hugo 0.125.4。
請按照 Docsy 的 「Install Hugo」說明進行操作。
步驟 2:Branch
建立功能分支並開始 hacking
% git checkout -b my-feature-branch
我們實行基於 HEAD 的開發,這意味著所有變更都直接應用於 dev
之上。
步驟 3:進行變更
儲存庫包含網站和文件。若要變更網站,請在 website_and_docs
目錄下工作。若要查看變更的即時預覽,請在網站的根目錄執行 hugo server
。
% cd website_and_docs
% hugo server
專案從 GitHub 加載程式碼,如果該程式碼已更新,並且沒有反映在您的預覽中,您可以執行不使用快取的 hugo:hugo server --ignoreCache
請參閱 「風格指南」以獲取關於我們貢獻慣例的更多資訊
步驟 4:Commit
首先,請確保 git 知道您的姓名和電子郵件地址
% git config --global user.name 'Santa Claus'
% git config --global user.email 'santa@example.com'
編寫良好的 commit 訊息非常重要。 commit 訊息應描述變更了什麼、原因,並參考已修復的問題(如果有的話)。編寫時請遵循以下指南
- 第一行應約為 50 個字元或更少,並包含變更的簡短描述。
- 第二行留空。
- 將所有其他行換行在 72 個欄位。
- 包含
Fixes #N
,其中 N 是 commit 修復的問題編號(如果有的話)。
一個好的 commit 訊息可能如下所示
explain commit normatively in one line
Body of commit message is a few lines of text, explaining things
in more detail, possibly giving some background about the issue
being fixed, etc.
The body of the commit message can be several paragraphs, and
please do proper word-wrap and keep columns shorter than about
72 characters or so. That way `git log` will show things
nicely even when it is indented.
Fixes #141
第一行必須有意義,因為這是人們在執行 git shortlog
或 git log --oneline
時看到的內容。
步驟 5:Rebase
不時使用 git rebase
(而非 git merge
)來同步您的工作。
% git fetch origin
% git rebase origin/trunk
步驟 6:測試
始終記得執行本機伺服器,這樣您可以確保您的變更沒有破壞任何東西。
步驟 7:Push
% git push origin my-feature-branch
前往 https://github.com/yourusername/seleniumhq.github.io.git 並按下「Pull Request」並填寫表單。請註明您已簽署 CLA(請參閱步驟 7)。
Pull request 通常會在幾天內審查完成。如果有需要處理的評論,請在新 commit 中應用您的變更(最好是 fixups)並 push 到同一個分支。
步驟 8:整合
當程式碼審查完成時,committer 將會取得您的 PR 並將其整合到儲存庫的 trunk 分支上。因為我們希望在 trunk 分支上保持線性歷史記錄,所以我們通常會 squash 和 rebase 您的分支歷史記錄。
溝通
關於如何與專案貢獻者和整個社群溝通的所有詳細資訊,請參閱 https://selenium.dev.org.tw/support