之前寫了一篇如何自動生成版本號的文章,
初衷是讓自己的程序在運行時自動打印與版本相關的信息,
避免測試時因為版本信息不確定導致的一些功能對應不上去的問題,
當時留了一個坑,寫一篇關于如何設計一個相對規范的版本號的文章,
現在把這個坑填上。
鏡像版本號格式
-
project name
工程名字,比如YIKOU3568、YIKOU4412
-
firmware version
軟件版本信息,詳見下一節
-
comments
其他描述信息,
比如版本的os:Linux、threadx、vxworks等
或者對應的硬件平臺ap、modem等
或者也可以是git 服務器最后一次commit的id
firmware version詳細格式
名稱格式長度(字節)說明vv1鏡像版本號以v開頭MajorXX2主版本號。比如00:工程師樣品,01:功能完成,02~:商業發布(商業發布后),升級codebase或者重大新功能遞增MinorYY2修復錯誤或添加次要功能等(如果“次要”版本增加,則需要發布說明)build IDYYMMDDN7Y:年,M:月,D:日,N:當日第幾次build(0,1,2……a,b,c……x,y,z)release typeT0-1T:研發發布測試版本,正式版可以不填寫
舉例
比如有以下軟件版本要發布:
- 項目名稱 :YIKOU3568,
- 項目基本功能完成,還沒有正式商業發布,
- 此次的版本是修復了一些測試出的bug,之前minor版本為5
- 當年日期:2024年9月9日,
- 當天第2次編譯,
- 當前仍然是測試版本:T。
信息如下:
- project name:YIKOU3568
- major:01
- monor:06
- build ID:240909
- N:1
- release type:T
最終版本信息如下:
YIKOU3568_v01.06.2409091_ T
實際使用中,大家根據自己的需要,可以自行規定個別字段的值。
最后
發布的鏡像版本號,一定要和git服務器的commit對應起來,
發布的時候,一定要刪除本地的工程,
從服務器pull下來最新的代碼,
之后重新整體編譯,
然后再做個大致的測試,
確保沒有問題之后再發布該版本。
做到每一個鏡像都要有明確的commit與之對應。
否則會出現,在某一個版本測試出了bug,
但是找不到這個鏡像對應的源碼,
在其他版本上該bug又無法復現,
bug無法閉環。