Đóng góp cho Ultralytics Mã nguồn mở YOLO Kho
Trước hết, cảm ơn bạn đã quan tâm đóng góp cho Ultralytics Mã nguồn mở YOLO Kho! Đóng góp của bạn sẽ giúp cải thiện dự án và mang lại lợi ích cho cộng đồng. Tài liệu này cung cấp các hướng dẫn và phương pháp hay nhất để giúp bạn bắt đầu.
Mục lục
Quy tắc ứng xử
Tất cả những người đóng góp phải tuân thủ Bộ quy tắc ứng xử để đảm bảo một môi trường chào đón và hòa nhập cho tất cả mọi người.
Đóng góp thông qua Pull Request
Chúng tôi hoan nghênh các đó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ẻ hơn, vui lòng làm theo các nguyên tắc sau:
-
Fork kho lưu trữ: Fork Ultralytics YOLO kho lưu trữ vào tài khoản GitHub của riêng bạn.
-
Tạo 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ả cho các thay đổi của bạn.
-
Thực hiện thay đổi của bạn: Thực hiện các thay đổi bạn muốn đóng góp. Đảm bảo rằng các thay đổi của bạn tuân theo phong cách mã hóa của dự án và không đưa ra các lỗi hoặc cảnh báo mới.
-
Kiểm tra các thay đổi của bạn: Kiểm tra cục bộ các thay đổi của bạn để đảm bảo rằng chúng hoạt động như mong đợi và không gây ra sự cố mới.
-
Cam kết thay đổi: Cam kết thay đổi bằng thông điệp cam kết mô tả. Đảm bảo bao gồm mọi số vấn đề có liên quan trong thông báo cam kết của bạn.
-
Tạo pull request: Tạo pull request từ forked repository của bạn đến main Ultralytics YOLO Kho. Trong phần mô tả pull request, hãy giải thích rõ ràng về các 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ể chấp nhận yêu cầu kéo của bạn, bạn cần ký Thỏa thuận cấp phép cộng tác viên (CLA). Đây là một tài liệu pháp lý nêu rõ rằng bạn đồng ý với các điều khoản đóng góp cho Ultralytics YOLO Kho. CLA đảm bảo rằng các đóng góp của bạn được cấp phép hợp lệ và dự án có thể tiếp tục được phân phối theo AGPL-3.0 giấy phép.
Để ký CLA, hãy làm theo hướng dẫn được cung cấp bởi bot CLA sau khi bạn gửi PR và thêm nhận xét trong PR của bạn rằng:
Chuỗi tài liệu kiểu Google
Khi thêm các hàm hoặc lớp mới, vui lòng bao gồm chuỗi tài liệu kiểu Google để cung cấp tài liệu rõ ràng và ngắn gọn cho các nhà phát triển khác. Điều này sẽ giúp đảm bảo rằng các đóng góp của bạn dễ hiểu và dễ duy trì.
Ví dụ về Docstrings
Ví dụ này hiển thị cả chuỗi tài liệu kiểu Google. Lưu ý rằng cả đầu vào và đầu ra types
phải luôn được đặt trong ngoặc đơn, tức là (bool)
.
def example_function(arg1, arg2=4):
"""
Example function that demonstrates Google-style docstrings.
Args:
arg1 (int): The first argument.
arg2 (int): The second argument. Default value is 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 hiển thị cả chuỗi tài liệu kiểu Google và gợi ý kiểu đối số và trả về, mặc dù cả hai đều không bắt buộc, nhưng cái này có thể được sử dụng mà không cần cái kia.
def example_function(arg1: int, arg2: int = 4) -> bool:
"""
Example function that demonstrates Google-style docstrings.
Args:
arg1: The first argument.
arg2: The second argument. Default value is 4.
Returns:
True if successful, False otherwise.
Examples:
>>> result = example_function(1, 2) # returns False
"""
if arg1 == arg2:
return True
return False
Các hàm nhỏ hơn hoặc đơn giản hơn có thể sử dụng chuỗi tài liệu một dòng. Lưu ý docstring phải sử dụng 3 dấu ngoặc kép, và 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
Trước khi yêu cầu kéo của bạn có thể được hợp nhất, tất cả các bài kiểm tra Tích hợp liên tục (CI) GitHub Actions phải vượt qua. 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. Đảm bảo xem lại đầu ra của Hành động GitHub và khắc phục mọi sự cố
Báo cáo lỗi
Chúng tôi đánh giá cao các báo cáo lỗi vì chúng đóng một vai trò quan trọng trong việc duy trì chất lượng của dự án. Khi báo cáo lỗi, điều quan trọng là phải cung cấp Ví dụ có thể tái tạo tối thiểu: một ví dụ mã rõ ràng, súc tích sao chép vấn đề. Điều này giúp xác định và giải quyết lỗi nhanh chóng.
Giấy phép
Ultralytics Ôm lấy Giấy phép Công cộng GNU Affero v3.0 (AGPL-3.0) cho các kho lưu trữ của mình, thúc đẩy tính mở, minh bạch và tăng cường hợp tác trong phát triển phần mềm. Giấy phép copyleft mạnh mẽ này đảm bảo rằng tất cả người dùng và nhà phát triển giữ quyền tự do sử dụng, sửa đổi và chia sẻ phần mềm. Nó thúc đẩy sự hợp tác của cộng đồng, đảm bảo rằng mọi cải tiến vẫn có thể truy cập được cho tất cả mọi người.
Người dùng và nhà phát triển được khuyến khích tự làm quen với các điều khoản của AGPL-3.0 đó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 Ultralytics Mã nguồn mở YOLO Dự án. Sự tham gia của bạn là rất quan trọng trong việc định hình tương lai của phần mềm của chúng tôi và thúc đẩy một cộng đồng đổi mới và hợp tác. Cho dù bạn đang cải thiện mã, báo cáo lỗi hay đề xuất các tính năng, đóng góp của bạn đều tạo ra tác động đáng kể.
Chúng tôi rất mong muốn thấy ý tưởng của bạn hoạt động và đánh giá cao cam kết của bạn trong việc thúc đẩy công nghệ phát hiện đối tượng. Hãy tiếp tục phát triển và đổi mới cùng nhau trong hành trình mã nguồn mở thú vị này. Mã hóa vui vẻ! 🚀🌟