I have created an open source project that runs from Visual Studio. But it relies on some external libraries to work as well. These libraries are also open source. The question I’m wondering is if I should
- Point users to these libraries and have them download the source code and then add them to the project
- Point users to the dll and have them reference it directly
- Include the dll directly into the project
- Include the source code of these libraries directly into the project
Which is the best way or standard way of doing this?
There are guidelines that are not open source specific, but I think they apply.
I always include binaries of all external libraries (except for standard ones like System.dll) in source control. This way, people that check out source code can immediately build the project. Moreover, I can easily switch to older version of project and immediately have dependencies in versions that were used to build that revision – this is particulary useful when debuging older release of software.