grinnellplans / grinnellplans-php

Automatically exported from code.google.com/p/grinnellplans
Other
7 stars 7 forks source link

Doctrine and AWS should be vendored #282

Open baldwint opened 8 years ago

baldwint commented 8 years ago

Plans expects some of its external dependencies to be vendored inside of the /lib folder: Savant, the Doctrine ORM, and the AWS SDK. At present, only Savant is included in Plans' git repository. The other two should be included as well.

Without these included, it's up to the person installing Plans to find the right versions of these packages and copy them into /lib. This is getting more difficult as these dependencies age - they might have installed easily from PEAR in 2012, but not anymore. In my experience, the versions that work are Doctrine 1.1.3 and AWS 1.5.10, but we should ideally vendor the exact versions that are running in production.

Assuming I have those versions right - these packages are each about 9 MB in size when unpacked, much larger than Savant (and also Plans itself). It'd be prudent to include them as git submodules, rather than just committing them wholesale, to keep the Plans repo from becoming too heavy.

A suitable repo is available for AWS, but Doctrine's SVN->git conversion apparently lost everything prior to 1.2. You can still get a tarball of it though, so we could make a repo out of that ourselves and then submodule it.

Can someone with access to production verify these version numbers?

grep VERSION lib/doctrine/Doctrine.php

grep CFRUNTIME_VERSION lib/aws/sdk.class.php
acohn commented 8 years ago

Doctrine is at version 1.1.3 on prod, which is available at http://svn.doctrine-project.org/tags/1.1.3/lib. AWS is at 1.6.2 - we should probably add https://github.com/amazonwebservices/aws-sdk-for-php as a submodule?

acohn commented 8 years ago

Also, our dependency on the AWS library is limited to the send_mail() function in functions_email.php, so we could pretty easily transition that to the new AWS PHP library.

I would prefer using something like Composer for pulling in AWS, as opposed to pulling it into our repo.