Date: Week 3 (did it on Week 4)
Time: (we did it on 17th of June)
Type: (was on skype)
Participants: AbdealiJK, DrTrigon, jayvdb
Description: Meeting about handling non-pip packages, see T134121 and T135834
Dependencies to handle: https://commons.wikimedia.org/wiki/User:AbdealiJK/file-metadata/Dependencies
Compare Features:
| Package name | can install from os package management | can install from URL | can apply patches | can compile code on need | notes |
| pywikibot-compat.externals | yes | yes | yes | yes | derived from vistrails.core.modules.package.Package, see below |
| vistrails.core.modules.package.Package | yes | no | no | no | |
| libapt and yum | yes | no | no | no | |
| conda | no - it IS pack. managm. | no | yes | not "on need" | solve T132659: Conda-based packaging for Windows first in order to then add to a docker image (PAWS or general for install on users machine) |
| Docker | ? | ? | ? | ? | used by pywikibot |
| Vagrant | ? | ? | ? | ? | used by https://www.mediawiki.org/wiki/MediaWiki-Vagrant / MediaWiki-Vagrant |
- can install from os package management: find, download and install packages not handeled by pip - this means handling apt-get, yum and the special case of nothing for win as well as mac
- automatic compillation for python modules needing it during install - this also involves re-compilation on need if a new package was updated meanwhile
Agenda:
- externals module: functionality?
- replace externals by conda? what about miniconda? anaconda?
- Docker (see Pywikibot's Dockerfile)
- Vagrant (may be combined with Docker): https://github.com/AbdealiJK/file-metadata/issues/30
Minutes of the Meeting:
- pywikibot-compat.externals, vistrails.core.modules.package.Package and libapt&yum are no options that satisfy our needs
- Docker is a completely different approach (like virtual machine/onw closed environment) that is used by a lot of other projects e.g. pywikibot already
- has issues on windows that can be worked around by either using a linux guest in a VM or Vagrant (both common)
- allows for easy and automated first installation and having a look at the code in action - users can then decide to got down the harder path and install themselves manually (pip)
- does that by essentially having a install/setup script (similar to travis-ci config files) that does the job
- conda might come in handy for manual install (pip) on windows where we actually lack a package management at all; conda will allow us to fulfill dependencies anyways
Summary: we go for Docker (with help of e.g. Vagrant and VM like VirtualBox) and conda (mainly for win to fulfill deps)