1. 功能開發(Feature Development)
功能開發過程如下:
- MySQL的一個功能是指一個worklog.
- Worklog的開發要經過規格定義,設計,架構評審,代碼實現,程式碼檢閱和QA評審的過程(但是這幾個過程並不是嚴格的按照先後順序進行的).
- MySQL的功能首先在一個功能樹(feature tree,是指代碼分支樹)上實現.
- 功能樹是從MySQL的代碼主開發樹TRUNK上複製出來的(一般是開發人員自己建立),開發過程中不定期從TRUNK同步.
- 當功能實現以後,必須要經過代碼的評審。
- 程式碼檢閱通過後,開發樹被QA接手。
- QA對功能進行測試,如發現缺陷(bugs),開發人員要進行修複.最終在測試通過後,QA將狀態設定為開發過程完成(sign off).
- 一旦QA驗證完畢,功能就會被合并到TRUNK中.
通過這個過程,TRUNK上會不停的累積功能和缺陷修複的代碼。額外的迴歸測試(Regression testing)一刻不停的在TRUNK上執行,以保證TRUNK始終能夠保持候選版版本(Release Candidate)的品質。
2. 實驗室版本(Lab Releases)
實驗室版本是一個或者多個功能的預覽版本。預覽版本中的功能通常正在開發,還沒有整合到TRUNK中。當MySQL社區對某個功能非常感興趣,想儘早對該功能進行評測時,才會建立一個實驗室版本。實驗室版本有相當於beta版本的品質,也許只能在特定的平台上運行,沒有文檔可供參考。最後,實驗室版本中的功能並不一定會被整合到未來的開發裡程碑(DMR)或GA版本中。實驗室版本可以在labs.mysql.com找到.
3. 開發裡程碑版本(Development Milestone Releases(DMR))
開發裡程碑版本包含了TRUNK上所有的新代碼(從前一個DMR到當前DRM產生時). 每3-6個月,會有一個開發裡程碑版本(development milestone release (DMR) )從TRUNK上產生. 當一個開發裡程碑版本產生時,所有新功能都已經編寫到文檔中(MySQL手冊).開發裡程碑版本擁有候選版版本(RC)的品質,並且能夠在所有被MySQL支援的平台上運行。
頻繁發布開發裡程碑版本,一方面為那些想儘早使用的使用者提供了可靠的版本,另一方面,也是為了從使用者那裡收集反饋資訊。這些反饋資訊可以用來提高下一個裡程碑版本的品質.裡程碑版本可以在 MySQL Developer Zone上找到.
開發裡程碑版本生產的過程如下:
- 發布經理設定開發裡程碑版本的分離日期(cut-off date).分離日期前合并到TRUNK中的所有新功能都被包含在這個裡程碑版本中。
- 進行代碼分離前,TRUNK 會被短暫的凍結。QA會對凍結的TRUNK進行額外的測試和評估。
- QA 確認可以進行代碼分離(signs off TRUNK).
- 從TRUNK複製代碼,建立開發裡程碑版本樹.TRUNK 被解凍,日常合并工作可以正常進行。
- QA 對開發裡程碑版本樹進行測試,發現的bug被修複後,QA才會批准裡程碑版本發布.
- 宣布發布裡程碑版本。
圖 1. 開發裡程碑版本發布
4. 普遍可用版本(Generally Availability (GA) Releases)
GA版本是被推薦在生產環境中使用的版本。大約每18-24個月發布一個GA版本. GA版本可以在 MySQL Developer Zone上找到.
GA版本的生產過程如下:
- GA版本是基於開發裡程碑版本版本的.
- 被選擇的開發裡程碑版本,在經過更多的測試和缺陷修複後,產生一個候選版本(release candidate),並且公布到社區。
- 候選版本在經過客戶和使用者的測評後,達到了GA版本的品質後方能發布。候選版本的發布會進行多次迭代直到達到GA的品質。
- GA版本發布。
圖 2. GA版本發布
本文大體上是對官方英文版的翻譯,可能有一點出入(為了更容易理解),原文在這裡。
原創文章,轉載請註明: 文章地址MySQL開發流程介紹
本文連結:http://www.mysqlops.com/2013/05/07/mysql%e5%bc%80%e5%8f%91%e6%b5%81%e7%a8%8b%e4%bb%8b%e7%bb%8d.html