it-swarm-vi.com

"Quy ước đặt tên phiên bản" nào bạn sử dụng?

Các quy ước đặt tên phiên bản khác nhau có phù hợp với các dự án khác nhau không? Bạn dùng gì và tại sao?

Cá nhân, tôi thích số bản dựng theo hệ thập lục phân (ví dụ 11BCF), số này phải được tăng lên rất thường xuyên. Và sau đó cho khách hàng một số phiên bản 3 chữ số đơn giản, tức là 1.1.3.

1.2.3 (11BCF) <- Build number, should correspond with a revision in source control
^ ^ ^
| | |
| | +--- Minor bugs, spelling mistakes, etc.
| +----- Minor features, major bug fixes, etc.
+------- Major version, UX changes, file format changes, etc.
111
rjstelling

Tôi thấy mình hiếm khi đồng ý hoàn toàn với Jeff Atwood, nhưng tôi có xu hướng tuân theo ý kiến ​​của anh ấy về quy ước đánh số phiên bản .NET .

(Phiên bản chính). (Phiên bản nhỏ). (Số sửa đổi). (Số bản dựng)

Thường xuyên hơn không, đối với các dự án cá nhân, tôi thấy điều này là quá mức cần thiết. Một vài lần tôi đã làm việc trong các dự án lớn như các công cụ tìm kiếm trong C # tôi đã mắc kẹt với quy ước này và đã có thể sử dụng nó như một công cụ theo dõi nội bộ một cách hiệu quả.

47
Mike B

