# 網站
從技術角度上看,對于設置項目網站沒有可以多說的:設置網站服務器并編寫網頁都是相當簡單的任務,大多數需要說的重要事情如布局和安排已經在前面的章節提過。網站的主要功能是為項目提供一個清新和友好的概況,并組合其他工具(版本控制系統、bug跟蹤系統等等)。如果你沒有設置網站的技能,通常不難能找到有能力的人樂意幫助你。雖然如此,為了節省時間和工作量,人們通常會選擇一個包裝主機站點。
### 包裝主機
使用包裝站點有兩個主要的好處。首先是服務器容量和帶寬:他們的服務器通常位于非常寬的管道上。無論你的項目多么成功,你都不會用完你的磁盤并消耗完網絡帶寬。第二個好處是簡單。他們已經選擇了bug跟蹤、版本控制系統、郵件列表管理器、歸檔程序以及其他運行一個站點所需的所有東西。他們已經配置好了工具,并且會小心的備份其保管的所有數據。你不需要作出任何選擇。你所需要的只是填寫表單,點擊按鈕,你就立刻得到了一個項目網站。
這些是很明顯的益處。壞處當然也有,你必須接受*他們的*選擇和配置,即使有時候不同的方式更適合你的項目。通常情況下,包裝主站可以通過特定較少的參數進行調整,但是你永遠無法得到細致的控制,就像你自己搭建站點并對服務器有完全管理權限時的那樣。
這里的一個完美例子是對生成文件的處理。特定項目網頁可以是生成的文件—例如,有系統可以保持FAQ數據為易于編輯的原格式,而不是HTML、PDF、和其他可以生成的展示格式。本章后的[the section called “版本化所有的東西”](# "版本化所有的東西")會有解釋,你不會希望版本化這些生成格式,而只要保存原文件。但是當你的網站存放在其他人的服務器上,就不能設置一個自定義的鉤子,當原格式文件變更時,來生成在線的HTML版本的FAQ。唯一的解決辦法是也版本化生成的格式,這樣,它們才可以在網站上展示。
也可能有更大的后果。你可能無法控制你所展示的內容。一些包裝主站允許你自定義網頁,但是站點的缺省布局通常是通過許多蹩腳的方法完成。例如,一些SourceForge上的項目擁有完全的自定義主頁,但仍然將開發者指向他們的“SourceForge頁面”來獲得進一步信息。SourceForge頁面是項目的主頁,使得項目不能使用自定義主頁。SourceForge頁面包含到bug跟蹤、CVS版本庫、下載等鏈接。不幸的是,SourceForge頁面也包含了太多外來的噪音。頂上有一個廣告條,通常是一個圖像動畫。左面垂直布局的是項目中的某人感興趣的一些相關鏈接。右側可能是另一個廣告。只有中央才是項目特定的材料,甚至讓訪問者無法確定下一步應該點擊什么。
SourceForge設計的每個方面后面,無疑有一個好的原因—從SourceForge的視點是好的,例如廣告。但是從每個項目的視點,結果可能不是一個理想的網頁。我不是要招惹SourceForge;類似的關注會在許多包裝主站出現。關鍵是代價。你省去了運行項目站點的負擔,但是要接受其他人運行它的方式。
你唯一可以決定的是哪個包裝主站適合你的項目。如果你選擇了一個包裝站點,可以保留將站點轉移到你自己服務器的選項,通過使用自定義域名作為項目的“主地址”。你可以將URL轉向到包裝主站,或者你在公共URL上有完全自定義的主頁,只在復雜功能時才將用戶轉移到包裝主站。只要確保這樣安排,如果之后你希望使用不同的主機方案,項目地址不需要改變。
### 選擇一個包裝站點
最大最著名的主機站點是[SourceForge](http://www.sourceforge.net/)。[savannah.gnu.org](http://savannah.gnu.org/)和[BerliOS.de](http://www.berlios.de/)這兩個站點提供了相同或類似的服務。一些組織,例如[Apache Software基金會](http://www.apache.org/)和[Tigris.org](http://www.tigris.org/)。[[21](#)]也會為開源項目提供免費主機,但要符合他們的目標和他們社區已有的項目。
Haggen So對于各式包裝站點有一個完全的評估,作為他的博士論文研究的一部分,*Construction of an Evaluation Model for Free/Open SourceProject Hosting (FOSPHost) sites*。結果在[http://www.ibiblio.org/fosphost/](http://www.ibiblio.org/fosphost/),還可以看非常易讀的比較圖[http://www.ibiblio.org/fosphost/exhost.htm](http://www.ibiblio.org/fosphost/exhost.htm)。
### 匿名和參與
一個不僅是包裝主戰,而且許多其他地方也能看到的問題是對于用戶登錄功能的濫用。這個功能本身很簡單:站點允許每個訪問者自己通過用戶名和密碼注冊。此后他就保存了一份用戶信息,項目管理員可以為用戶賦予特定的權限,例如,提交版本庫的權利。
這非常有用,實際上這也是包裝主站的一個好處。問題是有時候有一些附加給注冊用戶的任務本應該由未注冊訪問者執行,特別是如在bug跟蹤系統發起問題和對已有問題進行回復。如果對此類活動要求輸入登陸用戶名,項目就為這類快速方便的任務設置了障礙。當然,人們希望可以聯系到輸入數據的人,但只要保留一個輸入郵件地址(如果她愿意)的字段就夠了。如果一個新的用戶發現一個bug,并希望報告它,她會被在輸入bug之前被要求填寫帳戶信息惹惱。她可能會放棄發起這個bug。
用戶管理的好處被過高估計了。但是如果你可以選擇哪些動作可以匿名完成,請確保不僅只有*所有的*只讀動作對于未登陸用戶是允許的,也包括一些數據條目動作,特別是在bug跟蹤系統,可能的話還有你的wiki頁。
[[21](#)] 免責生命:我由[CollabNet](http://www.collab.net/)雇傭,它是Tigris.org的贊助商,我經常會用Tigris。
- 前言
- 為什么寫這本書?
- 誰應該讀本書?
- 資料來源
- 致謝
- 免責聲明
- 1. 介紹
- 歷史
- 現狀
- 2. 起步
- 從你擁有的開始
- 選擇許可證并應用
- 設置風格
- 通告
- 3. 技術基礎設施
- 一個項目需要什么
- 郵件列表
- 版本控制
- Bug跟蹤
- IRC / 實時聊天系統
- RSS供稿
- Wikis
- 網站
- 4. 社會和政治的基礎架構
- 慈善獨裁者
- 共識為基礎的民主(Consensus-based Democracy)
- 寫下所有的內容
- 5. 金錢
- 參與的類型
- 長期雇傭
- 作為一些個體出現,而不是一個整體
- 公開你的動機
- 錢不能讓你可愛
- 契約
- 資助非編程活動
- 市場營銷
- 6. 交流
- 人如其文
- 避免常見的陷阱
- 刺兒頭
- 處理成長
- Bug跟蹤系統中無對話
- 公開性
- 7. 打包、發布和日常開發
- 版本號
- 發布分支
- 穩定發布版本
- 打包
- 測試和發布
- 維護多發布線
- 發布和日常開發
- 8. 管理志愿者
- 從志愿者中獲取最多
- 像分擔技術任務一樣分擔管理任務
- 轉化
- 提交者
- 榮譽
- 分叉
- 9. 許可證,版權和專利
- 術語
- 許可證的方面
- GPL和許可證兼容性
- 選擇一個許可證
- 版權分配和所有權
- 雙許可證模式
- 專利
- 深入資源
- A. 自由版本控制系統
- B. 自由Bug跟蹤系統
- C. 為什么我要關注車棚的顏色?
- D. 報告bug的樣例指導
- E. 版權