Page MenuHomePhabricator

Migrate Quibble images from buster to bullseye
Closed, ResolvedPublic

Description

< T252432: Drop MediaWiki testing in stretch and instead test only in buster | T362705: Migrate Quibble images from bullseye to bookworm >

The images based on sury.org have been migrated from Buster to Bullseye on July 11th after sury.org dropped support for Buster: T369146.

Wikimedia production still uses php 7.4 and Buster, as of July 2024.

Related Objects

Event Timeline

Change 914316 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] [WIP] Docker: Provide bullseye-based Quibble images

https://gerrit.wikimedia.org/r/914316

Change 914316 abandoned by Hashar:

[integration/config@master] [WIP] Docker: Provide bullseye-based Quibble images

Reason:

The production PHP 7.4 packages are only available on Buster for now. There is a work in progress to first migrate to libicu 67 T345561 which should open the path to port php 7.4 to Bullseye.

https://gerrit.wikimedia.org/r/914316

Change 914316 restored by Hashar:

[integration/config@master] [WIP] Docker: Provide bullseye-based Quibble images

https://gerrit.wikimedia.org/r/914316

Change 914316 abandoned by Hashar:

[integration/config@master] Docker: Provide bullseye-based Quibble images

Reason:

https://gerrit.wikimedia.org/r/914316

Change #914316 restored by Jforrester:

[integration/config@master] Docker: Provide bullseye-based Quibble images

https://gerrit.wikimedia.org/r/914316

Jdforrester-WMF triaged this task as High priority.

Now urgent. following T362518.

Change #1020299 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] jjb: Migrate all quibble-based jobs from buster to bullseye

https://gerrit.wikimedia.org/r/1020299

Change #914316 merged by jenkins-bot:

[integration/config@master] Docker: Provide bullseye-based Quibble images

https://gerrit.wikimedia.org/r/914316

Change #1020299 merged by jenkins-bot:

[integration/config@master] jjb: Migrate all quibble-based jobs from buster to bullseye

https://gerrit.wikimedia.org/r/1020299

Current state:

  • Quibble-buster images work but can't be updated
  • Quibble-bullseye images don't work:
    • The qunit fails with Cannot start ChromeHeadless […] Multiple targets are not supported., which I thought would be fixed by https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1020314 like in other repos but apparently not.
    • Deletion browser tests fail with a 'Please confirm that you intend to do this' warning rather than execution (special flag needed?)

Quibble-buster images work but can't be updated

E: The repository 'http://mirrors.wikimedia.org/debian buster-backports Release' does not have a Release file.

That is because the SRE base image provides the buster-backports component which has been removed by Debian.org.

That is tracked by T362518

Change #1038913 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] [DNM] jjb: Switch all Quibble jobs from buster to bullseye

https://gerrit.wikimedia.org/r/1038913

