Đóng góp cho Ultralytics Dự án mã nguồn mở
Chào mừng! Chúng tôi rất vui vì bạn đang cân nhắc đóng góp cho Ultralyticscác dự án mã nguồn mở . Sự tham gia của bạn không chỉ giúp nâng cao chất lượng kho lưu trữ của chúng tôi mà còn mang lại lợi ích cho toàn bộ cộng đồng. Hướng dẫn này cung cấp các nguyên tắc rõ ràng và các phương pháp hay nhất để giúp bạn bắt đầu.
Mục lục
Quy tắc ứng xử
Để đảm bảo một môi trường thân thiện và hòa nhập cho tất cả mọi người, tất cả những người đóng góp phải tuân thủ Quy tắc Ứng xử của chúng tôi. Tôn trọng, tử tế và chuyên nghiệp là trọng tâm của cộng đồng chúng tôi.
Đóng góp thông qua Pull Request
Chúng tôi đánh giá rất cao những đóng góp dưới dạng yêu cầu kéo. Để làm cho quá trình xem xét suôn sẻ nhất có thể, vui lòng làm theo các bước sau:
-
Fork kho lưu trữ: Bắt đầu bằng cách fork Ultralytics YOLO kho lưu trữ vào tài khoản GitHub của bạn.
-
Tạo chi nhánh: Tạo một nhánh mới trong kho lưu trữ phân nhánh của bạn với tên mô tả rõ ràng phản ánh các thay đổi của bạn.
-
Thực hiện thay đổi của bạn: Đảm bảo mã của bạn tuân thủ các nguyên tắc về kiểu của dự án và không đưa ra bất kỳ lỗi hoặc cảnh báo mới nào.
-
Kiểm tra các thay đổi của bạn: Trước khi gửi, hãy kiểm tra cục bộ các thay đổi của bạn để xác nhận chúng hoạt động như mong đợi và không gây ra bất kỳ sự cố mới nào.
-
Cam kết thay đổi của bạn: Cam kết thay đổi của bạn với một thông điệp cam kết ngắn gọn và mô tả. Nếu thay đổi của bạn giải quyết một vấn đề cụ thể, hãy bao gồm số vấn đề trong thông báo cam kết của bạn.
-
Tạo pull request: Gửi yêu cầu kéo từ kho lưu trữ phân nhánh của bạn đến kho chính Ultralytics YOLO Kho. Cung cấp giải thích rõ ràng và chi tiết về những thay đổi của bạn và cách chúng cải thiện dự án.
Ký kết CLA
Trước khi chúng tôi có thể hợp nhất yêu cầu kéo của bạn, bạn phải ký Thỏa thuận cấp phép cộng tác viên (CLA) của chúng tôi. Thỏa thuận pháp lý này đảm bảo rằng các đóng góp của bạn được cấp phép hợp lệ, cho phép dự án tiếp tục được phân phối theo AGPL-3.0 giấy phép.
Sau khi gửi yêu cầu pull của bạn, bot CLA sẽ hướng dẫn bạn qua quy trình ký. Để ký CLA, chỉ cần thêm một bình luận trong PR của bạn nêu rõ:
Google-Kiểu Docstrings
Khi thêm các hàm hoặc lớp mới, vui lòng bao gồm Google-kiểu docstrings. Các chuỗi tài liệu này cung cấp tài liệu rõ ràng, được tiêu chuẩn hóa để giúp các nhà phát triển khác hiểu và duy trì mã của bạn.
Ví dụ về Docstrings
Ví dụ này minh họa một Google-kiểu docstring. Đảm bảo rằng cả đầu vào và đầu ra types
luôn được đặt trong ngoặc đơn, ví dụ: (bool)
.
def example_function(arg1, arg2=4):
"""
Example function demonstrating Google-style docstrings.
Args:
arg1 (int): The first argument.
arg2 (int): The second argument, with a default value of 4.
Returns:
(bool): True if successful, False otherwise.
Examples:
>>> result = example_function(1, 2) # returns False
"""
if arg1 == arg2:
return True
return False
Ví dụ này bao gồm cả một Google-style docstring và gõ gợi ý cho các đối số và trả về, mặc dù sử dụng một trong hai độc lập cũng được chấp nhận.
def example_function(arg1: int, arg2: int = 4) -> bool:
"""
Example function demonstrating Google-style docstrings.
Args:
arg1: The first argument.
arg2: The second argument, with a default value of 4.
Returns:
True if successful, False otherwise.
Examples:
>>> result = example_function(1, 2) # returns False
"""
if arg1 == arg2:
return True
return False
Đối với các hàm nhỏ hơn hoặc đơn giản hơn, một chuỗi docstring một dòng có thể là đủ. Chuỗi tài liệu phải sử dụng ba dấu ngoặc kép, là một câu hoàn chỉnh, bắt đầu bằng chữ in hoa và kết thúc bằng dấu chấm.
Kiểm tra CI hành động GitHub
Tất cả các pull request phải vượt qua các bài kiểm tra GitHub Actions Continuous Integration (CI) trước khi chúng có thể được hợp nhất. Các thử nghiệm này bao gồm lớp lót, kiểm tra đơn vị và các kiểm tra khác để đảm bảo rằng các thay đổi của bạn đáp ứng các tiêu chuẩn chất lượng của dự án. Xem xét đầu ra CI và giải quyết mọi vấn đề phát sinh.
Báo cáo lỗi
Chúng tôi đánh giá cao các báo cáo lỗi vì chúng giúp chúng tôi duy trì chất lượng dự án của mình. Khi báo cáo lỗi, vui lòng cung cấp Ví dụ có thể tái tạo tối thiểu—một ví dụ mã đơn giản, rõ ràng giúp tái tạo vấn đề một cách nhất quán. Điều này cho phép chúng tôi nhanh chóng xác định và giải quyết vấn đề.
Giấy phép
Ultralytics sử dụng Giấy phép Công cộng GNU Affero v3.0 (AGPL-3.0) cho kho lưu trữ của nó. Giấy phép này thúc đẩy tính cởi mở, minh bạch và cải tiến hợp tác trong phát triển phần mềm. Nó đảm bảo rằng tất cả người dùng có quyền tự do sử dụng, sửa đổi và chia sẻ phần mềm, thúc đẩy một cộng đồng hợp tác và đổi mới mạnh mẽ.
Chúng tôi khuyến khích tất cả những người đóng góp làm quen với các điều khoản của AGPL-3.0 giấy phép đóng góp hiệu quả và đạo đức cho Ultralytics cộng đồng mã nguồn mở.
Kết thúc
Cảm ơn bạn đã quan tâm đóng góp cho UltralyticsMã nguồn mở YOLO Dự án. Sự tham gia của bạn là điều cần thiết trong việc định hình tương lai của phần mềm của chúng tôi và xây dựng một cộng đồng sôi động của sự đổi mới và hợp tác. Cho dù bạn đang nâng cao mã, báo cáo lỗi hay đề xuất các tính năng mới, đóng góp của bạn là vô giá.
We're excited to see your ideas come to life and appreciate your commitment to advancing object detection technology. Together, let's continue to grow and innovate in this exciting open-source journey. Happy coding! 🚀🌟
FAQ
Tại sao tôi nên đóng góp cho Ultralytics YOLO Kho lưu trữ mã nguồn mở?
Đóng góp cho Ultralytics YOLO Kho lưu trữ mã nguồn mở cải thiện phần mềm, làm cho nó mạnh mẽ hơn và giàu tính năng hơn cho toàn bộ cộng đồng. Đóng góp có thể bao gồm cải tiến mã, sửa lỗi, cải tiến tài liệu và triển khai tính năng mới. Ngoài ra, đóng góp cho phép bạn cộng tác với các nhà phát triển và chuyên gia lành nghề khác trong lĩnh vực này, nâng cao kỹ năng và danh tiếng của chính bạn. Để biết chi tiết về cách bắt đầu, hãy tham khảo phần Đóng góp thông qua Yêu cầu kéo .
Làm cách nào để ký Thỏa thuận Cấp phép Cộng tác viên (CLA) cho Ultralytics YOLO?
Để ký Thỏa thuận cấp phép cộng tác viên (CLA), hãy làm theo hướng dẫn do bot CLA cung cấp sau khi gửi yêu cầu kéo của bạn. Quá trình này đảm bảo rằng các đóng góp của bạn được cấp phép hợp lệ theo AGPL-3.0 cấp phép, duy trì tính toàn vẹn pháp lý của dự án nguồn mở. Thêm một bình luận trong yêu cầu kéo của bạn nêu rõ:
Để biết thêm thông tin, hãy xem phần Ký CLA .
Là gì Google-style docstrings, và tại sao chúng được yêu cầu cho Ultralytics YOLO Đóng góp?
Google-style docstrings cung cấp tài liệu rõ ràng, súc tích cho các hàm và lớp, cải thiện khả năng đọc và bảo trì mã. Các chuỗi tài liệu này phác thảo mục đích, đối số và trả về giá trị của hàm với các quy tắc định dạng cụ thể. Khi đóng góp cho Ultralytics YOLOSau Google-style docstrings đảm bảo rằng các bổ sung của bạn được ghi chép đầy đủ và dễ hiểu. Để biết các ví dụ và hướng dẫn, hãy truy cập nút Google-Kiểu Docstrings phần.
Làm cách nào để đảm bảo các thay đổi của tôi vượt qua các bài kiểm tra CI của GitHub Actions?
Trước khi pull request của bạn có thể được hợp nhất, nó phải vượt qua tất cả các bài kiểm tra GitHub Actions Continuous Integration (CI). Các thử nghiệm này bao gồm linting, kiểm tra đơn vị và các kiểm tra khác để đảm bảo mã đáp ứng
các tiêu chuẩn chất lượng của dự án. Xem lại đầu ra CI và khắc phục mọi sự cố. Để biết thông tin chi tiết về quy trình CI và mẹo khắc phục sự cố, hãy xem phần Kiểm tra CI hành động GitHub .
Làm cách nào để báo cáo lỗi trong Ultralytics YOLO Kho?
Để báo cáo lỗi, hãy cung cấp Ví dụ có thể tái tạo tối thiểu rõ ràng và ngắn gọn cùng với báo cáo lỗi của bạn. Điều này giúp các nhà phát triển nhanh chóng xác định và khắc phục sự cố. Đảm bảo ví dụ của bạn là tối thiểu nhưng đủ để tái tạo vấn đề. Để biết các bước chi tiết hơn về báo cáo lỗi, hãy tham khảo phần Báo cáo lỗi .