2012-06-08 39 views
1

我開發了自己的CMS - 我並不認爲它是最好的或者甚至是好的,我只想面對創建這樣的系統可能帶來的問題。
目前我遇到了爲我的CMS設計一些合理的版本控制系統的問題。開源CMS的版本風格

我有什麼現在:

  1. 項目被託管在GitHub上(實際上沒有),
  2. 有兩個分支:
    • devel的電流變化
    • 主對於穩定的變化形式devel

我的第一個想法是使用GitHub API創建更新系統 - 用戶在項目頁面比較他本地最新的commit sha和sha - 如果不是最新的下載文件。這個解決方案有一個很大的缺點--API的請求限制,一個用戶可以關閉整個「更新服務器」,因爲每分鐘的請求太多。
取而代之的是,我將使用'GitHub Pages'來存儲我自己本地生成的項目頁面和上面的changsets(帶有附加信息的JSON格式的修改的git diff輸出)。在這個想法中,我不使用提交來檢查更新狀態,但使用版本號。
比方說我的GitHub頁面看起來像這樣:

index.html 
/changsets 
+--0.0.1.json 
+--0.0.2.json 
... 
+--1.0.0.json 
在changsets

每個JSON文件目錄將持有的文件列表改變,因爲它的版本的名字 - 如果1.0.0是當前版本的文件1.0.0.json會包含一個空數組。
版本號應該是什麼格式?當它是1.0.55或1.55.21時,三個整數可能看起來不太好。我什麼時候應該將更改從發展到主分支?我並不像Joomla/Drupal團隊那樣經驗豐富,所以我沒有任何時間表或功能列表來發布X版本(大多數更新肯定是錯誤修正)。
如果版本變化太頻繁,我需要生成幾十個JSON文件,這會浪費時間和資源。也許我應該有一個六個月的最後期限,當沒有changsets會產生?
我知道我應該使用REST API來處理它,但我希望我的項目完全託管在GitHub上。

回答

0

對於您可以使用Semantic Versioning

每個瀏覽該網頁時檢查更新版本的方案是不現實的,如果高調的網站正在使用您的腳本,其實是一種威脅。相反,您可以在管理面板中添加一個頁面或選項,讓管理員檢查更新。

+0

非常有用的規格與精確的提示/要求。謝謝!任何關於存儲chngsets的想法? – Michael

+0

您可以在存儲庫中執行此操作,或者也可以使用其他服務,如[Dropbox](http://www.dropbox.com),並且具有管理員可以手動檢查更新的特定頁面(以防止過載更新服務器)。 – Daniel

+1

我只是想等一下,如果別人會張貼一些有趣的東西:) – Michael