Page MenuHomePhabricator

requests >= 2.9 should be installed for python
Closed, DeclinedPublic

Description

Currently requests 2.2.1 or 2.4.3 is used for toolforge. But 2.9 or highter is required for eventstreams sseclient. Please update that module.

Event Timeline

The package is provided by APT from official ubuntu apt repository:

06:09:13 0 ✓ zhuyifei1999@tools-bastion-02: ~$ apt-cache policy python-requests
python-requests:
  Installed: 2.2.1-1ubuntu0.3
  Candidate: 2.2.1-1ubuntu0.3
  Version table:
 *** 2.2.1-1ubuntu0.3 0
        500 http://nova.clouds.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     2.2.1-1ubuntu0.2 0
        500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
     2.2.1-1 0
        500 http://nova.clouds.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

Upgrading is unlikely to happen, unless we upgrade the system itself to a newer release.

The usual method on toolforge to have a newer local package is to either run a virtualenv or run it on kubernetes, which right now runs debian jessie instead of ubuntu trusty:

tools.zhuyifei1999-test@interactive:~$ apt-cache policy python-requests
python-requests:
  Installed: 2.12.3-1
  Candidate: 2.12.3-1
  Version table:
 *** 2.12.3-1 0
        100 /var/lib/dpkg/status
root@tools-worker-1027:~# apt-cache policy python-requests
python-requests:
  Installed: 2.12.3-1
  Candidate: 2.12.3-1
  Version table:
 *** 2.12.3-1 0
       1001 http://apt.wikimedia.org/wikimedia/ jessie-wikimedia/backports amd64 Packages
        100 /var/lib/dpkg/status
     2.11.1-1~bpo8+1 0
        100 http://mirrors.wikimedia.org/debian/ jessie-backports/main amd64 Packages
     2.4.3-6 0
        500 http://httpredir.debian.org/debian/ jessie/main amd64 Packages

Can't this be solved with a virtual environment? Toolforge wide installation is usually reserved for system packages.

I am not familar with toolforge. For pywikibot requests >= 2.9 is required to solve T184713 and will be mandatory after https://gerrit.wikimedia.org/r/#/c/406579/ will be deployed. Anyway this restriction is only necessary when using sseclient for eventstreams (and btw. sseclient installation must be 0.0.18 or higher). If this could be solved by users themself I am fine with it but I fear not all are experienced enought to set it up in a needed way. So either there should be a way preinstalling requests >= 2.9 or any help page for users how to proceed in this matter.

Virtual environments are the supported way to use and require specific versions for python packages in Toolforge.
About documenting this, there are some references to this scattered in wikitech, but I agree it should be improved (see T187659).