Hi, I'm currently exploring deployments using GIT and Composer would be a great tool for this.
So +1 for me :) Le 01/10/2014 14:05, Doursenaud, Raphaël a écrit : > TL;DR: Composer is good, please vote up! > > Another great feature of having dependencies managed is that we could > leverage services like https://www.versioneye.com to keep up with > upstream changes (updates/bugfixes/security) without relying on some > human auditing the libraries once in a while. > > Anyway, I've already expressed my views. Thanks Marcos :) > > 2014-10-01 11:29 GMT+02:00 Marcos García <marcos...@gmail.com > <mailto:marcos...@gmail.com>>: > > Hi all: > > I've recently experimented with Composer and delegating > dependencies management to it. You can see the result > in https://github.com/Dolibarr/dolibarr/pull/1759 > > If you are not familiar with Composer, it does allow removing 3rd > party code from the source and updating dependencies with a single > "composer update" command. If you want to "lock" the version of > the dependencies for your project, just do "composer lock" and > developers should only use "composer install" to install the exact > version your project needs to work properly. Versions are stored > in a composer.json file. > > I'll put some opinions made by Laurent D. an Raphaël D. > > Laurent said: > > I don't think we should composer. I know a lot of people think > it is a good practice. When editing a software i think the > opposite. It is not composer to decide which version of > library we must provide or "validate" for a full dolibarr > release. Only one version must be tested/validated per version > of dolibarr. > Using composer bring more problem than solution (in fact i > don't see any good thing with using dependencies into a > software you edit). This may be a good thing for an os to > manage software but not for a software to manage libraries. > There is few effect of os into a software but a library onto a > software just can't be separated. > We must be sure of wich version is used. We must also be able > to patch them (as we did into dolibarr_changes.txt) > Also using composer is just a headache when we want to build a > package. > Also when externalisation of lib must be done (for example > when we have no choice for debian package), the we must be > able to do it library per library (like it is already done). > So using a global constant DOLIBARR_VENDOR_ROOT is not a good > solution (there is already a constant for each library so no > need to add one more global). Package debian that force to use > external library is a good example of all problems we have > when using an external composer: We finally had to remove > completely some feature into debian package (not the one > provided by dolibarr but the one that was pushed into debian > official sources) just because external library was changing > to often with a change in behaviour that we couls not control. > Definitely managing dependencies automatically is not a good > way of working for a "software editor". It consumes a lof of > time and result is a not stable software (debian package is a > good example. The package pushed into official debian with > dependcies managed by a composer like is just a pain and not > reliable, package debian provided by dolibarr with embeded > libraries just works like it should). > Other people may try to make my mind change i have so many bad > experience using composer like feature into software buidling > solved just by stopping using it that probability to have this > is nearly 0% currently. > > > Raphaël said: > > Let me politely disagree. The problems you mention are not > composer's fault but the way you think it should be used (or > the way most people tend to use it). > Composer vastly simplifies dependency management by locking > specific version of the dependencies to your code (in the > composer.json or through the composer.lock that should be > committed to the tree), while being explicit about it and > helping managing updates smoothly by choosing precisely the > version(s) you want and/or allow. > I'm not in favor of a new vendor path either. Our include path > (htdocs/includes/) already does exactly this for us. We don't > even need any autoloader (yet). > I'm also strongly in favor of keeping the composed files in > the revised tree, but composer purists may disagree. > I just use it as I use my OS package manager. It sorts > dependencies out for me but I'm still allowed to overwrite or > move some files if I feel like so. > Bottom line : this PR is not really good for us as-is but it > can certainly be improved to better fit the Dolibarr project. > Cheers! > > > Laurent said: > > The way you suggest to use it looks better to me. That's why i > think we can have a composer.json file into root, but we must > "lock" as you suggest the embedded version, once selected for > a development target. > > > I said: > > Hi all: > Versions are defined in composer.json file. As you can see, I > used specific versions instead of the "*" or "~" parameter. > That tells composer to download only that version, and > composer.lock tells Composer to download those versions when > doing the "composer install" command. > When I tell you that I had to update them is because they were > too old to be available, which shouldn't be really a problem > if we test them. > Whenever you want to update them, you edit composer.json to > reflect the new version and do the "composer update" command. > You can also tell composer to target a significant release of > a minor version. For example: we track version 2.3 and 2.3.1 > is used, but tomorrow 2.3.2 is released and composer.json > wouldnt notice unless you tell him to download 2.3.2 version. > You could do "~2.3" and it will download the latest one. > "composer update" to update and "composer install" to install > already locked versions. > The fact of separating the libraries from the code gives the > advantage of not tracing other libraries' changes. That's a > good advantage because "our" Git will only track our changes. > I did not remove the global constant you mention. Even if I > don't like it because it is a source of a lot of problems > (e.g. Debian having a super old version of an external library > and Dolibarr requiring an specific version because of a bug). > But that's not the point of the discussion. > ¿Problems? Don't think so. A problem would be in a big Symfony > project wether you can have a very complex map of dependencies > that require around an hour and 3G of RAM to update them. This > one is not. > Also, you are talking about "patching" external libraries. > Patching external libraries is forking them. Also, it is > better to modify them through extending classes than through > modifying them directly as it is then harder to update because > you have to deal with their changes and you changes over the file. > The vantages I find using Composer in Dolibarr are: > > * Stop tracking other libraries changes > * Easier update of external libraries > * Better control of external libraries > * Separation of actual Dolibarr code and other libraries code > > The discussion was moved to the mailing list to know your opinion > about this change. This PR doesn't have to be the final one, was > just an experiment to see if the change could be possible or not. > > What do you think? > > Regards, > > *Marcos García* > > marcos...@gmail.com <mailto:marcos...@gmail.com> > > > _______________________________________________ > Dolibarr-dev mailing list > Dolibarr-dev@nongnu.org <mailto:Dolibarr-dev@nongnu.org> > https://lists.nongnu.org/mailman/listinfo/dolibarr-dev > > > > > -- > *Raphaël Doursenaud* > Directeur technique (CTO) > Expert certifié en déploiement Google Apps > <https://gpcsolutions.fr/raphael-doursenaud-google-apps-certified-deployment-specialist> > +33 (0)5 35 53 97 13 - +33 (0)6 68 48 20 10 > > <http://gpcsolutions.fr> > http://gpcsolutions.fr > Technopole Hélioparc > 2 avenue du Président Pierre Angot > 64053 PAU CEDEX 9 > SARL GPC.solutions au capital de 7 500 € - R.C.S. PAU 528 995 921 > <http://wiki.dolibarr.org/index.php/Dolibarr_suppliers_France#GPC.solutions> > > > _______________________________________________ > Dolibarr-dev mailing list > Dolibarr-dev@nongnu.org > https://lists.nongnu.org/mailman/listinfo/dolibarr-dev
_______________________________________________ Dolibarr-dev mailing list Dolibarr-dev@nongnu.org https://lists.nongnu.org/mailman/listinfo/dolibarr-dev