Phát triển¶
Nếu bạn đang đọc nội dung này, rất có thể bạn đang quan tâm đến việc tìm hiểu cách đóng góp cho mã nguồn của Odoo. Dù đúng là như vậy hay bạn tình cờ lạc đến đây, chúng tôi sẽ hướng dẫn bạn đầy đủ!
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 quá trình phát triển Odoo.
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 để thực hiện các thay đổi cục bộ đối với mã nguồn rồi đẩy (push) chúng lên GitHub. Hãy bỏ qua phần này và chuyển đến Thực hiện đóng góp đầu tiên của bạn nếu bạn đã hoàn tất bước này.
Trước tiên, bạn cần tạo một tài khoản GitHub. Odoo sử dụng GitHub để quản lý mã nguồn của các sản phẩm, và đây cũng là nơi bạn sẽ thực hiện các thay đổi và gửi chúng để được xem xét (review).
Tạo một khóa SSH mới và đăng ký nó vào tài khoản GitHub của bạn.
Truy cập github.com/odoo/odoo và nhấp vào nút Fork ở góc trên bên phải để tạo một fork (bản sao riêng của bạn) của repository trên tài khoản của bạn. Thực hiện tương tự với github.com/odoo/enterprise nếu bạn có quyền truy cập vào đó. Việc này tạo ra một bản sao của mã nguồn mà bạn có thể chỉnh sửa 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 Odoo.
Cài đặt Git. Đây là một công cụ dòng lệnh (a text interface) cho phép theo dõi lịch sử các thay đổi được thực hiện đối với một tệp và, quan trọng hơn, làm việc trên nhiều phiên bản khác nhau của tệp đó cùng một lúc. Điều này có nghĩa là bạn không cần phải lo lắng về việc ghi đè lên công việc đang chờ xử lý của người khác khi thực hiện thay đổi.
Kiểm tra rằng thư mục cài đặt của Git đã được thêm vào biến
PATHcủa hệ thống.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 là
/usr/bin/git).Làm theo hướng dẫn cập nhật biến PATH trên Windows với đường dẫn cài đặt của Git (mặc định là
C:\Program Files\Git).Cấu hình Git để xác định bạn là tác giả của những đóng góp trong tương lai. Nhập cùng đị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"
Install Odoo from the sources. Make sure to fetch the sources through Git with SSH.
Cấu hình Git để đẩy (push) các thay đổi lên (các) fork của bạn thay vì lên mã nguồn chính. Nếu bạn làm việc tại Odoo, hãy cấu hình Git để đẩy các thay đổi lên các fork dùng chung đượ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 (các) fork.$ 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 tương tự.$ cd /EnterprisePath $ git remote add dev git@github.com:<your_github_account>/enterprise.git
$ cd /CommunityPath $ git remote add dev git@github.com:odoo-dev/odoo.git $ git remote set-url --push origin you_should_not_push_on_this_repository $ cd /EnterprisePath $ git remote add dev git@github.com:odoo-dev/enterprise.git $ git remote set-url --push origin you_should_not_push_on_this_repository
Vậy là xong! Bạn đã sẵn sàng để thực hiện đóng góp đầu tiên.
Thực hiện đóng góp đầu tiên của bạn¶
Quan trọng
Phát triển Odoo 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 bạn nên có đủ kiến thức để viết mã cho một module nhỏ trước khi đóng góp. Nếu chưa đạt được điều đó, hãy dành thời gian tìm hiểu các hướng dẫn dành cho lập trình viên để lấp đầy những khoảng trống kiến thức.
Một số bước trong hướng dẫn này yêu cầu bạn phải quen thuộc với Git. Dưới đâ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 gặp khó khăn ở bước nào đó.
Giờ đây khi 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 một terminal, di chuyển đến thư mục nơi bạn đã cài đặt Odoo từ mã nguồn và làm theo hướng dẫn dưới đây.
Choose the version of Odoo to which you want to make changes. Keep in mind that contributions targeting an unsupported version of Odoo are not accepted. This guide assumes that the changes target Odoo 17, which corresponds to branch
17.0.Tạo một branch mới bắt đầu từ branch 17.0. Thêm tiền tố branch cơ sở vào tên branch:
17.0-.... Nếu bạn làm việc tại Odoo, thêm hậu tố là tên viết tắt Odoo của bạn vào tên branch:17.0-...-xyz.Example
$ git switch -c 17.0-fix-invoices
$ git switch -c 17.0-fix-invoices-xyz
Ký Odoo CLA nếu bạn chưa thực hiện. Bỏ qua bước này nếu bạn làm việc tại Odoo.
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ữ cho các thay đổi của bạn tập trung và cụ thể. Tốt nhất là chỉ nên xử lý một tính năng hoặc một bản sửa lỗi cụ thể tại một thời điểm, thay vì thực hiện đồng thời nhiều thay đổi không liên quan.
Tuân thủ chính sách stable khi làm việc trên một branch khác
master.Tuân theo hướng dẫn viết mã.
Kiểm thử kỹ lưỡng các thay đổi của bạn và viết các unit test để đảm bảo mọi thứ hoạt động như mong đợi và không có sự thoái lui (regression) hay hậu quả ngoài ý muốn nào.
Commit các thay đổi của bạn. Viết một commit message rõ ràng theo hướng dẫn trong nguyên tắc Git.
$ git add . $ git commit
Đẩy (push) thay đổi của bạn lên fork của bạn, mà chúng ta đã thêm bí danh remote
dev.Example
$ git push -u dev 17.0-fix-invoices-xyz
Mở một PR trên GitHub để gửi các thay đổi của bạn để xem xét.
Truy cập trang so sánh (compare) của mã nguồn odoo/odoo, hoặc trang so sánh (compare) 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 đến.
Chọn 17.0 làm base.
Nhấp vào compare across forks.
Chọn <your_github_account>/odoo hoặc <your_github_account>/enterprise cho head repository. Thay thế
<your_github_account>bằng tên tài khoản GitHub mà bạn đã tạo fork, hoặc bằng odoo-dev nếu bạn làm việc tại Odoo.Xem lại các thay đổi của bạn và nhấp vào nút Create pull request.
Đánh dấu vào ô Allow edits from maintainer. Bỏ qua bước này nếu bạn làm việc tại Odoo.
Hoàn thành phần mô tả và nhấp lại vào nút Create pull request.
Ở cuối trang, kiểm tra trạng thái khả năng merge và xử lý mọi vấn đề phát sinh.
Ngay khi PR của bạn sẵn sàng để merge, một thành viên của đội ngũ Odoo sẽ tự động được phân công để 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 thì đóng góp mới có thể tiếp tục.
Khi các thay đổi của bạn được chấp thuận, người xét duyệt (reviewer) sẽ merge chúng và chúng sẽ có sẵn cho tất cả người dùng Odoo sau lần cập nhật mã nguồn tiếp theo!