在專案管理中,Release 版號通常用於表示軟體或系統的發佈版本,讓開發人員可以清楚了解目前系統處於的版本階段。關於 Release 版號,將分成上、中、下,三篇,上篇介紹通用的版本命名方式,中、下篇將介紹如何用 GitHub Actions 自動產生版號與變更內容。
語意化版本號規則(Semantic Versioning,也稱為 SemVer)為通用的版本號命名方式,格式為:
主版本號.次版本號.修訂版本號
表示方式:例如 2.0.3。
major release:系統重大改變,例如:整體系統框架升級、改版。minor release:改版內容不影響整體系統開發與使用,例如:新功能上線。patch release:調整或修復既有程式碼問題,例如:更新既有功能邏輯。以前端網頁系統開發為例:
major release:重大變更,已與現有功能不相容。
Vue 2 升級到 Vue 3,或 ArcGIS API for JavaScript 從 3.X 升級到 4.X,使大量既有功能皆需調整的重大升級變更。UI / UX 重新設計:前端設計架構改變,導致原有的程式碼無法使用,影響原有功能運作。CSS 預處理器或編譯工具的重大改變:從 Sass 切換到 PostCSS,或從 Webpack 轉向 Vite 等打包工具的改變,影響了整個編譯流程。Vuex 升級到 Pinia,重構了component 架構或狀態管理模式。minor release:新增功能或優化,保持向後相容,不會破壞現有功能。
UI 元件:例如加新的頁面、表單或彈出視窗等,這些新增功能不影響現有的頁面和功能。UI 元素進行美化與設計調整,但不影響現有樣式的正常使用,例如按鈕樣式與顏色調整等。UI 和 UX 的調整,讓網站可在更多設備上被使用。patch release: Bug 修復或功能小幅調整,完全向後兼容,對功能沒有影響。
UI 問題:調整元素對齊、字體大小不一致等細節問題。Bug 進行修正,確保相容性。GitHub Actions 或 CI/CD 流程,可自動檢測和管理不同程度的版本更新,幫助追蹤多個版本的程式碼調整歷程。