Originally posted on Alessio Ababilov's Blog:
When you develop a software system, you can choose any solution between two extreme approaches.
- Build and maintain all your dependencies.
- Rely on external repositories and build only your specific packages.
Having chosen the first approach, you can be sure that your users will use your great tuned packages of carefully chosen versions that are doomed to work properly. And when you see a problem in a dependency, you freely patch it and… congratulations, now you are a happy maintainer of a zoo of numerous packages containing software written in several languages!
The second way is clear: you build a dozen of your own packages and publish a relatively small repository. And when your third-party dependencies become unavailable, it will be a user’s problem.