I've got a few open source applications. These depend on a few third party components, notably Crypto++ and Boost. There are a couple of options to take:
What should I do?
Note: I'm not working in an environment where reliance on a dependency mapper like aptitude
, apt-get
, or yum
are acceptable.
Visualize dependencies clearly Visualizing dependencies is an easy way to better understand what tasks need to be completed and in what order. Using visual tools like a Gantt chart or a Kanban board can clearly show your team members what stage your project is currently in and which tasks are dependent.
Option 3: Don't include it in your code distribution but instead include a (link to a) download, which should match the most recent version you support.
Also, explicitly list your dependencies and the most recent versions you support.
This allows users to do however they want. Want your code with dependencies? Load both from one source. Want only part of the dependencies because you have the others? Load part of them. Want only your code? Load it seperately.
Option 4: Offer 2 versions, one including the dependencies and the other without but combined with option 3 above.
I suggest Autoconf which was designed to abstract these worries away from you.
I doubt you can be expected to maintain build scripts for all of your dependencies across all platforms. Another problem with keeping 3rd party code in your svn is that now you also need to track down their dependencies and so on.
I think its a good idea to have dependencies in the SVN. That way developers can simply check-out and compile. Also you avoid the problem with different incompatible versions of your dependencies.
If you put the dependencies in a separate folder then developers can choose not to check-out your dependencies if they alrdy have them...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With