Tính Phiên Bản SemVer & Kiểm Tra Khoảng
Kiểm tra một phiên bản có đúng chuẩn Semantic Versioning 2.0.0 không, so sánh và sắp xếp phiên bản, tính số phiên bản tiếp theo, xem một khoảng npm như ^1.2.3 thực sự cho phép những gì — kèm dạng tương đương cho Cargo, Composer và pip — và biến thông điệp commit thành một mục changelog.
Các bước sử dụng
- Ở tab Kiểm tra, so sánh & tăng, gõ phiên bản vào Kiểm tra & phân tích. Bạn nhận được SemVer 2.0.0 hợp lệ hoặc Không hợp lệ kèm gợi ý, cùng các phần major, minor, patch, pre-release và build.
- Dùng So sánh hai phiên bản để xem bản nào mới hơn và quy tắc nào quyết định, hoặc dán danh sách vào Sắp xếp phiên bản.
- Trong Phiên bản tiếp theo (tăng), nhập Phiên bản hiện tại và Định danh pre-release (alpha, beta, rc…) để xem mọi phiên bản tiếp theo có thể có, kèm lệnh
npm version. - Ở tab Kiểm tra khoảng, gõ khoảng vào Khoảng phiên bản npm hoặc bấm một ví dụ. Ý nghĩa diễn giải khoảng (vd
≥1.2.3 và <2.0.0) và Dạng chuẩn hoá (cách npm hiểu) cho thấy cách npm đọc nó. - Dán các phiên bản vào Thử phiên bản. Mỗi dòng được đánh dấu Thoả hoặc Không thoả, và bản tốt nhất được ghi là Khớp cao nhất.
- Xem Cùng khoảng trong trình quản lý gói khác cho Cargo, Composer và PEP 440. Mỗi dòng được đánh dấu Tương đương, Gần đúng hoặc Không biểu diễn được.
- Ở tab Hỗ trợ changelog, dán tiêu đề commit vào Các commit từ lần phát hành trước và điền Phiên bản hiện tại. Phiên bản tiếp theo đề xuất cho biết mức tăng, còn Mục Keep a Changelog đã sẵn sàng để chép hoặc Tải .md.
Mẹo
- Bản pre-release rất đặc biệt:
2.0.0-rc.1không thoả^1.0.0, thậm chí cả*. Một khoảng chỉ khớp pre-release khi nó nhắc tới pre-release, như>=2.0.0-0. - Với phiên bản 0.x, dấu mũ chặt hơn:
^0.2.3nghĩa là>=0.2.3 <0.3.0, còn^0.0.3chỉ cho phép0.0.3. - Build metadata (
+build.5) không bao giờ ảnh hưởng thứ tự, nên1.0.0+avà1.0.0+bngang hàng nhau. - Với Composer,
~1.2nghĩa là>=1.2 <2.0, khác npm, nên khoảng dấu ngã được viết đầy đủ cho Composer. - Có thể dán thẳng kết quả
git log --onelinevào công cụ changelog; mã hash của commit được bỏ qua.
1.2.3-rc.2 thành 1.2.3 với patch, và 2.0.0-rc.1 thành 2.0.0 với major.
Câu hỏi thường gặp
1.0.0-alpha.10 có mới hơn 1.0.0-alpha.9 không?
Có. Định danh chỉ gồm chữ số được so sánh như số, nên 10 lớn hơn 9. Chỉ định danh có chữ cái mới được so sánh như văn bản.
Vì sao v1.2.3 không hợp lệ theo nghĩa chặt?
Chữ v thuộc về tag của git, không thuộc về phiên bản. Bản thân SemVer 2.0.0 không có tiền tố, nên công cụ đánh dấu là Hợp lệ khi bỏ tiền tố và hiển thị phiên bản không kèm chữ v.
Commit nào làm thay đổi số phiên bản?
Thay đổi phá vỡ (! hoặc BREAKING CHANGE:) tăng major, feat tăng minor, còn fix, perf và revert tăng patch. Commit docs, chore, test, ci và build không tạo bản phát hành. Khi dự án còn ở 0.x, mỗi mức có thể được hạ xuống một bậc.
Có gì bị tải lên không?
Không. Phiên bản, khoảng và thông điệp commit đều được xử lý hoàn toàn trong trình duyệt của bạn.