Bỏ qua để đến nội dung

Quy ước changelog

Trang này xác định quy ước mà mọi kho NextPDF công khai tuân theo khi ghi nhận thay đổi và phát hành phiên bản. Đây là tài liệu tham chiếu về quy ước; tài liệu này không xác định hành vi của gói. Ghi chú phát hành theo từng gói và từng phiên bản nằm trong tệp CHANGELOG.md riêng của từng kho. Những quy tắc chung này giúp bản tóm tắt changelog xuyên kho nhất quán và không rò rỉ thông tin.

Mọi dòng tiêu đề commit đều dùng type(scope): description. type là một trong các giá trị sau:

LoạiÝ nghĩaHướng tới người dùngTác động đến phiên bản
featKhả năng mớităng minor
fixSửa hành vităng patch
perfCải thiện hiệu năng mà không thay đổi hành vităng patch
refactorTái cấu trúc nội bộ không tạo ra thay đổi quan sát đượckhôngkhông có
docsChỉ tài liệukhôngkhông có
testChỉ kiểm thửkhôngkhông có
build / ciChỉ build hoặc pipelinekhôngkhông có
choreBảo trì, phụ thuộc hoặc công cụkhôngkhông có
revertHoàn tác một commit trước đótùy trường hợptùy trường hợp

Thay đổi gây phá vỡ tương thích dùng dấu ! sau loại hoặc phạm vi (feat(api)!: …) hoặc dùng chân trang BREAKING CHANGE:. Cả hai dấu hiệu này đều nâng phiên bản major theo Semantic Versioning. Hãy ghi lại bản sửa liên quan đến bảo mật sao cho bản sửa đó có thể xuất hiện trong cột Security của bản tóm tắt xuyên kho.

Việc tăng phiên bản được xác định theo cơ chế cố định. Một bản phát hành có bất kỳ thay đổi gây phá vỡ tương thích nào là một bản major. Nếu không, bản phát hành có bất kỳ feat nào là một bản minor. Nếu không, bản phát hành có bất kỳ fix hoặc perf nào là một bản patch. Các gói trước 1.0 có thể tăng minor cho thay đổi gây phá vỡ tương thích theo SemVer §4. Commit vẫn mang dấu hiệu phá vỡ tương thích để bản tóm tắt luôn chính xác.

Tệp CHANGELOG.md của từng kho tuân theo Keep a Changelog 1.1.0: các mục được nhóm theo phiên bản đã phát hành và đặt dưới các nhóm Added, Changed, Deprecated, Removed, FixedSecurity. Một mục [Unreleased] có thể chứa các ghi chú đang được thực hiện trong kho, nhưng bản tóm tắt xuyên kho chỉ tính các phiên bản đã gắn thẻ và đã phát hành. Công việc chưa phát hành không bao giờ xuất hiện trong chỉ mục công khai.

Cách suy ra bản tóm tắt xuyên kho (và giữ bản tóm tắt không rò rỉ thông tin)

Phần tiêu đề “Cách suy ra bản tóm tắt xuyên kho (và giữ bản tóm tắt không rò rỉ thông tin)”

Bảng tóm tắt trên chỉ mục changelog được tạo bằng cách đọc lịch sử Conventional Commits của từng kho tại thẻ phát hành mới nhất ở chế độ chỉ đọc, rồi đếm các danh mục. Các quy tắc suy ra được cố ý giới hạn chặt để chi tiết nội bộ không lọt ra ngoài:

  1. Số đếm, không phải nội dung. Chỉ báo cáo số lượng commit theo từng loại hướng tới người dùng. Không hiển thị dòng tiêu đề, phần thân, chân trang hay mã băm nào của commit.
  2. Chỉ các loại hướng tới người dùng. docs, test, ci, chorerefactor bị loại trừ vì chúng không thay đổi điều gì mà người dùng của gói có thể quan sát được.
  3. Chỉ những bản đã phát hành. Một commit chỉ được tính sau khi commit đó trở thành một phần của bản phát hành đã gắn thẻ của một gói công khai.
  4. Không có định danh nào. Các tham chiếu nội bộ tới issue, ticket, chu kỳ, đợt hoặc hạng mục công việc có thể xuất hiện trong phạm vi commit riêng tư sẽ không bao giờ được hiển thị ra ngoài, vì bản thân phần văn bản phạm vi không bao giờ được hiển thị. Chỉ loại được đọc.
  5. Không ghi nhận đóng góp tự động. Các dòng trailer ghi nhận tự động của người đóng góp không được đọc hay hiển thị.

Vì vậy, changelog công khai là bản tóm tắt theo danh mục kèm liên kết tới tệp CHANGELOG.md riêng của từng gói, chứ không phải nguồn cấp commit tổng hợp. Bản tóm tắt được thiết kế ngay từ đầu để không rò rỉ thông tin nội bộ. Nội dung phát hành chính thức luôn nằm cùng gói sở hữu nội dung đó.