Bạn phải cập nhật lên một major version mới khi những thay đổi bạn định đưa vào phiên bản mới không thể bảo đảm tương thích ngược cho người dùng module. Ví dụ, bạn sẽ phải thay đổi như vậy nếu bạn sửa API công khai của module theo cách làm hỏng mã phía client đang dùng các phiên bản trước của module.
Lưu ý: Mỗi loại bản phát hành – major, minor, patch hay pre-release – đều mang một ý nghĩa khác nhau đối với người dùng module. Người dùng dựa vào những khác biệt này để hiểu mức độ rủi ro mà một bản phát hành mang lại cho mã của chính họ. Nói cách khác, khi chuẩn bị một bản phát hành, hãy bảo đảm số phiên bản của nó phản ánh chính xác bản chất của những thay đổi kể từ bản phát hành trước. Để biết thêm về số phiên bản, xem Cách đánh số phiên bản module.
Xem thêm
- Để có cái nhìn tổng quan về việc phát triển module, xem Phát triển và publish module.
- Để có cái nhìn đầu-cuối, xem Quy trình phát hành và đánh phiên bản module.
Những điều cần cân nhắc khi cập nhật major version
Bạn chỉ nên cập nhật lên một major version mới khi thực sự cần thiết. Một bản cập nhật major version đồng nghĩa với xáo trộn đáng kể cho cả bạn lẫn người dùng module. Khi cân nhắc một bản cập nhật major version, hãy nghĩ về những điều sau:
-
Hãy nói rõ với người dùng của bạn rằng việc phát hành major version mới có ý nghĩa gì đối với sự hỗ trợ của bạn dành cho các major version trước.
Các phiên bản trước có bị ngừng hỗ trợ không? Vẫn được hỗ trợ như trước? Bạn có tiếp tục bảo trì các phiên bản trước, bao gồm cả việc sửa lỗi, hay không?
-
Hãy sẵn sàng gánh việc bảo trì hai phiên bản: bản cũ và bản mới. Ví dụ, nếu bạn sửa lỗi ở một bản, bạn sẽ thường phải chuyển bản sửa đó sang bản còn lại.
-
Hãy nhớ rằng một major version mới là một module mới xét từ góc độ quản lý phụ thuộc. Người dùng của bạn sẽ phải cập nhật để dùng một module mới sau khi bạn phát hành, chứ không chỉ đơn giản là nâng cấp.
Đó là vì một major version mới có module path khác với major version liền trước. Ví dụ, với một module có module path là example.com/mymodule, phiên bản v2 sẽ có module path là example.com/mymodule/v2.
-
Khi bạn phát triển một major version mới, bạn cũng phải cập nhật các import path ở mọi nơi mã nguồn import package từ module mới. Người dùng module của bạn cũng phải cập nhật import path của họ nếu muốn nâng cấp lên major version mới.
Tách nhánh cho một bản phát hành major
Cách xử lý mã nguồn đơn giản nhất khi chuẩn bị phát triển một major version mới là tách nhánh repository tại phiên bản mới nhất của major version trước đó.
Ví dụ, trong một cửa sổ dòng lệnh, bạn có thể chuyển vào thư mục gốc của module, rồi tạo một branch v2 mới ở đó.
$ cd mymodule
$ git checkout -b v2
Switched to a new branch "v2"

Sau khi đã tách nhánh mã nguồn, bạn cần thực hiện những thay đổi sau đây với mã nguồn cho phiên bản mới:
-
Trong tệp go.mod của phiên bản mới, thêm số major version mới vào cuối module path, như trong ví dụ sau:
- Phiên bản hiện có:
example.com/mymodule - Phiên bản mới:
example.com/mymodule/v2
- Phiên bản hiện có:
-
Trong mã Go của bạn, cập nhật mọi đường dẫn package được import ở nơi bạn import một package từ module, thêm số major version vào cuối phần module path.
- Câu lệnh import cũ:
import "example.com/mymodule/package1" - Câu lệnh import mới:
import "example.com/mymodule/v2/package1"
- Câu lệnh import cũ:
Để biết các bước publish, xem Publish một module.