亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何避免在源代碼中保留版本號?

如何避免在源代碼中保留版本號?

繁星coding 2021-12-21 17:02:08
到目前為止,我們將 Python 源代碼的版本號保存在 setup.py 中。每次成功運行 ci 后,此版本都會增加。這意味著中央庫的版本每天增加數倍。由于版本號存儲在 git repo 的一個文件中,因此版本號的每次增加都是一次新的提交。這意味著大約 50% 的提交不是由人類完成的,而是由 CI 完成的。我有一種感覺,我們走錯了路。也許將版本號保留在 ci 中不是一個好的解決方案。我們如何避免只會增加版本號的“無用”CI 提交?如何避免在源代碼中保留版本號?更新幾年來,我們沒有手動發布。我們沒有像 MAJOR.MINOR 這樣的版本控制方案。我們過去沒有錯過這一點。我知道這不適用于所有環境。但它適用于我當前的環境。我們有一個看起來像這樣的版本號:YEAR.MONTH.X這意味著每個通過 CI 的提交都是一個新版本。閱讀答案后,我意識到:我需要問自己:我到底有沒有版本號?我想不是。我有一個內部版本號。在這種情況下不需要更多。(感謝您的投票。在問這個問題之前,我確信這個問題會被關閉,因為人們會認為它“不清楚”或“太寬泛”)
查看完整描述

3 回答

?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

在源代碼中保留一個版本號是一種常見的做法,這沒有錯。

您需要將 CI 過程與常規構建、發布發布和發布部署分開。

定期構建:每天甚至在每次提交后運行,可以包括靜態代碼分析和自動測試,檢查代碼是否可以構建。常規構建不應更改版本號。

發布發布:只能由發布經理的顯式手動操作觸發。
觸發操作可以是用新版本號標記提交,新合并到發布分支,或者只是更改保存在特殊文件(例如pom.xml)中的版本號的提交。例如,請參考 git flow。
發布發布分配新版本號(自動或手動),必要時將其提交到源代碼中,使用新版本構建二進制包并將其上傳到二進制包存儲庫(例如 Nexus、devpi、本地 APT 存儲庫、Docker注冊表等)。

發布部署:另一個手動觸發的操作,從包存儲庫中獲取準備好的二進制包并將其安裝到目標環境(開發、QA/UAT/暫存、金絲雀部署的生產部分或整個生產環境)。


查看完整回答
反對 回復 2021-12-21
?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

前提:

我假設這些是討論解決方案的前提。

  1. 當前版本號保存在 git-tracked 源文件中,但您可以擺脫它。

  2. 沒有人手動管理版本號,也沒有觸發發布程序,其中包括:(a)增加版本號,(b)從源構建和(c)將構建結果存儲在某處。這些由 CI 處理,并且應該保持這種狀態。

解決方案:

  1. CI 不是寫入源文件并創建新提交,而是簡單地標記通過 CI 檢查的特定提交,然后將標記推送到遠程倉庫。

  2. 構建腳本應該讀取當前 HEAD 提交的標簽,并將其用作發布版本的版本號。

  3. 或者,您可能希望使用git filter-branch重寫現有的 git repo 歷史記錄,標記以前的版本提交以保持一致性,刪除并停止跟蹤版本號源 cile,然后擺脫那些 CI 提交。


查看完整回答
反對 回復 2021-12-21
?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

我認為你應該使用 git flow。并創建一個master分支和一個develop分支。每次 CI 檢查開發時,版本號保持不變。每次你創建一個版本,例如將開發合并到主,你可以通過 CI 增加版本號。

或者我遺漏了什么,但在我看來,沒有理由每次 ci 運行時都會增加版本號。

因此,總而言之,您最好考慮何時“發布”對新版本的更改!!


查看完整回答
反對 回復 2021-12-21
  • 3 回答
  • 0 關注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號