Làm thế nào để bạn đóng góp các bản vá cho lõi Drupal?


10

Quá trình thích hợp để đóng góp các bản vá cho lõi Drupal là gì?

Giả sử tôi tìm thấy một lỗi trong lõi Drupal, sửa nó và tạo một bản vá . Làm thế nào để tôi gửi nó?

Nếu lỗi trong Drupal 7, tôi có phải sửa nó trong Drupal 8 không, và gửi hai bản vá? Điều này cũng áp dụng cho các lỗi / cải tiến tài liệu?

Có phải tất cả các bản vá cũng yêu cầu một bài kiểm tra đơn vị?


3
Hiện tại, tôi đang tìm kiếm câu trả lời giả sử rằng tôi đã có tài khoản trên drupal.org, biết cách sử dụng git, biết cách kiểm tra lõi và biết cách tạo các bản vá git. Khi chúng tôi có câu trả lời tốt, chúng tôi có thể chú thích hoặc thêm câu trả lời để phác thảo quá trình này.
mpdon Arena

Vì đây là phản hồi cho một vấn đề mà một người duy trì cốt lõi nêu ra tại meta.drupal.stackexchange.com/questions/2325 , thông báo bài viết sẽ được thi hành. Chúng tôi cần một bản tóm tắt tốt về quy trình, đặc biệt là về các câu hỏi trên. Câu trả lời chỉ cần liên kết ra các trang khác sẽ bị bỏ qua và / hoặc bị xóa. Tôi hy vọng câu hỏi này sẽ phục vụ như một tài nguyên mà chúng ta có thể hướng người dùng DA đến khi họ tìm thấy một vấn đề cốt lõi.
mpdon Arena

Câu trả lời:


6

Nếu lỗi trong Drupal 7, tôi có phải sửa nó trong Drupal 8 không, và gửi hai bản vá?

Nếu lỗi có trong phiên bản đang được phát triển (trong trường hợp này là Drupal 8) và phiên bản trước (Drupal 7), thì trước tiên, lỗi này phải được sửa phiên bản hiện đang phát triển, sau đó trên phiên bản trước.

Nếu lỗi không có trong phiên bản phát triển mới nhất, ví dụ vì lỗi dành cho chức năng đã bị xóa hoặc đã bị thay đổi, thì nên cung cấp bản vá cho phiên bản trước khi phát triển.

Quy trình làm việc được tuân theo là:

  • Đầu tiên, bản vá được tạo và gửi để đánh giá, cho phiên bản mới nhất, ngay cả khi vẫn đang được phát triển (chẳng hạn như trong trường hợp của Drupal 8)
  • Khi bản vá đó được áp dụng cho Drupal, một bản vá áp dụng cho phiên bản trước được tạo và gửi để đánh giá

Bạn có thể tạo các bản vá cho hai phiên bản Drupal cùng một lúc, nhưng vì bản vá cho phiên bản Drupal mới nhất có thể yêu cầu thay đổi, tốt hơn là nên làm việc trên bản vá cho phiên bản hiện đang phát triển, hơn là làm việc trên hai bản vá khác nhau mà cả hai yêu cầu bị thay đổi.

Xem thêm: Chính sách Backport .

Điều này cũng áp dụng cho các lỗi / cải tiến tài liệu?

Vâng, nó làm. Cũng trong trường hợp này, nếu phiên bản hiện được phát triển đã loại bỏ chức năng / phương thức mà tài liệu đang đề cập đến, thì bản vá cần phải được cung cấp cho phiên bản trước.

Có phải tất cả các bản vá cũng yêu cầu một bài kiểm tra đơn vị?

Nếu bản vá dành cho tài liệu, nó không yêu cầu kiểm tra. Bot thử nghiệm chạy trên http://qa.drupal.org kiểm tra mã Drupal sau khi bản vá được áp dụng; nếu bản vá giới thiệu lỗi cú pháp (ví dụ vì bình luận được đóng trước khi cần), thì bot kiểm tra sẽ báo cáo lỗi về bản vá trước khi chạy thử.

Nếu bản vá dành cho một tính năng mới, thì các bài kiểm tra là bắt buộc.

Nếu bản vá là để sửa lỗi, thì các thử nghiệm có thể được yêu cầu từ các nhà bảo trì, nếu chưa có thử nghiệm kiểm tra một tính năng cụ thể. Thử nghiệm nói chung là cần thiết để tránh giới thiệu lại cùng một lỗi khi thay đổi trong cùng một mã. Nếu lỗi chỉ là một biến được khởi tạo, nhưng không bao giờ được sử dụng từ một hàm / phương thức, thì rất có thể các bài kiểm tra là không bắt buộc.


Vấn đề tương tự có thể chứa các bản vá cho nhiều phiên bản cốt lõi không?
mpdon Arena

1
Nếu sự cố áp dụng cho nhiều phiên bản, nó có thể chứa các bản vá cho mọi phiên bản quan tâm.
kiamlaluno

Có phải luôn luôn là trường hợp bản vá D8 được gửi trước, sau đó là phiên bản D7? Hoặc có những trường hợp nộp cả hai cùng một lúc là phù hợp?
mpdon Arena

Bạn có thể gửi các bản vá cho hai phiên bản khác nhau, nhưng bản vá được áp dụng đầu tiên là cho phiên bản mới nhất. Tốt hơn là tạo bản vá đầu tiên cho phiên bản mới hơn, vì bản vá có thể yêu cầu thay đổi.
kiamlaluno

3

Mỗi trang dự án trên drupal.org đều có tab "Kiểm soát phiên bản" ở trên cùng. Nó không chỉ cung cấp một cái nhìn tổng quan tuyệt vời về tất cả các tùy chọn kho lưu trữ mã cho dự án cụ thể, tất cả các ví dụ lệnh git cũng được điều chỉnh cho dự án. Bạn thậm chí có thể tương tác thay đổi nó thành một phiên bản cụ thể.

Đối với lõi Drupal, bạn tìm thấy trang đó trên http://drupal.org/project/drupal/git-inemony

Sau đó, khi bạn đã tạo bản vá của mình, bạn chỉ cần đính kèm tệp bản vá vào một vấn đề giải thích những gì bạn vá.

Hai điều quan trọng cần chỉ ra là đảm bảo bản vá kết thúc bằng ".patch" và đặt trạng thái thành "Cần xem lại". Điều này để testbot sẽ chú ý đến nó và tự động chạy thử nghiệm của nó.

Mã mới luôn cần phải đi kèm với các bài kiểm tra .

Lưu ý rằng điều này có thể tắt bởi các dự án và một số làm. Đối với lõi Drupal, mặc dù vậy tất cả các bản vá sẽ được kiểm tra.

Bạn có thể tìm thêm tại http://drupal.org/contribution/development .


Đây là một khởi đầu tốt.
mpdon Arena
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.