Hôm qua tôi đã làm việc với một dự án API Rails 5 đang sử dụng thư viện hành vi như có thể gắn thẻ để cho phép mọi thứ có thẻ (như câu hỏi trên SE). Rails 5 hiện đang hỗ trợ alpha. Hiện tại có một PR để sửa một lỗi đang chờ để được sáp nhập vào master; lỗi này đã khiến chi nhánh tính năng của tôi tạm dừng hoàn thành giữa chừng - tôi không thể thực hiện bất kỳ chức năng nào của thư viện vì quá trình tải bị hỏng.
Để khắc phục nhanh, tôi chỉ cần sao chép repo, sửa vấn đề với cùng mã mà PR có và chỉ Gemfile của tôi (tệp kiểm soát phiên bản phụ thuộc) vào ngã ba Github của riêng tôi, cho đến khi lỗi cuối cùng được hợp nhất trở lại thành chủ.
Tôi đã may mắn rằng việc khắc phục rất đơn giản ( và ai đó đã thực hiện nó ), vì vậy tôi đã có thể khắc phục được vấn đề. Nhưng điều gì sẽ xảy ra nếu thư viện này rất quan trọng đối với sự phát triển ứng dụng của tôi? Điều gì xảy ra nếu lỗi phát sinh sự phát triển của tôi không phải là vấn đề phổ biến đối với người khác , vì vậy, bản sửa lỗi không xuất hiện nhanh chóng như lần này?
Hãy tưởng tượng rằng tính năng này cần được hoàn thành trước khi phát triển các tính năng phụ thuộc khác - bạn sẽ làm gì trong tình huống đó? Điều gì sẽ xảy ra nếu, đối với tôi, việc gắn thẻ là cực kỳ quan trọng đối với cụm từ phát triển tiếp theo, nơi mọi thứ khác đều dựa vào nó - nhưng sự phụ thuộc gắn thẻ bị lỗi cho cấu hình của tôi? Người ta làm gì khi chức năng quan trọng của một phụ thuộc cản trở sự phát triển của (a) tính năng (s)?
Và, chắc chắn, đấu kiếm trên ghế văn phòng trong nhiều giờ hoặc nhiều ngày không phải là một lựa chọn ...