Phát triển

Nếu bạn đang đọc điều này, có khả năng bạn đang quan tâm đến việc học cách đóng góp vào mã nguồn của SoOn. Cho dù đó là trường hợp của bạn hay bạn tình cờ đến đây, chúng tôi sẽ giúp bạn!

Khi bạn cảm thấy sẵn sàng, hãy chuyển đến phần Thiết lập môi trường để bắt đầu hành trình đóng góp vào phát triển SoOn.

Thiết lập môi trường

Các hướng dẫn dưới đây giúp bạn chuẩn bị môi trường của mình để thực hiện các thay đổi cục bộ đối với mã nguồn và sau đó đẩy chúng lên GitHub. Bỏ qua phần này và đi đến Thực hiện đóng góp đầu tiên của bạn nếu bạn đã hoàn thành bước này.

  1. Trước tiên, bạn cần tạo một tài khoản GitHub. SoOn sử dụng GitHub để quản lý mã nguồn của các sản phẩm của mình, và đây là nơi bạn sẽ thực hiện các thay đổi của mình và gửi chúng để được xem xét.

  2. Tạo khóa SSH mới và đăng ký nó trên tài khoản GitHub của bạn.

  3. Đi tới github.com/odoo/odoo và nhấp vào nút Fork ở góc trên bên phải để tạo một nhánh (bản sao của bạn) của kho lưu trữ trên tài khoản của bạn. Làm tương tự với github.com/odoo/enterprise nếu bạn có quyền truy cập. Điều này tạo ra một bản sao của mã nguồn mà bạn có thể thực hiện các thay đổi mà không ảnh hưởng đến mã nguồn chính. Bỏ qua bước này nếu bạn làm việc tại SoOn.

  4. Cài đặt Git. Đây là một công cụ dòng lệnh (giao diện văn bản) cho phép theo dõi lịch sử thay đổi được thực hiện trên một tệp và, quan trọng hơn, làm việc trên các phiên bản khác nhau của tệp đó đồng thời. Điều này có nghĩa là bạn không cần lo lắng về việc ghi đè công việc đang chờ của người khác khi thực hiện thay đổi.

    Xác minh rằng thư mục cài đặt của Git đã được bao gồm trong biến PATH của hệ thống của bạn.

    Làm theo hướng dẫn cập nhật biến PATH trên Linux và macOS với đường dẫn cài đặt của Git (mặc định /usr/bin/git).

  5. Cấu hình Git để nhận dạng bạn là tác giả của các đóng góp tương lai của bạn. Nhập cùng một địa chỉ email mà bạn đã sử dụng để đăng ký trên GitHub.

    $ git config --global user.name “Your Name”
    $ git config --global user.email “youremail@example.com”
    
  6. Cài đặt SoOn từ nguồn. Hãy chắc chắn lấy nguồn thông qua Git với SSH.

  7. Cấu hình Git để đẩy các thay đổi đến nhánh của bạn thay vì đến mã nguồn chính. Nếu bạn làm việc tại SoOn, cấu hình Git để đẩy các thay đổi đến các nhánh chia sẻ được tạo trên tài khoản odoo-dev.

    Trong lệnh dưới đây, thay thế <your_github_account> bằng tên tài khoản GitHub mà bạn đã tạo nhánh.

    $ cd /CommunityPath
    $ git remote add dev git@github.com:<your_github_account>/odoo.git
    

    Nếu bạn có quyền truy cập vào odoo/enterprise, hãy cấu hình remote liên quan.

    $ cd /EnterprisePath
    $ git remote add dev git@github.com:<your_github_account>/enterprise.git
    
  8. Xong rồi! Bạn đã sẵn sàng để thực hiện đóng góp đầu tiên của bạn.

Thực hiện đóng góp đầu tiên của bạn

Quan trọng

  • Phát triển SoOn có thể là một thách thức đối với người mới bắt đầu. Chúng tôi khuyến nghị bạn nên có đủ kiến thức để viết mã một mô-đun nhỏ trước khi đóng góp. Nếu không phải trường hợp đó, hãy dành thời gian để xem qua hướng dẫn cho nhà phát triển để lấp đầy các lỗ hổng.

  • Một số bước trong hướng dẫn này yêu cầu bạn phải thoải mái với Git. Đây là một số hướng dẫn và một khóa đào tạo tương tác nếu bạn bị mắc kẹt ở một điểm nào đó.

