# RTTMAS - Android Version Control ### 版本定義 版本採 `x.y.z` 格式,即 `Major.Minor.Patch`。 `Major`:大版本改變,正常維持在 `0` 或 `1`,不太會動。 `Minor`:新功能,如 MQTT、YOLO。 `Patch`:每個功能的小更新/修復。 每個 Version Name 均配上一個遞進 Version Code(正整數),如: ``` ... v0.3.5 (Code 8) v0.3.6 (Code 9) v0.2.9 (Code 10) v0.1.2 (Code 11) v0.2.10 (Code 12) ... ``` Notes: - Version Code 目的是分辨各版本的前後關係,只會一致累加。 - 至於 Version,各功能的 `Patch` 獨立累加就好。到最後打包時,採用號碼最高的版本,以上述例子來說,會採 `0.3.6`。 - Merge commit 不用配上 version。 目前版本分配(2024/09/13): | Version | Feature | | -------- | -------- | | 0.0.x | 基礎 Project 設置(不用管) | | 0.1.x | Main GUI(其他功能的 GUI 不用放進來) | | 0.2.x | MQTT | | 0.3.x | YOLO/OCR | ### Git Commit 規範 格式: ``` <Commit類型>: <簡短標題> <說明段落> <列點所有變更/增刪> <備註(如有)> <版本> ``` `簡短標題` 應限制於 50 字以下,以最精簡的方式概況該 Commit 的內容。 `Commit 類型` 包含: - `Feature`:新功能 - `Update`:更新邏輯/設計(但不是漏洞) - `Fix`:修復漏洞/設計 - `Refactor`:整理程式碼(沒有邏輯變更) - `Test`:程式測試 - `Docs`:文件相關 `說明段落` 為文字敘述,說明變更的目的、做法等。 `列點所有變更/增刪` 是為了方便快速掌握所有變動,請簡短、清楚地描述哪裡改了什麼。 `版本` 應標註該 Commit 屬於哪一個應用版本 (`Version Name` 與 `Version Code` 都應包含)。 Commit 範例: ``` Fix: 修復按鈕無法回應點擊事件的問題 # <說明段落> 這次修復解決了主畫面中的“提交”按鈕無法正確回應點擊的問題。 問題源頭是 Button 的 setOnClickListener 設置錯誤導致,這裡修復了錯誤處理邏輯。 # <列點所有變更/增刪> - 修正了 OnClickListener 的綁定方式 - 加入了對空值的檢查,避免 null pointer exception - 修改了按鈕按下後的 UI 更新邏輯 # <備註> 修復了 Issue #101 # <版本> v2.0.3 (Code 45) ```