Phiên bản ngữ nghĩa ( http://semver.org/ ) xứng đáng được đề cập ở đây. Đây là một đặc tả công khai cho sơ đồ phiên bản, dưới dạng [Major].[Minor].[Patch]. Động lực cho kế hoạch này là truyền đạt ý nghĩa với số phiên bản.

90
M. Dudley

Tôi không sử dụng nó nhưng tôi đã thấy và đó là một cấu trúc thú vị:

Năm.Month.Day.Build

Tự giải thích.

33
Maniero

Tôi cố gắng sử dụng chính sách Phiên bản hợp lý của RubyGems trong đó:

  • Số phiên bản chính được tăng lên khi khả năng tương thích nhị phân bị phá vỡ
  • Số phiên bản nhỏ được tăng lên khi chức năng mới được thêm vào
  • Số lượng bản dựng thay đổi để sửa lỗi.
14
Ken Bloom

Đây là cách tiếp cận rất chi tiết để đánh số phiên bản:

  • N.x.K, trong đó NK là các số nguyên. Ví dụ: 1.x.0, 5.x.1, 10.x.33. Được sử dụng cho bản dựng trung gian.
  • N.M.K, trong đó N, MK là các số nguyên. Ví dụ: 1.0.0, 5.3.1, 10.22.33. Được sử dụng cho phát hành.
  • N.x.x, trong đó N là số nguyên. Thí dụ: 1.x.x. Được sử dụng cho các nhánh hỗ trợ.
  • N.M.x, trong đó NM là các số nguyên. Thí dụ: 1.0.x. Được sử dụng cho phát hành chi nhánh.

Dưới đây là hình ảnh minh họa đơn giản về phương pháp đánh số phiên bản:

Agile version numbering

PA có nghĩa là tiền alpha A có nghĩa là alpha B nghĩa là beta AR nghĩa là phát hành alpha BR có nghĩa là phát hành beta RC có nghĩa là phát hành ứng viên ST nghĩa là ổn định

Ưu điểm của phương pháp đánh số phiên bản như sau:

  • Nó đại diện cho chi tiết cụ thể của vòng đời phát triển phần mềm linh hoạt.
  • Nó đưa vào tài khoản cụ thể của cấu trúc kho lưu trữ mã nguồn.
  • Đó là tự giải thích cho những người đã quen với các mẫu. Mỗi mẫu đại diện cho tạo tác khác nhau. Các mẫu như vậy có thể dễ dàng được phân tích cú pháp và sử dụng cho các mục đích khác, chẳng hạn như theo dõi vấn đề.
  • Các mẫu phiên bản được đặt, cơ bản cho phương pháp tiếp cận phiên bản được mô tả có thể được sử dụng cho thu thập số liệu hoạch định.
  • Nó tập trung vào các khái niệm trưởng thành mức chất lượng. Rất thường các số phiên bản như 1.0.0 được gán mà không cần thiết nhiều (khi phần mềm ở trạng thái alpha sâu). Phương pháp đánh số phiên bản được trình bày cho phép thiết lập một số mức trưởng thành. Trong trường hợp đơn giản nhất, nó sẽ chỉ có hai cấp độ: xây dựng trung gian (N.x.K) và phát hành (N.M.K). Phát hành có nghĩa là phần mềm có số phiên bản đầy đủ (N.M.K) đã trải qua một số loại quy trình quản lý chất lượng trong công ty/tổ chức/nhóm nhà cung cấp.
  • Nó là một bằng chứng về bản chất nhanh nhẹn của cả phát triển và thử nghiệm.
  • Khuyến khích phương pháp mô đun đối với cấu trúc và kiến ​​trúc phần mềm.

Ngoài ra còn có phức tạp hơn sơ đồ thể hiện cách tiếp cận phiên bản chi tiết. Ngoài ra, bạn có thể thấy hữu ích bản trình bày mô tả quá trình chuyển đổi sang cách tiếp cận phiên bản và SCMFViz ứng dụng minh họa các nguyên tắc cơ bản của phương pháp đánh số phiên bản. Các slide thuyết trình cũng giải thích tại sao điều quan trọng là phải tuân theo cách tiếp cận phiên bản tương tự trong suốt toàn bộ vòng đời của dự án phần mềm.

Cá nhân thái độ của tôi đối với việc sử dụng phiên bản ngày thay vì số phiên bản thực giả định rằng các nhà phát triển phần mềm có phiên bản ngày:

  • Không biết gì về vòng đời phát triển phần mềm . Phát triển thường nhanh nhẹn và lặp đi lặp lại. Phương pháp đánh số phiên bản nên thể hiện bản chất lặp của quy trình phát triển phần mềm.
  • Đừng quan tâm đến chất lượng phần mềm . Kiểm soát chất lượng và đảm bảo là nhanh nhẹn và lặp đi lặp lại. Cũng giống như sự phát triển. Và số phiên bản phải là bằng chứng về bản chất nhanh và lặp của cả phát triển và kiểm soát/đảm bảo chất lượng.
  • Đừng quan tâm đến kiến ​​trúc hoặc ý tưởng của ứng dụng của họ. Số phiên bản chính (N trong N.M.K) chịu trách nhiệm cho cả giải pháp kiến ​​trúc và nguyên tắc cơ bản của ứng dụng. Số phiên bản chính N sẽ được thay đổi tương ứng với những thay đổi trong kiến ​​trúc hoặc thay đổi các ý tưởng và nguyên tắc chính trong hoạt động/hoạt động của nó.
  • Không có quyền kiểm soát cơ sở mã của họ . Có lẽ chỉ có một nhánh (thân cây) và nó được sử dụng cho mọi thứ. Mà cá nhân tôi không nghĩ là đúng vì nó khuyến khích codebase trở thành một bãi rác lớn.

Cách tiếp cận này có vẻ hơi gây tranh cãi, nhưng tôi tin rằng đây là cách đơn giản nhất để đưa ra số phiên bản phần mềm phù hợp.

10
altern

Đối với mọi phiên bản chính bạn phát hành, không có gì lạ khi có phiên bản hoạt động mà bạn gọi nó là nội bộ. Chẳng hạn, ở công việc cuối cùng của tôi, chúng tôi đã đề cập đến một phiên bản chính với quy ước đặt tên lấy cảm hứng từ Ubuntu sau đây:

[tình trạng ốm yếu] [tên động vật dị ứng]

Mà đã đặt tên như "Limp Lamprey", "Wombed Wombat" và "Asthmatic Anteater".

Hãy chắc chắn trừ khi đó là một cái tên thực sự hay mà nó không rò rỉ cho khách hàng của bạn.

8
Jesse C. Slicer

Thế hệ.Version.Revision.Build (9,99.999.9999)

Thế hệ hiếm khi thay đổi. Chỉ một bước ngoặt lớn trên sản phẩm: DOS -> Windows, tái cấu trúc hoàn chỉnh.

Phiên bản dành cho những thay đổi lớn không tương thích, chức năng mới, thay đổi trên một số mô hình cụ thể trên phần mềm, v.v.

Sửa đổi thường được thực hiện (tính năng nhỏ và sửa lỗi).

Xây dựng là thông tin nội bộ.

7
Maniero

git describe cung cấp một tiện ích mở rộng đẹp cho bất kỳ quy ước đánh số nào bạn đã chọn. Thật dễ dàng để nhúng cái này vào quá trình xây dựng/đóng gói/triển khai của bạn.

Giả sử bạn đặt tên cho phiên bản phát hành được gắn thẻ của mình là A.B.C (Major.minor.maintenance). git describe trên một cam kết nhất định sẽ tìm thấy tổ tiên được gắn thẻ gần đây nhất của cam kết, sau đó giải quyết số lần xác nhận kể từ đó và SHA1 viết tắt của cam kết:

1.2.3-164-g6f10c

Dĩ nhiên, nếu bạn thực sự ở một trong các phiên bản, bạn sẽ chỉ nhận được thẻ (1.2.3).

Điều này có lợi ích tốt đẹp là cho bạn biết chính xác bạn đã xây dựng nguồn nào, trong khi không phải tự đánh số mỗi bản dựng.

6
Cascabel

Tôi thích số phiên bản gán một số ý nghĩa ngữ nghĩa. Miễn là bạn có thể sử dụng số phiên bản để theo dõi các lỗi được báo cáo với một phiên bản cụ thể đối với các thay đổi xảy ra trong mã nguồn (và trong hệ thống quản lý hoạt động của bạn) thì có lẽ bạn đang sử dụng đúng phương pháp.

Tôi sử dụng .NET vì vậy tôi bị mắc kẹt với hệ thống đánh số phiên bản .NET nhưng tôi cố gắng đưa ra ý nghĩa ngữ nghĩa cho các số với

chính.minor.build.revision

  • chính = (lên đến dự án)
  • nhỏ = (lên đến dự án)
  • build = build number từ Hudson (bạn có thể sử dụng TeamCity hoặc TeamBuild, v.v. tại đây)
  • revision = Subversion hoặc Bazaar sửa đổi (tùy thuộc vào dự án và những gì nó sử dụng)

Chúng tôi luôn đảm bảo rằng số phiên bản của anh ấy có thể được hiển thị theo một cách nào đó (với các chương trình dựa trên bảng điều khiển hàng loạt của chúng tôi được in ra bàn điều khiển và tệp nhật ký, với các ứng dụng web nằm trên thanh menu ở trên cùng)

Bằng cách này, nếu khách hàng báo cáo sự cố, chúng tôi có thể sử dụng số phiên bản để theo dõi nếu họ đang sử dụng phiên bản mới nhất và có bao nhiêu vấn đề chúng tôi gặp phải với các phiên bản cụ thể.

Đó là tất cả về truy xuất nguồn gốc!

2
Jeffrey Cameron

Major.Minor.Public (bản dựng) [alpha/beta/Trial], chẳng hạn như "4.08c (1290)"

  • Với Major là số phiên bản chính (1, 2, 3 ...)
  • Phiên bản nhỏ là 2 chữ số nhỏ (01, 02, 03 ...). Thông thường, hàng chục chữ số được tăng lên khi chức năng mới quan trọng được thêm vào, những chức năng chỉ sửa lỗi.
  • Công khai là bản phát hành công khai của bản dựng (a, b, c, d, e), thường khác với phiên bản nhỏ nếu một phiên bản nhỏ không bao giờ được phát hành dưới dạng bản cập nhật công khai
  • xây dựng, là số xây dựng thực tế mà trình biên dịch theo dõi.
  • với TRIAL, ALPHA, BETA X hoặc RC X được thêm vào cho những trường hợp đặc biệt.
2
GrandmasterB

Chúng tôi sử dụng Major.Minor.Build # .YYMMDD [hậu tố], vì chúng tôi thường chỉ thực hiện một bản dựng sản xuất vào bất kỳ ngày cụ thể nào (nhưng sử dụng hậu tố ab/c/d nếu có nhiều hơn một) và YYMMDD cung cấp cho người dùng/khách hàng/quản lý một dấu hiệu về tuổi của bản dựng, trong đó 6.3.1389 thì không.

Số lượng lớn tăng với các tính năng sản phẩm quan trọng (trả tiền).

Số lượng nhỏ tăng lên với các bản sửa lỗi/cải tiến (cập nhật miễn phí).

Xây dựng luôn tăng; không phải tất cả các tàu đóng, vì vậy nó không phải là một sự tiến triển tuyến tính.

1
JBRWilkinson