As we discussed several times some bot operators do not like having .exe files executed without explicit permission to do it. In my opinion it is not a good solution blocking the bot now if the permission is denied because the bot worked 10 years ago without this permission and patching beautifullsoup. That library was included to our code since the first steps of pwb. Where are the problems to include them or what are the licenses problems? Maybe you are right and we did wrong in past. And what are the special necessity for that patch? Externals can be included without running patch.exe. But I do not understand them. I understood that patch as a sample for that technoloy which should be used when needed. Now I only see the exception raising while starting any script of the framework (which was few days ago and not some months behind. Sorry I am not up to day while testing ;) Ok this behaviour seems a good way to let the trunk/compat branch die in honest. In this respect I am with you :D
Best xqt
----- Original Nachricht ---- Von: "Dr. Trigon" dr.trigon@surfeu.ch An: pywikipedia-l@lists.wikimedia.org Datum: 01.08.2013 13:29 Betreff: Re: [Pywikipedia-l] Question about externals and patches
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
I don't like any installation process including rewrite branch/core and I am using pwb.py to have a directory based environment. Maybe for some reasons a installation is necessary but it should be very rare! There is no reason for patching beautifullsoup because we could either use the external library (as something like external) as it is or include it to the framework as it was previously. This is a central library for the compat branch and you cannot run it whithout that stuff. Missing this library stops running the whole framework if some users did not want to install any .exe file. Other patches only depends few scripts or not even a script is affected.
I don't like installation either!! This is not about installing the framework itself, but the dependencies needed! That's a big difference! Nobody forces you to use the externals/__init__.py you CAN do this all manually. But I for my part am very unhappy, if I have to install several packages and search them on the web, find the correct version, try to compile it and all the stuff - just to TEST, whether this pywikipedia framework could be useful to me. It is a good thing if it is able to do this by itself - still if you do it by yourself in advance there is no need for externals to jump in. That's supposed to be more beginner-friendly (it is a one-time help to start using the framework).
It is a bad idea to include code like beautifulsoup.py from another source. That makes confusion (who has written the code originally), is problematic with licenses and gives issues with merging new versions. (cosmetic changes were applied to our version and so it was not clear anymore how to merge this with the one upstream) - so we should NOT include other code into our repos! AND on linux systems there is beautifulsoup already included into the distro repo - so it makes no sense to include it with pywikipedia. (similarly for simplejson, setuptools, httplib2, ...)
And please check whether a patch is necessary for other parts too and keep the code simple. I guess there could be other ways which have the same effect without running any .exe file which some people don't like to. E.g. for music21, pydmtx, zbar I don't understand why a patch is required (and for what scripts they are needed at all).
In fact we discussed about all the stuff already in the past [1] (May 2013 till now - search for 'externals' and 'patch') where I explained all that in detail. (I kept it as simple as possible - I explained already several options - The patches are reduced to a minimum - Forking those packages just creates additional workload - Some of those packages are huge - ...)
[1] http://lists.wikimedia.org/pipermail/pywikipedia-l/
I already mentioned - several times - if you have a better solution (I searched one for months now!) then PLEASE tell me! I do not know any other solution to include all my code and scripts here! If you want me to remove them again, fine - I will do this - but it would have been nice to tell me this before I invested weeks of coding into that stuff! And as you should have been seeing e.g. in the migration to git submodules - externals/__init__.py was in fact an easy, simple and fast solution to work-a-round that stuff. Although we migrated to git, it is still as bad as svn - regarding externals or submodules neither (svn, git) has a good solution! But PLEASE tell me a better one if you know it!!
One last way out that I can think of is, we make it non-automatic; we could do it together with the creation of user-config.py as one explicit step the user has to do manually in the beginning (instead of jumping in automatically) - what about that?
Greetings and all the best! DrTrigon
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iEYEARECAAYFAlH6RqkACgkQAXWvBxzBrDAAdQCfS6/6eAJUEPlK+FRMfAfFdXHf kgcAoKNsoJaLyK7h05BNWaWG6P3gxGaE =PuAP -----END PGP SIGNATURE-----
Pywikipedia-l mailing list Pywikipedia-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/pywikipedia-l