Tôi giải thích tình huống này là có hai vấn đề cơ bản, có thể là ba.
- Một bản nâng cấp SDK không mong muốn đã đưa nó vào nguồn, nơi nó có thể ảnh hưởng tiêu cực đến sản phẩm.
- Từ câu hỏi: người đóng góp thực hiện nâng cấp không mong muốn không biết về quyết định cụ thể trước đây không nâng cấp.
Theo tôi, điều đầu tiên là nghiêm trọng nhất. Nếu một bản nâng cấp SDK không mong muốn có thể biến nó thành mã, thì các vấn đề khác cũng có thể xảy ra.
Ai đó đề nghị thêm một trường hợp thử nghiệm đơn vị sẽ thất bại nếu phát hiện nâng cấp. Mặc dù nó sẽ ngăn việc nâng cấp xảy ra, tôi tin rằng đây là một con đường nguy hiểm, dẫn đến dòng dung nham theo thời gian. Dường như không thể tránh khỏi một lúc nào đó trong tương lai SDK sẽ được nâng cấp, để mang lại các tính năng hoặc sửa lỗi mới hoặc do phiên bản cũ không còn được hỗ trợ. Hãy tưởng tượng việc gãi đầu, thậm chí có thể xảy ra tranh luận, điều đó sẽ xảy ra khi một bài kiểm tra đơn vị như vậy sau đó thất bại.
Tôi nghĩ giải pháp chung nhất là điều chỉnh quá trình phát triển. Đối với git, sử dụng quá trình yêu cầu kéo . Đối với Subversion và các công cụ cũ hơn, sử dụng các nhánh và diff. Nhưng có một số quy trình cho phép các nhà phát triển cao cấp nắm bắt các loại vấn đề này trước khi họ đưa nó vào cơ sở mã và ảnh hưởng đến các nhà phát triển khác.
Nếu quy trình yêu cầu kéo đã được sử dụng trong tình huống của bạn và nếu mỗi yêu cầu kéo hẹp và cụ thể, sẽ không lãng phí nhiều thời gian. Yêu cầu kéo để nâng cấp SDK sẽ được gửi và từ chối với nhận xét rằng không muốn nâng cấp. Không ai khác sẽ bị ảnh hưởng, và bây giờ sẽ không cần phải hoàn nguyên nâng cấp SDK.
Nhưng để trả lời trực tiếp câu hỏi ban đầu, tôi đồng ý với những người khác hy vọng tất cả các nhà phát triển sẽ đọc đầy đủ toàn bộ lịch sử sửa đổi của mã, ghi chú phát hành, v.v. vì những thông báo như thế này là lãng phí thời gian quý giá. Có gì sai với một e-mail nhóm ngắn?
Vấn đề thứ ba có thể xảy ra: Tại sao nâng cấp không muốn ở nơi đầu tiên? Rõ ràng ít nhất một nhà phát triển nghĩ rằng việc nâng cấp sẽ là một điều tốt. Có nhiều lý do tốt để trì hoãn nâng cấp, nhưng cũng có nhiều lý do xấu. Cẩn thận để tránh dòng dung nham (mã tương thích ngược không cần thiết) và sùng bái hàng hóa ("chúng tôi không thể nâng cấp điều đó, nhưng tôi không biết tại sao")