Page MenuHomePhabricator

singleuser container not building
Closed, ResolvedPublic

Description

Singleuser container stopped building in T338981 seems to happen regardless of change. Fails on:
RUN pip --no-cache-dir install -r /tmp/requirements.txt

Event Timeline

It would appear
https://github.com/mediawiki-utilities/python-mwdiffs
https://github.com/mediawiki-utilities/python-mwpersistence
are causing the problem. Likely change in upstream things as they were last updated 8 years ago.

I tried bumping jupyterlab to 3.6.3 as seen in this commit: https://github.com/toolforge/paws/pull/308/commits/425a53a6449198beca9e3466c32f3604bdfbe31e

Building the singleuser Docker image does in fact result in a pip install error on the line:

RUN pip --no-cache-dir install -r /tmp/requirements.txt

However, it looks like the problem is with building PyYAML, as required by bokeh. It looks similar to the issue described here: https://github.com/yaml/pyyaml/issues/601

I couldn't see where mwdiffs or mwpersistence were causing issues, could you explain further?

I think removing those libraries simply causes pip to resolve the dependency to a later version of PyYAML which doesn't have the issue, as seen here: https://github.com/flyteorg/flytekit/pull/1752/files

Before removing mwdiffs and mwpersistence:

Collecting PyYAML>=3.10 (from bokeh->-r /tmp/requirements.txt (line 16))
  Downloading PyYAML-5.4.1.tar.gz (175 kB)

After:

Requirement already satisfied: PyYAML>=3.10 in /srv/paws/lib/python3.10/site-packages (from bokeh->-r /tmp/requirements.txt (line 16)) (6.0.1)

My guess is that the implicated libraries (mwdiffs and mwpersistence) are written in Python 2 and can't upgrade to the latest version of PyYAML, but that's just a guess.

Maybe not quite that. Looks like mwpersistence requires deltas -> yamlconf -> PyYAML 5.4.1:

deltas==0.7.0
└── yamlconf [required: Any, installed: 0.2.6]
    └── PyYAML [required: ==5.4.1, installed: 5.4.1]

I successfully built the singleuser image with jupyterlab=3.6.3 and this PR: https://github.com/toolforge/paws/pull/309

rook reassigned this task from rook to Audiodude.

My pleasure. Did I save mwdiffs and mwpersistence? That's the goal. If so should one of us update the announcement to [Cloud-announce]?

My pleasure. Did I save mwdiffs and mwpersistence? That's the goal. If so should one of us update the announcement to [Cloud-announce]?

Yes I have no intention of removing either at this point. As for announcing it. I wouldn't, but I wouldn't discourage you from doing so. I kind of suspect that we will find ourselves here again in the nearish future, as we're working with code who's last patch is old enough to tie its own shoes. So if the earlier announcement did any encouragement of moving to something more recent, I wouldn't want to discourage that. Which is a long winded way of saying: I won't, but if you see it as reasonable, please do.