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

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

將存儲庫升級到 v2

將存儲庫升級到 v2

Go
慕仙森 2023-05-08 16:29:32
此時我正在為多個存儲庫使用 Go 1.11 模塊?,F在我正在處理一個已經是 1.x 版本的。結合移動到 go 模塊,我做了一些其他重大更改,所以很明顯是時候增加存儲庫的主要版本了。這意味著轉到版本 2。根據“go command”文檔:為了保持導入兼容性,go 命令要求具有主要版本 v2 或更高版本的模塊使用以該主要版本作為最終元素的模塊路徑。例如,example.com/m 的 v2.0.0 版本必須使用模塊路徑 example.com/m/v2,并且該模塊中的包將使用該路徑作為其導入路徑前綴,如 example.com/m/v2 /子/包。以這種方式在模塊路徑和導入路徑中包含主版本號稱為“語義導入版本控制”。來源這就像更新我的文件的第一行一樣簡單go.mod,附加/v2到模塊名稱嗎?或者我應該v2/在我的存儲庫中創建一個目錄并將所有文件移動到那里嗎?
查看完整描述

2 回答

?
肥皂起泡泡

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

如何移動到版本 2 有兩個選項:分支和子目錄。

這兩個選項使一個版本可以依賴另一個版本。例如,當您實施版本 2 時,您可以更新版本 1 以依賴于版本 2(但保持相同的 v1 API)。然后,您只需要為您的庫實現一種邏輯。根據項目類型、您要提供的支持以及它需要的修復,這可能適合您也可能不適合您。

分支機構

master:?A?->?B?(v1.0.0)?->?D?(v1.0.1)
?????????????????????????\
v2:???????????????????????->?C?(v2.0.0)

在這種情況下:

  1. 你在分支上開始你的項目master,

  2. 做一些提交(AB),

  3. 標簽v1.0.0。

  4. 您決定進行重大更改。因此,您創建了一個新分支 (?git checkout -b v2) 并進行了重大更改。您的 go.mod 現在必須更新,以便模塊名稱以/v2(它本質上是一個新模塊?。┙Y尾。

  5. 您決定修復 中的錯誤v1,因此您返回該分支,進行新提交并標記新v1版本。

當用戶需要您的模塊的特定版本時,go將在兩個分支中查找哪個提供了正確的模塊。

子目錄

不想在分支上開發怎么辦?您可以為每個主要版本創建一個子目錄。版本 1 位于頂層,然后新版本移至子目錄:

go.mod (module example.com/foo)

foo.go

v2/

? go.mod (module example.com/foo/v2)

? foo.go

當您使用新版本標記此 repo 時,v1將使用頂級版本。v2標簽將使用v2子目錄。


查看完整回答
反對 回復 2023-05-08
?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

來自模塊 wiki 的發布模塊(v2 或更高版本)部分:

有兩種可供選擇的機制來發布 v2 或更高版本的模塊。請注意,使用這兩種技術,當模塊作者推送新標簽時,新模塊版本可供消費者使用。使用創建發布的示例v3.0.0,兩個選項是:

  1. 主要分支:更新文件以在指令中的模塊路徑末尾go.mod包含一個(例如,)。更新模塊中的 import 語句以也使用(eg,?)。用 標記發布。/v3modulemodule github.com/my/module/v3/v3import "github.com/my/module/v3/mypkg"v3.0.0

  • Go 版本 1.9.7+、1.10.3+ 和 1.11+ 能夠正確使用和構建使用這種方法創建的 v2+ 模塊,而無需更新尚未選擇加入模塊的消費者代碼(如“語義導入版本控制”?部分)。

  • 注意:不需要創建新分支。例如,如果您之前已經在 master 上發布,并且更愿意在 master 上標記 v3.0.0,這也是一個可行的選擇。[...]

[...]

  1. 主要子目錄:創建一個新的v3子目錄(例如,my/module/v3)并go.mod在該子目錄中放置一個新文件。模塊路徑必須以/v3.?將代碼復制或移動到?v3子目錄中。更新模塊中的 import 語句以也使用/v3(eg,?import "github.com/my/module/v3/mypkg")。用 標記發布v3.0.0。

但是,該部分中還有其他值得回顧的詳細信息。

查看完整回答
反對 回復 2023-05-08
  • 2 回答
  • 0 關注
  • 146 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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