Bỏ để qua phần nội dung

Đóng góp cho Ultralytics Mã nguồn mở YOLO Kho

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ẽ nâng cao dự án và mang lại lợi ích cho toàn bộ 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

  1. Quy tắc ứng xử
  2. Đóng góp thông qua Pull Request
  3. Báo cáo lỗi
  4. Giấy phép
  5. Kết thúc

Quy tắc ứng xử

Tất cả những người đóng góp phải tuân thủ 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.

Đó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. Để hợp lý hóa quy trình xem xét, vui lòng làm theo các nguyên tắc sau:

  1. Fork kho lưu trữ: Fork Ultralytics YOLO kho lưu trữ vào tài khoản GitHub của bạn.

  2. 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.

  3. Thực hiện thay đổi: Đả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 lỗi hoặc cảnh báo mới.

  4. 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 chúng hoạt động như mong đợi và không đưa ra các vấn đề mới.

  5. Cam kết thay đổi: Cam kết thay đổi bằng thông điệp cam kết mô tả. Bao gồm mọi số vấn đề có liên quan trong tin nhắn cam kết của bạn.

  6. Tạo pull request: Tạo pull request từ forked repository của bạn đến main Ultralytics YOLO Kho. Cung cấp giải thích rõ ràng 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ể chấp nhận 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). Tài liệu 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ệ 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:

I have read the CLA Document and I sign the CLA

Google-Kiểu Docstrings

Khi thêm các hàm hoặc lớp mới, hãy bao gồm một Google-style docstring để cung cấp tài liệu rõ ràng và súc tích cho các nhà phát triển khác. Điều này giúp đảm bảo đóng góp của bạn dễ hiểu và dễ duy trì.

Ví dụ về Docstrings

Ví dụ này cho thấy một Google-kiểu docstring. 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 cho thấy cả một Google-style docstring và argument và return type gợi ý, mặc dù cả hai đều không bắt buộc; 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.

def example_small_function(arg1: int, arg2: int = 4) -> bool:
    """Example function that demonstrates a single-line docstring."""
    return arg1 == arg2

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 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 lại đầu ra của GitHub Actions 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 mong muốn được nhìn thấy ý tưởng của bạn trong thực tế và đánh giá cao cam kết của bạn để 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ẻ! 🚀🌟

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ở giúp 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 mang lại cơ hội hợp 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 thông tin 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. Điều này sẽ đảm bảo đóng góp của bạn được cấp phép đúng cách 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 pull request của bạn đề cập:

I have read the CLA Document and I sign the CLA

Để 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 và súc tích cho các hàm và lớp, tăng cường 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 YOLO, tuân thủ Google-style docstrings đảm bảo rằng các bổ sung của bạn dễ hiểu và được ghi chép đầy đủ. Để 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 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 lớp lót, 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 kết quả đầu ra của Hành động GitHub và giải quyết mọi vấn đề. Để 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 .



Đã tạo 2023-11-12, Cập nhật 2024-07-04
Tác giả: glenn-jocher (8), UltralyticsAssistant (1)

Ý kiến