Giới thiệu
Trước khi bắt tay vào phát triển, chúng tôi mong bạn hiểu rõ những điều sau:- Overleaf được phát triển chính thức trong một repository nội bộ, và phiên bản cộng đồng được công bố tại overleaf/overleaf. Một copybot chịu trách nhiệm đồng bộ mã nguồn giữa repository nội bộ và repository công khai.
- Ayaka-notes/overleaf-pro là một bản fork của Overleaf cộng đồng. Chúng tôi mong dự án này có thể duy trì lâu dài, vì vậy hãy tuân thủ các quy tắc trước khi đóng góp.
Quy tắc commit
- Vui lòng không chỉnh sửa quá nhiều vào mã nguồn Overleaf hiện có. Hãy tập trung càng nhiều chức năng càng tốt vào thư mục
services/web/modules. Điều này giúp giảm thiểu khối lượng công việc của chúng tôi khi hợp nhất và cập nhật mã sau này. - Vibe coding thực sự là một cách rất dễ dàng, nhưng nó có thể dễ dàng làm rối dự án, khiến dự án khó bảo trì về sau, vì vậy hãy sử dụng một cách thận trọng.
- Vui lòng không thêm bất kỳ nội dung liên quan đến bản dịch nào trong quá trình phát triển; hãy sử dụng các bản dịch có sẵn bất cứ khi nào có thể.
- Tránh thêm biến môi trường trừ khi thực sự cần thiết. Nếu bắt buộc, hãy đảm bảo chúng nhất quán nhất có thể với các biến trong Overleaf toolkit hoặc docs.overleaf.com.
Quy tắc nhánh
Chúng tôi sử dụng các nhánh sau cho việc phát triển overleaf-pro:main: Nhánh này chỉ dùng để đồng bộ mã từ upstream, vui lòng KHÔNG commit bất kỳ thay đổi bên ngoài nào. Trên nhánh này, chúng tôi sẽ đặt một số tag nhưce-v[X.x.x], cho biết tag này tương ứng vớiv[X.x.x]trong Overleaf Community Edition chính thức. Lưu ý: tag này là bất biến!server-pro: Nhánh mặc định cho công việc phát triển hằng ngày.feature-X: Nhánh dùng để phát triển một tính năng cụ thể.release-vX.0.0: Nhánh dành riêng cho việc phát hành, chúng tôi sẽ thực hiện một số hot-fix trước khi phát hành.

Quy tắc nhánh của Overleaf Pro
GitHub Action
GitHub Action chịu trách nhiệm CI/CD tự động, bao gồm:- Cập nhật nhánh main hằng đêm
- Build docker image cho phát triển
- Phát hành docker image
Hỏi & Đáp
Làm thế nào để tìm commit hash của Overleaf Community Edition X.0.0?
Làm thế nào để tìm commit hash của Overleaf Community Edition X.0.0?
Trước hết, bạn cần pull docker image và chạy lệnh sau để kiểm tra các label trong docker image này:Sau đó, bạn có thể kiểm tra xem commit (b0d05c0) có tồn tại trong nhánh master của upstream hay không.
bash
Tại sao commit hash trong image CE giống nhau giữa 6.0.0 và 6.0.1?
Tại sao commit hash trong image CE giống nhau giữa 6.0.0 và 6.0.1?
Đây là hành vi được dự kiến. Bản phát hành 6.0.1 là một bản vá nhỏ được xây dựng dựa trên image 6.0.0. Các thay đổi được áp dụng bằng cách vá image 6.0.0 hiện có, thay vì build lại image từ một commit mới. Do đó, commit hash bên trong image giống hệt nhau giữa 6.0.0 và 6.0.1.Để biết thông tin chi tiết, xem hotfix.

