[Owncloud] Composer for PHP dependency management / untangling dependencies and license issues
Thomas Müller
thomas.mueller at tmit.eu
Sun Aug 18 14:03:13 UTC 2013
Hey,
from my point of view we can use composer to build up the 3rdparty repo.
I've been working on this as well:
https://github.com/owncloud/3rdparty/commits/with-composer-master
With such an approach we can update dependencies easier for sure.
But I'd keep the 3rdparty repo in order to not break the dev setup (again)
and to have a place where we store components which are not available via
composer.
Regards,
Thomas
Am Sonntag, dem 18.08.2013 um 15:44 schrieb François Kooman:
> Hi,
>
> As an experiment I updated the user_oauth app
> (https://github.com/owncloud/apps/tree/master/user_oauth) to use
> Composer (http://getcomposer.org) to do the dependency management. It
> depends on the php-oauth-lib-rs library to validate tokens.
>
> It uses the central "packagist.org" repository to resolve dependencies,
> although directly specifying Git repositories is also possible.
>
> Running composer will install the dependencies in the "3rdparty"
> directory of the user_oauth module. The file for the module looks like this:
>
> {
> "autoload": {
> "classmap": [
> "src/"
> ]
> },
> "config": {
> "vendor-dir": "3rdparty"
> },
> "require": {
> "fkooman/php-oauth-lib-rs": "0.1.*"
> }
> }
>
> It has some major advantages for dependency management, like for example
> the ability to show all used licenses by the dependencies, as an example
> my demo OAuth client application:
>
> Name: fkooman/demo-oauth-app
> Version: 1.0.0
> Licenses: none
> Dependencies:
>
> fkooman/guzzle-bearer-auth-plugin 0.2.1 MIT
> fkooman/php-oauth-client dev-master 7f028ce LGPL-3.0+
> guzzle/guzzle v3.7.2 MIT
> monolog/monolog 1.5.0 MIT
> psr/log 1.0.0 MIT
> symfony/event-dispatcher v2.3.3 MIT
>
> This makes it very easy to do license auditing. In addition it will take
> care of PSR-0, or classmap, as in the user_oauth case, autoloading of
> classes. There will no longer be a need to include the 3rdparty
> repository in Git as it will point at the "official" repositories.
> Making a release would just mean running "composer install" on the
> source tree and create a tarball with all the 3rdparty libraries included.
>
> It would be a fun project to try to see if it is possible to create a
> composer file for ownCloud by checking the current dependencies and
> looking as to whether there is a "composerized" version of that library.
>
> Regards,
> François
>
>
>
> _______________________________________________
> Owncloud mailing list
> Owncloud at kde.org
> https://mail.kde.org/mailman/listinfo/owncloud
More information about the Owncloud
mailing list