Có nên phụ thuộc vào kho lưu trữ?
Tôi nghĩ rằng các phụ thuộc phải luôn được đưa vào kho lưu trữ miễn là chúng không vi phạm bất kỳ điều khoản sử dụng nào. Vài điều khó chịu hơn là phải tìm đúng phiên bản của các phụ thuộc đúng theo cách thủ công trước khi bạn có thể tạo bản dựng. Chắc chắn, điều này thật dễ dàng khi bạn có các công cụ tự động để làm điều này cho bạn, có thể tìm và tải xuống đúng phụ thuộc, nhưng nếu bạn không kết nối với web vào lúc này hoặc máy chủ bị hỏng hoặc dự án của phụ thuộc đã bị ngưng hoàn toàn và lấy ngoại tuyến? Luôn bao gồm các phụ thuộc nếu có thể.
Có nên xây dựng sự phụ thuộc từ bên trong cùng một tập lệnh xây dựng với phần còn lại của dự án hoặc từ một tập lệnh xây dựng riêng biệt không?
Trừ khi có một lý do chính đáng để biên dịch từ nguồn, hãy sử dụng các phiên bản được biên dịch trước.
Và tại sao không cung cấp tùy chọn trong tập lệnh xây dựng? Một chuyển đổi đơn giản để chọn liệu các phụ thuộc cũng nên được biên dịch hay không. Nếu người dùng cũng chọn biên dịch các phụ thuộc, thì chỉ cần gọi các tập lệnh xây dựng riêng của họ từ tập lệnh xây dựng sản phẩm của bạn. Vì vậy, người dùng có thể gọi thủ công các tập lệnh xây dựng của người phụ thuộc hoặc chọn để tạo một bản dựng đầy đủ của mọi thứ. Nhưng tôi chỉ cung cấp các phụ thuộc dưới dạng nhị phân nếu không có lý do chính đáng để biên dịch chúng từ các nguồn. Tôi nghĩ trong thế giới Nguồn mở, một số giấy phép yêu cầu bạn phân phối các nguồn cùng với sản phẩm của bạn nhưng điều đó không có nghĩa là bạn không thể biên dịch trước chúng.
Tóm lại: Cung cấp toàn bộ gói độc lập, làm việc nếu có thể. Điều này sẽ cung cấp sự tiện lợi nhất cho người dùng của bạn.