---
# System prepended metadata

title: RTTMAS - Android Version Control
tags: [rttmas]

---

# 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)
```