6

Tôi đã tự học về monorepos vì tôi tin rằng đó là một giải pháp tuyệt vời cho nhóm của tôi và tình trạng hiện tại của các dự án của chúng tôi. Chúng tôi có nhiều sản phẩm web (Cổng thông tin khách hàng, Cổng nội bộ, API, Mã chia sẻ chính).Làm thế nào để phiên bản sản phẩm bên trong monorepo?

Nơi tôi đang cố gắng tìm câu trả lời mà tôi muốn tìm là phiên bản.

Chiến lược versioning là gì khi tất cả các dự án và sản phẩm của bạn nằm trong một monorepo?

  • 1 phiên bản phù hợp với tất cả?
  • Mô-đun phụ Git với phiên bản độc lập (loại phá vỡ điểm có repo đơn)
  • Chiến lược khác?

Và từ quan điểm CI, khi bạn thực hiện điều gì đó trong dự án A, bạn nên khởi chạy toàn bộ các thử nghiệm trong tất cả các dự án để đảm bảo rằng không có gì bị hỏng, mặc dù không nhất thiết phải thay đổi một module phụ thuộc/chia sẻ?

+0

Bạn nên đề cập rõ ràng VCS nào bạn sử dụng (có vẻ như git) và công cụ xây dựng nào bạn sử dụng. Ngoài ra loại công việc phát hành bạn sử dụng. Ngoài ra 2 câu hỏi trong 1 là không tốt cho stackoverflow. – tkruse

Trả lời

2

Chiến lược versioning là gì khi tất cả các dự án và sản phẩm của bạn nằm trong một monorepo?

tôi sẽ đề nghị rằng một phiên bản phù hợp với tất cả những lý do sau:

  • Khi phát hành các sản phẩm của bạn, bạn có thể đánh dấu toàn bộ chi nhánh như release-x.x.x ví dụ. Nếu lỗi xuất hiện, bạn sẽ không cần phải kiểm tra xem phiên bản XXX là YYY nào bằng cách sử dụng "
  • Nó cũng giúp dễ dàng hơn để buộc phiên bản x.x.x của XXX sử dụng phiên bản x.x.x của YYY. Về bản chất, giữ cho các dự án của bạn được đồng bộ. Làm thế nào bạn đi về điều này tất nhiên phụ thuộc vào những gì công nghệ các dự án của bạn được viết bằng.

Và từ góc độ CI, khi bạn cam kết điều gì đó trong dự án A, bạn nên khởi động toàn bộ bộ kiểm tra ở tất cả các các dự án để đảm bảo rằng không có gì bị phá vỡ, mặc dù không nhất thiết phải thay đổi được thực hiện cho một mô-đun phụ thuộc/chia sẻ?

Nếu các thử nghiệm không mất nhiều thời gian để thực thi, không có hại nào có thể phát sinh từ việc này. Tôi chắc chắn sẽ giới thiệu điều này. Các xét nghiệm của bạn càng thường xuyên chạy càng sớm, bạn có thể phát hiện ra các lỗi phụ thuộc vào thời gian hoặc môi trường.

Nếu bạn không muốn chạy kiểm tra mọi lúc vì bất kỳ lý do nào, bạn có thể truy vấn VCS và viết kịch bản có điều kiện kích hoạt kiểm tra tùy thuộc vào những gì đã thay đổi. Điều này phụ thuộc rất nhiều vào sự tích hợp giữa VCS và máy chủ CI của bạn.

Các vấn đề liên quan