Mentioned in SAL (#wikimedia-releng) [2024-06-04T22:12:51Z] <James_F> Zuul: Tried rolling mediawiki-quibble-composer-mysql-php74 to bullseye to test T335766, but still failing with "Cannot start ChromeHeadless … Multiple targets are not supported". Reverted.

I finally start having some cycles to look into the BusterBullseye transition. My understanding is production baremetal still runs Buster and I don't know what is used for MW-on-K8s , I imagine they might already have migrated the base images to Bullseye. From some earlier OS upgrade we did, one of the thing to care of was the libICU upgrade (unicode support), on CI we would also have Chromium upgraded which might cause Karma/QUnit or webdriver.io to require some adjustments.

I have rebuild the Quibble images 3 days ago, we can get the list of installed packages with dpkg --show for both the Buster and Bullseye images:

docker run --rm -it --entrypoint=dpkg-query docker-registry.wikimedia.org/releng/quibble-buster-php74:1.9.0 --show
docker run --rm -it --entrypoint=dpkg-query docker-registry.wikimedia.org/releng/quibble-bullseye-php74:1.9.0 --show

I have looked at the list of packages we manually install from our Dockerfiles:

PackageBusterBullseyeNotes
Chromium90.0.4430.212120.0.6099.224
ffmpeg4.1.114.3.6Video capture by wdio-mediawiki
firefox-esr115.12.0115.12.0Luckily identical
git2.20.12.30.2Should be fine
libicux63.167.1This might break tests here and there
mariadb10.3.3910.5.23
postgresql11+20013+225
python3.7.33.9.3Affects Quibble, it should support it just fine
ruby2.5.12.7Affects jsduck which is phased out but might still be in releases branches

The php packages seems to be kept in sync, though the Bullseye one have one more patch (version suffix is wmf10 for Buster, wmf11 for Bullseye).

I finally start having some cycles to look into the BusterBullseye transition. My understanding is production baremetal still runs Buster and I don't know what is used for MW-on-K8s , I imagine they might already have migrated the base images to Bullseye.

Bare metal MW is never going to be migrated. The mw-on-k8s migration is T356293, blocked on this task being done.

Change #1051721 had a related patch set uploaded (by Hashar; author: Jforrester):

[integration/config@master] Dockerfiles: [quibble-buster-php74] Fix libICU to 67 not 63

https://gerrit.wikimedia.org/r/1051721

Change #1051721 merged by jenkins-bot:

[integration/config@master] Dockerfiles: [quibble-buster-php74] Fix libICU to 67 not 63

https://gerrit.wikimedia.org/r/1051721

Change #1053325 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] jjb: switch Quibble php74 jobs to libICU 67

https://gerrit.wikimedia.org/r/1053325

Mentioned in SAL (#wikimedia-releng) [2024-07-10T14:20:13Z] <hashar> Switching Quibble php7.4 jobs to lib ICU 67 # T335766 T345561

Change #1053325 merged by jenkins-bot:

[integration/config@master] jjb: switch Quibble php74 jobs to libICU 67

https://gerrit.wikimedia.org/r/1053325

Change #1053347 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] jjb: switch php8 Quibble jobs to Bullseye

https://gerrit.wikimedia.org/r/1053347

Mentioned in SAL (#wikimedia-operations) [2024-07-11T08:30:51Z] <hashar> Switched CI Quibble and Phan jobs based on PHP 8.1, 8.2 and 8.3 from Buster to Bullseye - T335766 T366799 T369146

Change #1053347 merged by jenkins-bot:

[integration/config@master] jjb: switch php8 Quibble jobs to Bullseye

https://gerrit.wikimedia.org/r/1053347

Status as of 2024-09-23:

  • All PHP 8.x images in CI are based on bullseye
  • The PHP 7.4 images in CI are based on buster
  • The PHP 8.1 image for prod is based on bullseye
  • The PHP 7.4 image for prod is based on buster

Change #1038913 abandoned by Jforrester:

[integration/config@master] [DNM] jjb: Switch all Quibble PHP 7.4 jobs from buster to bullseye

Reason:

Instead, we'll just drop 7.4 ASAP.

https://gerrit.wikimedia.org/r/1038913

Jdforrester-WMF changed the task status from Open to Stalled.Dec 13 2024, 8:07 PM

Stalled waiting for Wikimedia production to fully and finally switch off the last PHP 7.4 boxes, at which point we'll drop the 7.4/buster images from CI.

Production has pretty much migrated everything and maintenance scripts are the last one to move.

Our Buster image has:

dockerfiles/quibble-buster-php74/wikimedia-php74.list
deb http://apt.wikimedia.org/wikimedia buster-wikimedia component/icu67

That is the backport of libicu 67 from Bullseye to upgrade version 63 that comes with Buster.

The image has libpcre2-8-0 package at version 10.32.5 whereas Bullseye has 10.36.2. But maybe it is not an issue for maintenance script. Of course there would be other differences such as Firefox/Chromium versions changing :/

It thus might be wiser to just wait a little bit more.