I have an open source project which uses several free libraries, among them the hugest by FAR is Zend Framework.
Should I:
1. Release my application with the Zend Framework
2. Release only my app and write a short tutorial on how to install ZF to woek with my app
3. Should I give both options (which is more work, and an open source don't bring bread to my table...So I do need some time for my day job).
views:
157answers:
4Let potential users do it.
Include a link to the ZF, that should suffice. It is completely pointless to be liable for download issues users might have, in addition to the fact that you would be paying for bandwidth for something which is available elsewhere. It would also be a pain in the neck staying up-to-date with the ZF, and having to check versions every couple of weeks or so.
From your description, it is likely that your app relies heavily on the Zend Framework, therefore, I recommend that you spell out to your users that your software requires Zend Framework V X.X.X, and whatever else, which can be downloaded from http://wherever.
Why give yourself the headache?
I think you should bundle it since you are probably letting someone else pay for the bandwidth codeplex and sourceforge are nice :) Also that makes the users life alot easier. You can also just delete modules you don't need which makes the file a bit smaller.
Alternativly in our app on the first run it checks if all files exist and downloads the zend framework from Zends site. On the first run you could download it from http://framework.zend.com/releases/ZendFramework-1.7.8/ZendFramework-1.7.8-minimal.zip and use a PHP function to unzip it and place it in the appropriate folder. That would be an alternative which would take a little time to do but would dramatically reduce the filesize
Depending on what the "project" is.
If it's an application, bundle it.
If it's a library, don't.
EDIT: To elaborate a bit more:
When making an application, you usually don't want to burden (or rely on) the user with installing and upgrading to the correct library versions. Additionally, if users use different versions of libraries, it'll make it more difficult to solve bugs for your software (e.g. "MyApp 1.0.6 doesn't work with SomeLib 2.3.5 if it was installed via PEAR"). You probably want your environment to be as constant as possible; even different PHP versions are often annoying.
When making a library, otoh, you don't want to cause more side effects than absolutely necessary and want to give all the power to it's user (which in this case is a developer). If your library needs SomeLib 2.3.5, but the app that uses your library needs SomeLib 2.3.7, then your bundling it could cause problems.
Basic point: Users of libraries will test after including them, users of apps won't after installing them.
Why not do both?
Then users that don't know what ZF is or don't have it can download the full package.