此頁面旨在提供關於開發要旨與維護開發人員網站的一些基本背景資訊。
Apache HTTP 伺服器專案使用 Subversion 來架設其原始碼。
查看 2.4.x 分支
svn checkout https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x httpd-2.4.x
查看目前的開發版本 (撰寫本文時為 2.5.x),請使用
svn checkout https://svn.apache.org/repos/asf/httpd/httpd/trunk httpd-trunk
提交者應透過 https (而非 http) 查看,才能提交變更。有關 Subversion 的更多資訊,請參閱 ASF 版本控制常見問題。
開發人員持續致力於為管理員和使用者維護 2.4.1 與未來 2.4 版本之間的模組相容性。
與 Apache 相關的幾乎所有檔案,包括實際原始碼和不屬於發行套件一部分的檔案,現在都維護在 SVN 存放庫中。以下是套用變更的方式
開發人員查看要處理的檔案副本 (在此例中為主要存放區),並將其放入名為 httpd-trunk 的私人工作目錄中
% svn checkout https://svn.apache.org/repos/asf/httpd/httpd/trunk httpd-trunk
這個步驟只需執行一次 (除非私人工作目錄已損毀或刪除)。提交者應在查看時使用 https 的 URL 前置詞,以免日後傷神。
開發人員會讓私人工作目錄與對存放庫做的變更保持同步
% svn update httpd-trunk
在高活動量時間,可能每天甚至更頻繁地進行此操作。
開發人員對工作拷貝進行更動、確保更動正常運作,並產生程式碼修補檔,讓他人套用更動並進行測試。
% svn diff httpd-trunk/modules/http/mod_mime.c > /tmp/foo
/tmp/foo 檔案郵寄至 開發人員清單,以便他們考慮修補檔的價值/有效性。值得確保程式碼遵循 Apache 風格,如 風格指南 中所述。
一旦其他開發人員同意此變更為好事一樁,則開發人員會將變更回存至儲存庫中。
% svn commit httpd-trunk/modules/http/mod_mime.c
Apache SVN 儲存庫中的 httpd 子樹底下有許多不同分支,指涉不同的版本。可透過 SVN ViewCVS 頁面瀏覽頂層。與 httpd 伺服器來源相關的主要子樹包括:
若要建立包含 2.4 來源的目錄樹,並將其命名為 httpd-2.4,請變更目前目錄為該樹的父目錄,然後依下列指示回存 2.4 來源:
% cd /usr/local/apache
% svn checkout https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x httpd-2.4
如果你想要回存最新開發進度,也就是 httpd-2.5 開發樹(預計為 2.6 版本),並將其命名為 httpd-trunk,請依照下列指示進行回存:
% cd /usr/local/apache
% svn checkout https://svn.apache.org/repos/asf/httpd/httpd/trunk httpd-trunk
網站曾寄放於 https://svn.apache.org/repos/asf/httpd/site/。
現在寄放於 GitHub 上的 https://github.com/apache/httpd-site/。
網站頁面使用 Markdown 語法,且在此儲存庫中提交變更時,對應的 HTML 檔案會自動產生並複製到 https://apache-httpd.dev.org.tw/。
與 httpd-site 子樹類似,此子樹用於維護組成網站的檔案,在此情況中為 https://downloads.apache.org/httpd/。也與上一個子樹類似,伺服器上的目錄是此子樹的已回存工作拷貝。但因為這是一個發行目錄,我們只將文件和控制檔回存至此子樹中,而實際的 Tar 檔則直接複製到 www.apache.org 中。
SVN 網址為 https://svn.apache.org/repos/asf/httpd/httpd/dist。
release.sh 。有關滾動發布的政策和程序,可以在 發布指南 頁面找到更多資訊。
可以在 這裡 找到 SVN 提交者權限入門的簡要概述。一個重要的變更要注意的是,由於 SVN 的功能差異,因此不再使用 SSH 來供提交者存取。
我們的專案由 GitHub 以唯讀方式鏡像,使用者貢獻者偶爾會在 GitHub 開啟協力要求。我們無法直接接受/關閉協力要求,但我們可以評論/檢閱,然後提交修補程式。提交訊息可以包含片語「this closes #X」,其中 X 是協力要求編號,會在介面中顯著顯示。
關閉協力要求的範例修訂為 https://svn.apache.org/viewvc?view=revision&revision=1780308
使用 GitHub Actions CI 服務。
此服務可讓我們在不同的處理器、OS、不同的 gcc 版本、不同的函式庫版本和不同的組態中自動建置 httpd。建置成功後,我們的 Perl 測試架構 也會自動執行。
所有這些都針對每個提交執行。
目標是及早發現新的建置問題和回歸。
如果提交者想要提交某個項目,而不觸發整個程序(例如修改文件或狀態更新),他可以在提交訊息中新增關鍵字 "[skip ci]"。
以下是 最新的建置結果。