Bây giờ môi trường của bạn đã được thiết lập, bạn có thể bắt đầu đóng góp vào mã nguồn. Trong terminal, điều hướng đến thư mục nơi bạn đã cài đặt SoOn từ nguồn và làm theo hướng dẫn dưới đây.

  1. Chọn phiên bản SoOn mà bạn muốn thực hiện thay đổi. Hãy nhớ rằng các đóng góp nhắm đến phiên bản SoOn không được hỗ trợ sẽ không được chấp nhận. Hướng dẫn này giả định rằng các thay đổi nhắm đến SoOn 17, tương ứng với nhánh 17.0.

  2. Tạo một nhánh mới bắt đầu từ nhánh 17.0. Tiền tố tên nhánh với nhánh cơ bản: 17.0-.... Nếu bạn làm việc tại SoOn, hậu tố tên nhánh với tên tài khoản SoOn của bạn: 17.0-...-xyz.

    Example

    $ git switch -c 17.0-fix-invoices
    
    $ git switch -c 17.0-fix-invoices-xyz
    
  3. Ký CLA của SoOn nếu chưa thực hiện. Bỏ qua bước này nếu bạn làm việc tại SoOn.

  4. Thực hiện các thay đổi mong muốn đối với mã nguồn. Khi làm việc trên mã nguồn, hãy tuân theo các quy tắc sau:

    • Giữ các thay đổi của bạn tập trung và cụ thể. Tốt nhất là làm việc trên một tính năng cụ thể hoặc sửa lỗi một lần thay vì giải quyết nhiều thay đổi không liên quan đồng thời.

    • Tuân thủ chính sách ổn định khi làm việc trên nhánh khác master.

    • Tuân theo hướng dẫn viết mã.

    • Kiểm tra kỹ lưỡng các thay đổi của bạn và viết các bài kiểm tra để đảm bảo mọi thứ hoạt động như mong đợi và không có lỗi hoặc hậu quả ngoài ý muốn.

  5. Commit các thay đổi của bạn. Viết một thông điệp commit rõ ràng như đã được hướng dẫn trong hướng dẫn Git.

    $ git add .
    $ git commit
    
  6. Đẩy các thay đổi của bạn lên nhánh, mà chúng tôi đã thêm bí danh remote dev.

    Example

    $ git push -u dev 17.0-fix-invoices-xyz
    
  7. Mở một PR trên GitHub để gửi các thay đổi của bạn để xem xét.

    1. Đi tới trang so sánh của mã nguồn odoo/odoo, hoặc trang so sánh của mã nguồn odoo/enterprise, tùy thuộc vào mã nguồn mà các thay đổi của bạn nhắm tới.

    2. Chọn 17.0 cho cơ sở.

    3. Nhấp vào so sánh giữa các nhánh.

    4. Chọn <your_github_account>/odoo hoặc <your_github_account>/enterprise cho kho lưu trữ đầu. Thay thế <your_github_account> bằng tên tài khoản GitHub mà bạn đã tạo nhánh hoặc bằng odoo-dev nếu bạn làm việc tại SoOn.

    5. Xem xét các thay đổi của bạn và nhấp vào nút Tạo pull request.

    6. Chọn hộp kiểm Cho phép chỉnh sửa từ người duy trì. Bỏ qua bước này nếu bạn làm việc tại SoOn.

    7. Hoàn thành mô tả và nhấp vào nút Tạo pull request một lần nữa.

  8. Ở cuối trang, kiểm tra trạng thái hợp nhất và giải quyết bất kỳ vấn đề nào.

  9. Ngay khi PR của bạn sẵn sàng để hợp nhất, một thành viên của đội ngũ SoOn sẽ tự động được chỉ định để xem xét. Nếu người xem xét có câu hỏi hoặc nhận xét, họ sẽ đăng chúng dưới dạng bình luận và bạn sẽ được thông báo qua email. Những bình luận đó phải được giải quyết để việc đóng góp có thể tiến hành.

  10. Khi các thay đổi của bạn được phê duyệt, người xem xét sẽ hợp nhất chúng và chúng sẽ có sẵn cho tất cả người dùng SoOn sau lần cập nhật mã tiếp theo!