)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"a10a8c12f9b067096d559f5f79c9645ecb65cdb9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"42399c53_31e01a3e","updated":"2024-06-10 16:04:20.000000000","message":"recheck: Now with auto-hold","commit_id":"b419354d1b66836924ecbda7ba57b66efce6e41d"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"97b50ca66a513282f91fecf184e6f1a396a0cc02","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"11212cc7_0eec177e","updated":"2024-08-24 07:00:29.000000000","message":"-1 for visibility, except the last comment these are non-critical I think","commit_id":"037d1b4cce6ab6a2b7721a9ad72c9e6575f28df5"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"741d699f93256d77539130cebc1dd99b60e98dc2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"9bce1a62_c8c3a467","updated":"2025-10-13 04:48:38.000000000","message":"recheck  (I need the images for local testing)","commit_id":"faf161aa0b91d19ff67bb0fffbd83c3d2451781a"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"c4a8fdf9f620c8c3e4a3fb51083a05fda5e66d6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"559e80a8_85980e37","updated":"2025-10-29 20:26:51.000000000","message":"One important thing about image publication then we also need to rebase this due to a merge conflict according to Gerrit.","commit_id":"abaf849b447501f24096331b61a4db28a8885ed6"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"77d01cfc518672c85887dc00c6da817630644806","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"84bd6c1b_fa972849","updated":"2025-10-17 09:13:56.000000000","message":"lgtm, thx for the update","commit_id":"abaf849b447501f24096331b61a4db28a8885ed6"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"6c6d600119a9e605aa15271b5586764a3d0cd534","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"e5183079_e45f329b","updated":"2026-04-22 11:00:43.000000000","message":"lgtm, thx","commit_id":"27a094f36f7efebdaff30516e1a59c1339042e56"}],"docker/mediawiki/Dockerfile":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"ae9391b39983b175aed1005cb4153d70d55c04f0","unresolved":true,"context_lines":[{"line_number":16,"context_line":"# Comment to force rebuilds Mon, 20 May 2024 15:45:40 +0000"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# TODO: If we\u0027d  like this could be out python-bookworm image"},{"line_number":19,"context_line":"FROM docker.io/alpine/git:latest AS builder"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"# NOTE: This currently clones and extracts 2 versions of the \u0027strapping\u0027 skin, Only one can be installed."},{"line_number":22,"context_line":"#  Thses can probably both be dropped."}],"source_content_type":"text/x-dockerfile","patch_set":2,"id":"6ace39b1_d8b64c58","line":19,"updated":"2024-06-04 22:34:15.000000000","message":"Nit you might make this more efficient using a debian based builder as then the base image layers can be shared between this stage and the next one.","commit_id":"921ea490aaa5384b341350bbc2b878fade381af0"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"e49050120cdc7acee3ed194f24129fb05217fde3","unresolved":true,"context_lines":[{"line_number":16,"context_line":"# Comment to force rebuilds Mon, 20 May 2024 15:45:40 +0000"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# TODO: If we\u0027d  like this could be out python-bookworm image"},{"line_number":19,"context_line":"FROM docker.io/alpine/git:latest AS builder"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"# NOTE: This currently clones and extracts 2 versions of the \u0027strapping\u0027 skin, Only one can be installed."},{"line_number":22,"context_line":"#  Thses can probably both be dropped."}],"source_content_type":"text/x-dockerfile","patch_set":2,"id":"ba48dd23_d26ac5db","line":19,"in_reply_to":"6ace39b1_d8b64c58","updated":"2024-06-05 17:42:07.000000000","message":"Okay.  I think it\u0027ll be less of a saving overall as the official mediawiki container doesn\u0027t share a common origin.","commit_id":"921ea490aaa5384b341350bbc2b878fade381af0"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"b6046f72c1f54b877bd804d54f4971b30ebc1cd6","unresolved":false,"context_lines":[{"line_number":16,"context_line":"# Comment to force rebuilds Mon, 20 May 2024 15:45:40 +0000"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"# TODO: If we\u0027d  like this could be out python-bookworm image"},{"line_number":19,"context_line":"FROM docker.io/alpine/git:latest AS builder"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"# NOTE: This currently clones and extracts 2 versions of the \u0027strapping\u0027 skin, Only one can be installed."},{"line_number":22,"context_line":"#  Thses can probably both be dropped."}],"source_content_type":"text/x-dockerfile","patch_set":2,"id":"30594b28_62b52e5e","line":19,"in_reply_to":"ba48dd23_d26ac5db","updated":"2024-08-21 01:34:19.000000000","message":"Done","commit_id":"921ea490aaa5384b341350bbc2b878fade381af0"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"ae9391b39983b175aed1005cb4153d70d55c04f0","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    for extention in AntiSpoof Babel CategoryTree CheckUser CirrusSearch cldr CodeEditor \\"},{"line_number":26,"context_line":"                     Collection Echo Elastica googleAnalytics OpenID ReplaceText Scribunto \\"},{"line_number":27,"context_line":"                     SmiteSpam SubPageList3 Translate UniversalLanguageSelector ; do \\"},{"line_number":28,"context_line":"        git clone --no-checkout https://gerrit.wikimedia.org/r/mediawiki/extensions/${extention}.git ; \\"},{"line_number":29,"context_line":"        git -C $extention archive --prefix \"${extention}/\" --format\u003dtar --output\u003d/tmp/Ext_${extention}.tar origin/REL1_28 ; \\"},{"line_number":30,"context_line":"    done \u0026\u0026 \\"},{"line_number":31,"context_line":"    git clone --no-checkout https://gitlab.com/hydrawiki/extensions/EmbedVideo.git \u0026\u0026 \\"}],"source_content_type":"text/x-dockerfile","patch_set":2,"id":"038f0bce_9bd99fd1","line":28,"updated":"2024-06-04 22:34:15.000000000","message":"You might make these clones shallow clones since all we care about is the archive output? I think that is valid with git or does archive require the whole clone?","commit_id":"921ea490aaa5384b341350bbc2b878fade381af0"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"e49050120cdc7acee3ed194f24129fb05217fde3","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    for extention in AntiSpoof Babel CategoryTree CheckUser CirrusSearch cldr CodeEditor \\"},{"line_number":26,"context_line":"                     Collection Echo Elastica googleAnalytics OpenID ReplaceText Scribunto \\"},{"line_number":27,"context_line":"                     SmiteSpam SubPageList3 Translate UniversalLanguageSelector ; do \\"},{"line_number":28,"context_line":"        git clone --no-checkout https://gerrit.wikimedia.org/r/mediawiki/extensions/${extention}.git ; \\"},{"line_number":29,"context_line":"        git -C $extention archive --prefix \"${extention}/\" --format\u003dtar --output\u003d/tmp/Ext_${extention}.tar origin/REL1_28 ; \\"},{"line_number":30,"context_line":"    done \u0026\u0026 \\"},{"line_number":31,"context_line":"    git clone --no-checkout https://gitlab.com/hydrawiki/extensions/EmbedVideo.git \u0026\u0026 \\"}],"source_content_type":"text/x-dockerfile","patch_set":2,"id":"f20d7bd2_2c7b31a6","line":28,"in_reply_to":"038f0bce_9bd99fd1","updated":"2024-06-05 17:42:07.000000000","message":"After experimenting I can do it with a shallow clone. it reduces the disk usage from 227M to 46M.  So it\u0027s clearly more efficient.  My gut says that as we get closer to master the delta will be less, but at that stage we\u0027ll be close enough to just grab the tarballs directly from wikimedia and not worry about the git shenanigans.","commit_id":"921ea490aaa5384b341350bbc2b878fade381af0"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"b6046f72c1f54b877bd804d54f4971b30ebc1cd6","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    for extention in AntiSpoof Babel CategoryTree CheckUser CirrusSearch cldr CodeEditor \\"},{"line_number":26,"context_line":"                     Collection Echo Elastica googleAnalytics OpenID ReplaceText Scribunto \\"},{"line_number":27,"context_line":"                     SmiteSpam SubPageList3 Translate UniversalLanguageSelector ; do \\"},{"line_number":28,"context_line":"        git clone --no-checkout https://gerrit.wikimedia.org/r/mediawiki/extensions/${extention}.git ; \\"},{"line_number":29,"context_line":"        git -C $extention archive --prefix \"${extention}/\" --format\u003dtar --output\u003d/tmp/Ext_${extention}.tar origin/REL1_28 ; \\"},{"line_number":30,"context_line":"    done \u0026\u0026 \\"},{"line_number":31,"context_line":"    git clone --no-checkout https://gitlab.com/hydrawiki/extensions/EmbedVideo.git \u0026\u0026 \\"}],"source_content_type":"text/x-dockerfile","patch_set":2,"id":"023b0c54_fb340e15","line":28,"in_reply_to":"f20d7bd2_2c7b31a6","updated":"2024-08-21 01:34:19.000000000","message":"Done","commit_id":"921ea490aaa5384b341350bbc2b878fade381af0"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"97b50ca66a513282f91fecf184e6f1a396a0cc02","unresolved":true,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"RUN mkdir -p /tmp \u0026\u0026 \\"},{"line_number":36,"context_line":"    cd /tmp \u0026\u0026 \\"},{"line_number":37,"context_line":"    for extention in AntiSpoof Babel CategoryTree CheckUser CirrusSearch cldr CodeEditor \\"},{"line_number":38,"context_line":"                     Collection Echo Elastica googleAnalytics OpenID ReplaceText Scribunto \\"},{"line_number":39,"context_line":"                     SmiteSpam SubPageList3 Translate UniversalLanguageSelector ; do \\"},{"line_number":40,"context_line":"        git clone --bare --branch ${MW_BRANCH} --depth 1 https://gerrit.wikimedia.org/r/mediawiki/extensions/${extention}.git ; \\"}],"source_content_type":"text/x-dockerfile","patch_set":14,"id":"33584708_6b8a7f73","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":17},"updated":"2024-08-24 07:00:29.000000000","message":"nit: this spelling of the variable name is confusing to me, I know it doesn\u0027t matter technically since it is being used consistently, but can we still switch to `extension`?","commit_id":"037d1b4cce6ab6a2b7721a9ad72c9e6575f28df5"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"75c6a74d9c2a59227751b168dac8259ab6b93c96","unresolved":false,"context_lines":[{"line_number":34,"context_line":""},{"line_number":35,"context_line":"RUN mkdir -p /tmp \u0026\u0026 \\"},{"line_number":36,"context_line":"    cd /tmp \u0026\u0026 \\"},{"line_number":37,"context_line":"    for extention in AntiSpoof Babel CategoryTree CheckUser CirrusSearch cldr CodeEditor \\"},{"line_number":38,"context_line":"                     Collection Echo Elastica googleAnalytics OpenID ReplaceText Scribunto \\"},{"line_number":39,"context_line":"                     SmiteSpam SubPageList3 Translate UniversalLanguageSelector ; do \\"},{"line_number":40,"context_line":"        git clone --bare --branch ${MW_BRANCH} --depth 1 https://gerrit.wikimedia.org/r/mediawiki/extensions/${extention}.git ; \\"}],"source_content_type":"text/x-dockerfile","patch_set":14,"id":"71a1349e_d494c7bc","line":37,"range":{"start_line":37,"start_character":8,"end_line":37,"end_character":17},"in_reply_to":"33584708_6b8a7f73","updated":"2025-01-07 03:50:06.000000000","message":"Done","commit_id":"037d1b4cce6ab6a2b7721a9ad72c9e6575f28df5"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"97b50ca66a513282f91fecf184e6f1a396a0cc02","unresolved":true,"context_lines":[{"line_number":88,"context_line":"RUN chown -R www-data:www-data /var/www/html \u0026\u0026 \\"},{"line_number":89,"context_line":"    chmod -R u\u003drwX,g\u003drwX,o\u003drX /var/www/html"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    RUN for mod in expires mime rewrite ; do a2enmod $mod ; done"}],"source_content_type":"text/x-dockerfile","patch_set":14,"id":"85f89164_18764349","line":91,"updated":"2024-08-24 07:00:29.000000000","message":"tinynit: unindent this?","commit_id":"037d1b4cce6ab6a2b7721a9ad72c9e6575f28df5"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"75c6a74d9c2a59227751b168dac8259ab6b93c96","unresolved":false,"context_lines":[{"line_number":88,"context_line":"RUN chown -R www-data:www-data /var/www/html \u0026\u0026 \\"},{"line_number":89,"context_line":"    chmod -R u\u003drwX,g\u003drwX,o\u003drX /var/www/html"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    RUN for mod in expires mime rewrite ; do a2enmod $mod ; done"}],"source_content_type":"text/x-dockerfile","patch_set":14,"id":"1f6eec80_7c32f05c","line":91,"in_reply_to":"85f89164_18764349","updated":"2025-01-07 03:50:06.000000000","message":"Done","commit_id":"037d1b4cce6ab6a2b7721a9ad72c9e6575f28df5"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"c4a8fdf9f620c8c3e4a3fb51083a05fda5e66d6f","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    for extension in AntiSpoof Babel CategoryTree CheckUser CirrusSearch cldr CodeEditor \\"},{"line_number":38,"context_line":"                     Collection Echo Elastica googleAnalytics OpenID ReplaceText Scribunto \\"},{"line_number":39,"context_line":"                     SmiteSpam SubPageList3 Translate UniversalLanguageSelector ; do \\"},{"line_number":40,"context_line":"        git clone --bare --branch ${MW_BRANCH} --depth 1 https://gerrit.wikimedia.org/r/mediawiki/extensions/${extension}.git ; \\"},{"line_number":41,"context_line":"        git -C ${extension}.git archive --prefix \"${extension}/\" --format\u003dtar --output\u003d/tmp/Ext_${extension}.tar HEAD ; \\"},{"line_number":42,"context_line":"    done \u0026\u0026 \\"},{"line_number":43,"context_line":"    git clone --bare --branch ${MW_BRANCH} --depth 1 https://gerrit.wikimedia.org/r/mediawiki/skins/mediawiki-strapping \u0026\u0026 \\"}],"source_content_type":"text/x-dockerfile","patch_set":17,"id":"d1a082fc_4680d283","line":40,"updated":"2025-10-29 20:26:51.000000000","message":"I wonder if wikimedia runs mirrors like we do and we should fetch from somewhere other than the Gerrit server.","commit_id":"abaf849b447501f24096331b61a4db28a8885ed6"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"886535120b9062fecf0fc3ec5109e67b39085bd9","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    for extension in AntiSpoof Babel CategoryTree CheckUser CirrusSearch cldr CodeEditor \\"},{"line_number":38,"context_line":"                     Collection Echo Elastica googleAnalytics OpenID ReplaceText Scribunto \\"},{"line_number":39,"context_line":"                     SmiteSpam SubPageList3 Translate UniversalLanguageSelector ; do \\"},{"line_number":40,"context_line":"        git clone --bare --branch ${MW_BRANCH} --depth 1 https://gerrit.wikimedia.org/r/mediawiki/extensions/${extension}.git ; \\"},{"line_number":41,"context_line":"        git -C ${extension}.git archive --prefix \"${extension}/\" --format\u003dtar --output\u003d/tmp/Ext_${extension}.tar HEAD ; \\"},{"line_number":42,"context_line":"    done \u0026\u0026 \\"},{"line_number":43,"context_line":"    git clone --bare --branch ${MW_BRANCH} --depth 1 https://gerrit.wikimedia.org/r/mediawiki/skins/mediawiki-strapping \u0026\u0026 \\"}],"source_content_type":"text/x-dockerfile","patch_set":17,"id":"dfbd18bf_a8e5d6e6","line":40,"in_reply_to":"02751f4e_ed8ec188","updated":"2026-04-14 05:59:21.000000000","message":"Done","commit_id":"abaf849b447501f24096331b61a4db28a8885ed6"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"4545e86a05d0570f195e974e9982c897fadbd241","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    for extension in AntiSpoof Babel CategoryTree CheckUser CirrusSearch cldr CodeEditor \\"},{"line_number":38,"context_line":"                     Collection Echo Elastica googleAnalytics OpenID ReplaceText Scribunto \\"},{"line_number":39,"context_line":"                     SmiteSpam SubPageList3 Translate UniversalLanguageSelector ; do \\"},{"line_number":40,"context_line":"        git clone --bare --branch ${MW_BRANCH} --depth 1 https://gerrit.wikimedia.org/r/mediawiki/extensions/${extension}.git ; \\"},{"line_number":41,"context_line":"        git -C ${extension}.git archive --prefix \"${extension}/\" --format\u003dtar --output\u003d/tmp/Ext_${extension}.tar HEAD ; \\"},{"line_number":42,"context_line":"    done \u0026\u0026 \\"},{"line_number":43,"context_line":"    git clone --bare --branch ${MW_BRANCH} --depth 1 https://gerrit.wikimedia.org/r/mediawiki/skins/mediawiki-strapping \u0026\u0026 \\"}],"source_content_type":"text/x-dockerfile","patch_set":17,"id":"9ce3df09_da2374f0","line":40,"in_reply_to":"41f61fb1_05c29e37","updated":"2026-04-13 14:49:51.000000000","message":"It seems the recommended way to download extensions is Extension Distributor https://www.mediawiki.org/wiki/Manual:Extensions e.g. https://www.mediawiki.org/w/index.php?title\u003dSpecial:ExtensionDistributor\u0026extdistname\u003dAntiSpoof\u0026extdistversion\u003dREL1_45","commit_id":"abaf849b447501f24096331b61a4db28a8885ed6"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"a0cc92c5805deccc038a4915c958d1a5d4ae091f","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    for extension in AntiSpoof Babel CategoryTree CheckUser CirrusSearch cldr CodeEditor \\"},{"line_number":38,"context_line":"                     Collection Echo Elastica googleAnalytics OpenID ReplaceText Scribunto \\"},{"line_number":39,"context_line":"                     SmiteSpam SubPageList3 Translate UniversalLanguageSelector ; do \\"},{"line_number":40,"context_line":"        git clone --bare --branch ${MW_BRANCH} --depth 1 https://gerrit.wikimedia.org/r/mediawiki/extensions/${extension}.git ; \\"},{"line_number":41,"context_line":"        git -C ${extension}.git archive --prefix \"${extension}/\" --format\u003dtar --output\u003d/tmp/Ext_${extension}.tar HEAD ; \\"},{"line_number":42,"context_line":"    done \u0026\u0026 \\"},{"line_number":43,"context_line":"    git clone --bare --branch ${MW_BRANCH} --depth 1 https://gerrit.wikimedia.org/r/mediawiki/skins/mediawiki-strapping \u0026\u0026 \\"}],"source_content_type":"text/x-dockerfile","patch_set":17,"id":"02751f4e_ed8ec188","line":40,"in_reply_to":"9ce3df09_da2374f0","updated":"2026-04-13 15:25:47.000000000","message":"Which would be fine if we wouldn\u0027t need to build 1.28","commit_id":"abaf849b447501f24096331b61a4db28a8885ed6"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"60fac86d118deb0e03388047f40e016009cfd5bd","unresolved":true,"context_lines":[{"line_number":37,"context_line":"    for extension in AntiSpoof Babel CategoryTree CheckUser CirrusSearch cldr CodeEditor \\"},{"line_number":38,"context_line":"                     Collection Echo Elastica googleAnalytics OpenID ReplaceText Scribunto \\"},{"line_number":39,"context_line":"                     SmiteSpam SubPageList3 Translate UniversalLanguageSelector ; do \\"},{"line_number":40,"context_line":"        git clone --bare --branch ${MW_BRANCH} --depth 1 https://gerrit.wikimedia.org/r/mediawiki/extensions/${extension}.git ; \\"},{"line_number":41,"context_line":"        git -C ${extension}.git archive --prefix \"${extension}/\" --format\u003dtar --output\u003d/tmp/Ext_${extension}.tar HEAD ; \\"},{"line_number":42,"context_line":"    done \u0026\u0026 \\"},{"line_number":43,"context_line":"    git clone --bare --branch ${MW_BRANCH} --depth 1 https://gerrit.wikimedia.org/r/mediawiki/skins/mediawiki-strapping \u0026\u0026 \\"}],"source_content_type":"text/x-dockerfile","patch_set":17,"id":"41f61fb1_05c29e37","line":40,"in_reply_to":"d1a082fc_4680d283","updated":"2025-10-30 07:32:04.000000000","message":"It looks like they do have mirrors on github.  Should I switch to using those?","commit_id":"abaf849b447501f24096331b61a4db28a8885ed6"}],"docker/mediawiki/ports.conf":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"147a2c566d9ee110d83ccae4a001d2e4217edf68","unresolved":true,"context_lines":[{"line_number":3,"context_line":"# /etc/apache2/sites-enabled/000-default.conf"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Listen 127.0.0.1:80"},{"line_number":6,"context_line":"Listen [::1]:80"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"\u003cIfModule ssl_module\u003e"},{"line_number":9,"context_line":"\tListen 443"}],"source_content_type":"text/plain","patch_set":14,"id":"d7e8e4e1_674cd751","line":6,"updated":"2024-08-21 21:04:04.000000000","message":"Looks like the network config we end up with is apache in the container listens on port 80 on localhost using host networking. Then apache running on the base OS listens on port 443 and proxies to port 80. I think this is fine just want to make sure I understand the intention.","commit_id":"037d1b4cce6ab6a2b7721a9ad72c9e6575f28df5"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"fd497b685bc16cf8f2c53b742f9d0d3f727a157b","unresolved":false,"context_lines":[{"line_number":3,"context_line":"# /etc/apache2/sites-enabled/000-default.conf"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Listen 127.0.0.1:80"},{"line_number":6,"context_line":"Listen [::1]:80"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"\u003cIfModule ssl_module\u003e"},{"line_number":9,"context_line":"\tListen 443"}],"source_content_type":"text/plain","patch_set":14,"id":"ee8785b1_e3971897","line":6,"in_reply_to":"aafa5725_b0d6946a","updated":"2025-10-12 04:26:29.000000000","message":"Done","commit_id":"037d1b4cce6ab6a2b7721a9ad72c9e6575f28df5"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"e4f1480d6a0dc0bee287ade144c9e0bd5415b996","unresolved":true,"context_lines":[{"line_number":3,"context_line":"# /etc/apache2/sites-enabled/000-default.conf"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Listen 127.0.0.1:80"},{"line_number":6,"context_line":"Listen [::1]:80"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"\u003cIfModule ssl_module\u003e"},{"line_number":9,"context_line":"\tListen 443"}],"source_content_type":"text/plain","patch_set":14,"id":"e4de2d3e_502d63bc","line":6,"in_reply_to":"d7e8e4e1_674cd751","updated":"2025-01-07 03:55:22.000000000","message":"Yes, The host Apache only listens on \u003cpublic IP\u003e:80 and \u003cpublic IP\u003e:443.\nThe container Apache only localhost:80 and localhost6:80.\n\nThe host Apache accepts connections for http/80 and rewites them to be https/443.\nThe host Apache terminsates SSL on https/443, and proxies everything to the apache in the container via http/80 over localhost.\n\nI\u0027d like to simplify this, if possible.","commit_id":"037d1b4cce6ab6a2b7721a9ad72c9e6575f28df5"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"275df8008b8987378de700b4d5a0160fc416a3b4","unresolved":true,"context_lines":[{"line_number":3,"context_line":"# /etc/apache2/sites-enabled/000-default.conf"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Listen 127.0.0.1:80"},{"line_number":6,"context_line":"Listen [::1]:80"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"\u003cIfModule ssl_module\u003e"},{"line_number":9,"context_line":"\tListen 443"}],"source_content_type":"text/plain","patch_set":14,"id":"ecd856b3_05fcd18e","line":6,"in_reply_to":"e4de2d3e_502d63bc","updated":"2025-01-07 21:56:24.000000000","message":"One option for simplification may be to have the container listen on localhost:8080 (or similar) then the host side can listen on all addresses for 80 and 443. This also mimics what we do with other services that get proxied to from apache (gerrit, gitea, etherpad, etc). The only difference with those is instead of being another apache its a distinct application.","commit_id":"037d1b4cce6ab6a2b7721a9ad72c9e6575f28df5"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"09df22e11277986a5741d26baa6184a6e714d0a0","unresolved":true,"context_lines":[{"line_number":3,"context_line":"# /etc/apache2/sites-enabled/000-default.conf"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Listen 127.0.0.1:80"},{"line_number":6,"context_line":"Listen [::1]:80"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"\u003cIfModule ssl_module\u003e"},{"line_number":9,"context_line":"\tListen 443"}],"source_content_type":"text/plain","patch_set":14,"id":"aafa5725_b0d6946a","line":6,"in_reply_to":"ecd856b3_05fcd18e","updated":"2025-01-07 21:57:45.000000000","message":"Thanks.  I see you said similar in the follow-up patch.  I think, that\u0027ll work nicely","commit_id":"037d1b4cce6ab6a2b7721a9ad72c9e6575f28df5"}],"zuul.d/docker-images/mediawiki.yaml":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"ae9391b39983b175aed1005cb4153d70d55c04f0","unresolved":true,"context_lines":[{"line_number":9,"context_line":"        - context: docker/mediawiki"},{"line_number":10,"context_line":"          repository: opendevorg/mediawiki"},{"line_number":11,"context_line":"    files: \u0026mediawiki_files"},{"line_number":12,"context_line":"      - docker/mediawiki/"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"- job:"},{"line_number":15,"context_line":"    name: system-config-upload-image-mediawiki"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"48a7411b_eac85fc5","line":12,"updated":"2024-06-04 22:34:15.000000000","message":"Do we want to tag the mediawiki image with specific versions or just rely on latest and updating latest over time to get what we want?\n\n(we use both approaches for other services, gerrit does explicit version tags and gitea just relies on mapping the version we want to :latest. Just want to make sure we choose an intentional approach and don\u0027t really have a strong opinion yet on which is best for mediawiki).","commit_id":"921ea490aaa5384b341350bbc2b878fade381af0"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"e49050120cdc7acee3ed194f24129fb05217fde3","unresolved":true,"context_lines":[{"line_number":9,"context_line":"        - context: docker/mediawiki"},{"line_number":10,"context_line":"          repository: opendevorg/mediawiki"},{"line_number":11,"context_line":"    files: \u0026mediawiki_files"},{"line_number":12,"context_line":"      - docker/mediawiki/"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"- job:"},{"line_number":15,"context_line":"    name: system-config-upload-image-mediawiki"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"ec15fca4_b418f17b","line":12,"in_reply_to":"48a7411b_eac85fc5","updated":"2024-06-05 17:42:07.000000000","message":"Good point.  I\u0027ll have think about it but right now I\u0027m leaning towards adding a version component.  Similar to the gerrit containers.  I think that makes upgrade testing more doable and even if it doesn\u0027t it makes the upgrade/rollback process easier to reason about.","commit_id":"921ea490aaa5384b341350bbc2b878fade381af0"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"b6046f72c1f54b877bd804d54f4971b30ebc1cd6","unresolved":false,"context_lines":[{"line_number":9,"context_line":"        - context: docker/mediawiki"},{"line_number":10,"context_line":"          repository: opendevorg/mediawiki"},{"line_number":11,"context_line":"    files: \u0026mediawiki_files"},{"line_number":12,"context_line":"      - docker/mediawiki/"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"- job:"},{"line_number":15,"context_line":"    name: system-config-upload-image-mediawiki"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7a5e5a02_25ff083f","line":12,"in_reply_to":"ec15fca4_b418f17b","updated":"2024-08-21 01:34:19.000000000","message":"Done","commit_id":"921ea490aaa5384b341350bbc2b878fade381af0"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"c7c3da01e6f08f749b0db19ab80a233bad492f2b","unresolved":true,"context_lines":[{"line_number":54,"context_line":"          - MW_CONTAINER_TAG\u003d1.35.13"},{"line_number":55,"context_line":"          - MEMCACHED_VERSION\u003d3.2.0"},{"line_number":56,"context_line":"          tag:"},{"line_number":57,"context_line":"          - \u00271.28\u0027"},{"line_number":58,"context_line":"    files: \u00261_35_mediawiki_files"},{"line_number":59,"context_line":"      - docker/mediawiki/"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"e5ee16c7_5010c769","line":57,"updated":"2024-06-06 21:13:54.000000000","message":"Clearly this is wrong","commit_id":"3f71706a0f76c7d9f2a9a5f7b9cc8b49ae850efa"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"b6046f72c1f54b877bd804d54f4971b30ebc1cd6","unresolved":false,"context_lines":[{"line_number":54,"context_line":"          - MW_CONTAINER_TAG\u003d1.35.13"},{"line_number":55,"context_line":"          - MEMCACHED_VERSION\u003d3.2.0"},{"line_number":56,"context_line":"          tag:"},{"line_number":57,"context_line":"          - \u00271.28\u0027"},{"line_number":58,"context_line":"    files: \u00261_35_mediawiki_files"},{"line_number":59,"context_line":"      - docker/mediawiki/"},{"line_number":60,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5add455e_b35e9de9","line":57,"in_reply_to":"e5ee16c7_5010c769","updated":"2024-08-21 01:34:19.000000000","message":"Done","commit_id":"3f71706a0f76c7d9f2a9a5f7b9cc8b49ae850efa"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"97b50ca66a513282f91fecf184e6f1a396a0cc02","unresolved":true,"context_lines":[{"line_number":18,"context_line":"          tags:"},{"line_number":19,"context_line":"            - \u00271.28\u0027"},{"line_number":20,"context_line":"    files: \u00261_28_mediawiki_files"},{"line_number":21,"context_line":"      - docker/mediawiki/"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- job:"},{"line_number":24,"context_line":"    name: system-config-upload-image-mediawiki-1.28"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"1a972c97_de228556","line":21,"updated":"2024-08-24 07:00:29.000000000","message":"shouldn\u0027t this also include zuul.d/docker-images/mediawiki.yaml (this file)?","commit_id":"037d1b4cce6ab6a2b7721a9ad72c9e6575f28df5"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"75c6a74d9c2a59227751b168dac8259ab6b93c96","unresolved":false,"context_lines":[{"line_number":18,"context_line":"          tags:"},{"line_number":19,"context_line":"            - \u00271.28\u0027"},{"line_number":20,"context_line":"    files: \u00261_28_mediawiki_files"},{"line_number":21,"context_line":"      - docker/mediawiki/"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- job:"},{"line_number":24,"context_line":"    name: system-config-upload-image-mediawiki-1.28"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"2bd0e6b6_1256ee45","line":21,"in_reply_to":"1a972c97_de228556","updated":"2025-01-07 03:50:06.000000000","message":"Done","commit_id":"037d1b4cce6ab6a2b7721a9ad72c9e6575f28df5"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"64564e0932bd4489f926a7f897fedd5aea64d472","unresolved":true,"context_lines":[{"line_number":8,"context_line":"    provides: mediawiki-1.28-container-image"},{"line_number":9,"context_line":"    parent: system-config-build-image"},{"line_number":10,"context_line":"    vars: \u00261_28_mediawiki_vars"},{"line_number":11,"context_line":"      docker_images:"},{"line_number":12,"context_line":"        - context: docker/mediawiki"},{"line_number":13,"context_line":"          repository: opendevorg/mediawiki"},{"line_number":14,"context_line":"          build_args:"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"9987a122_f64973c3","line":11,"updated":"2025-10-29 20:29:29.000000000","message":"We have been trying to move our images to quay.io hosting if the deployment for the service is on ubuntu noble or newer. I think we should do that for this image if we plan to deploy on noble as its one less thing to change later.\n\nIf you need examples for how these jobs are updated to do that check out gerrit or hound.","commit_id":"abaf849b447501f24096331b61a4db28a8885ed6"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"bf7d882beaeed8bedad716299f1737de4edca929","unresolved":true,"context_lines":[{"line_number":8,"context_line":"    provides: mediawiki-1.28-container-image"},{"line_number":9,"context_line":"    parent: system-config-build-image"},{"line_number":10,"context_line":"    vars: \u00261_28_mediawiki_vars"},{"line_number":11,"context_line":"      docker_images:"},{"line_number":12,"context_line":"        - context: docker/mediawiki"},{"line_number":13,"context_line":"          repository: opendevorg/mediawiki"},{"line_number":14,"context_line":"          build_args:"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"a5d52376_e06af151","line":11,"in_reply_to":"9987a122_f64973c3","updated":"2025-10-30 07:36:09.000000000","message":"Oh yup that makes sense.  I\u0027ll update based on those examples","commit_id":"abaf849b447501f24096331b61a4db28a8885ed6"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"712e0124dcf18d2e80da2e42878c61494c12a61d","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    provides: mediawiki-1.28-container-image"},{"line_number":9,"context_line":"    parent: system-config-build-image"},{"line_number":10,"context_line":"    vars: \u00261_28_mediawiki_vars"},{"line_number":11,"context_line":"      docker_images:"},{"line_number":12,"context_line":"        - context: docker/mediawiki"},{"line_number":13,"context_line":"          repository: opendevorg/mediawiki"},{"line_number":14,"context_line":"          build_args:"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"b73642a8_9b93c623","line":11,"in_reply_to":"a5d52376_e06af151","updated":"2026-04-14 05:59:35.000000000","message":"Done","commit_id":"abaf849b447501f24096331b61a4db28a8885ed6"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"b80e59e052ede96576851fc9df8a201897b2b310","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    description: Build a mediawiki image."},{"line_number":5,"context_line":"    requires:"},{"line_number":6,"context_line":"      - assets-container-image"},{"line_number":7,"context_line":"      - python-base-3.11-trixie-container-image"},{"line_number":8,"context_line":"    provides: mediawiki-1.28-container-image"},{"line_number":9,"context_line":"    parent: system-config-build-image"},{"line_number":10,"context_line":"    vars: \u00261_28_mediawiki_vars"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"3887e3fe_20e67443","line":7,"updated":"2026-04-17 09:35:48.000000000","message":"we are running off 3.12 now","commit_id":"5941626753d921d7b3f28589635c5e635b677953"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"b6875e7c67abe2993f87eeeee393aee6420295f1","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    description: Build a mediawiki image."},{"line_number":5,"context_line":"    requires:"},{"line_number":6,"context_line":"      - assets-container-image"},{"line_number":7,"context_line":"      - python-base-3.11-trixie-container-image"},{"line_number":8,"context_line":"    provides: mediawiki-1.28-container-image"},{"line_number":9,"context_line":"    parent: system-config-build-image"},{"line_number":10,"context_line":"    vars: \u00261_28_mediawiki_vars"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"4b11e132_dee53efa","line":7,"in_reply_to":"3887e3fe_20e67443","updated":"2026-04-20 17:12:35.000000000","message":"Done","commit_id":"5941626753d921d7b3f28589635c5e635b677953"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"b80e59e052ede96576851fc9df8a201897b2b310","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    description: Build and upload a mediawiki image."},{"line_number":30,"context_line":"    requires:"},{"line_number":31,"context_line":"      - assets-container-image"},{"line_number":32,"context_line":"      - python-base-3.11-trixie-container-image"},{"line_number":33,"context_line":"    provides: mediawiki-1.28-container-image"},{"line_number":34,"context_line":"    parent: system-config-upload-image"},{"line_number":35,"context_line":"    vars: *1_28_mediawiki_vars"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"440706d7_a100afe7","line":32,"updated":"2026-04-17 09:35:48.000000000","message":"dito","commit_id":"5941626753d921d7b3f28589635c5e635b677953"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"b6875e7c67abe2993f87eeeee393aee6420295f1","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    description: Build and upload a mediawiki image."},{"line_number":30,"context_line":"    requires:"},{"line_number":31,"context_line":"      - assets-container-image"},{"line_number":32,"context_line":"      - python-base-3.11-trixie-container-image"},{"line_number":33,"context_line":"    provides: mediawiki-1.28-container-image"},{"line_number":34,"context_line":"    parent: system-config-upload-image"},{"line_number":35,"context_line":"    vars: *1_28_mediawiki_vars"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"7f05e1a3_529ef1b8","line":32,"in_reply_to":"440706d7_a100afe7","updated":"2026-04-20 17:12:35.000000000","message":"Done","commit_id":"5941626753d921d7b3f28589635c5e635b677953"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"b80e59e052ede96576851fc9df8a201897b2b310","unresolved":true,"context_lines":[{"line_number":48,"context_line":"    description: Build a mediawiki image."},{"line_number":49,"context_line":"    requires:"},{"line_number":50,"context_line":"      - assets-container-image"},{"line_number":51,"context_line":"      - python-base-3.11-trixie-container-image"},{"line_number":52,"context_line":"    provides: mediawiki-1.35-container-image"},{"line_number":53,"context_line":"    parent: system-config-build-image"},{"line_number":54,"context_line":"    vars: \u00261_35_mediawiki_vars"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"be4b8f50_24234ecc","line":51,"updated":"2026-04-17 09:35:48.000000000","message":"dito","commit_id":"5941626753d921d7b3f28589635c5e635b677953"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"b6875e7c67abe2993f87eeeee393aee6420295f1","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    description: Build a mediawiki image."},{"line_number":49,"context_line":"    requires:"},{"line_number":50,"context_line":"      - assets-container-image"},{"line_number":51,"context_line":"      - python-base-3.11-trixie-container-image"},{"line_number":52,"context_line":"    provides: mediawiki-1.35-container-image"},{"line_number":53,"context_line":"    parent: system-config-build-image"},{"line_number":54,"context_line":"    vars: \u00261_35_mediawiki_vars"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"d386f0d6_c453c42a","line":51,"in_reply_to":"be4b8f50_24234ecc","updated":"2026-04-20 17:12:35.000000000","message":"Done","commit_id":"5941626753d921d7b3f28589635c5e635b677953"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"b80e59e052ede96576851fc9df8a201897b2b310","unresolved":true,"context_lines":[{"line_number":74,"context_line":"    description: Build and upload a mediawiki image."},{"line_number":75,"context_line":"    requires:"},{"line_number":76,"context_line":"      - assets-container-image"},{"line_number":77,"context_line":"      - python-base-3.11-trixie-container-image"},{"line_number":78,"context_line":"    provides: mediawiki-1.35-container-image"},{"line_number":79,"context_line":"    parent: system-config-upload-image"},{"line_number":80,"context_line":"    vars: *1_35_mediawiki_vars"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"05f9c850_6f8e1fc7","line":77,"updated":"2026-04-17 09:35:48.000000000","message":"dito","commit_id":"5941626753d921d7b3f28589635c5e635b677953"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"b6875e7c67abe2993f87eeeee393aee6420295f1","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    description: Build and upload a mediawiki image."},{"line_number":75,"context_line":"    requires:"},{"line_number":76,"context_line":"      - assets-container-image"},{"line_number":77,"context_line":"      - python-base-3.11-trixie-container-image"},{"line_number":78,"context_line":"    provides: mediawiki-1.35-container-image"},{"line_number":79,"context_line":"    parent: system-config-upload-image"},{"line_number":80,"context_line":"    vars: *1_35_mediawiki_vars"}],"source_content_type":"text/x-yaml","patch_set":18,"id":"c8252f50_37164ad4","line":77,"in_reply_to":"05f9c850_6f8e1fc7","updated":"2026-04-20 17:12:35.000000000","message":"Done","commit_id":"5941626753d921d7b3f28589635c5e635b677953"}],"zuul.d/project.yaml":[{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"97b50ca66a513282f91fecf184e6f1a396a0cc02","unresolved":true,"context_lines":[{"line_number":304,"context_line":"              - name: system-config-upload-image-python-builder-3.11-bookworm"},{"line_number":305,"context_line":"                soft: true"},{"line_number":306,"context_line":"        - system-config-build-image-mediawiki-1.28"},{"line_number":307,"context_line":"        - system-config-build-image-mediawiki-1.35"},{"line_number":308,"context_line":"        - system-config-upload-image-python-base-3.10-bullseye"},{"line_number":309,"context_line":"        - system-config-upload-image-python-builder-3.10-bullseye"},{"line_number":310,"context_line":"        - system-config-upload-image-uwsgi-base-3.10-bullseye"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"9049b042_f6eafebc","line":307,"range":{"start_line":307,"start_character":24,"end_line":307,"end_character":29},"updated":"2024-08-24 07:00:29.000000000","message":"s/build/upload/ for these two?","commit_id":"037d1b4cce6ab6a2b7721a9ad72c9e6575f28df5"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"75c6a74d9c2a59227751b168dac8259ab6b93c96","unresolved":false,"context_lines":[{"line_number":304,"context_line":"              - name: system-config-upload-image-python-builder-3.11-bookworm"},{"line_number":305,"context_line":"                soft: true"},{"line_number":306,"context_line":"        - system-config-build-image-mediawiki-1.28"},{"line_number":307,"context_line":"        - system-config-build-image-mediawiki-1.35"},{"line_number":308,"context_line":"        - system-config-upload-image-python-base-3.10-bullseye"},{"line_number":309,"context_line":"        - system-config-upload-image-python-builder-3.10-bullseye"},{"line_number":310,"context_line":"        - system-config-upload-image-uwsgi-base-3.10-bullseye"}],"source_content_type":"text/x-yaml","patch_set":14,"id":"6df7a6da_a94df4b5","line":307,"range":{"start_line":307,"start_character":24,"end_line":307,"end_character":29},"in_reply_to":"9049b042_f6eafebc","updated":"2025-01-07 03:50:06.000000000","message":"Done","commit_id":"037d1b4cce6ab6a2b7721a9ad72c9e6575f28df5"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"c4a8fdf9f620c8c3e4a3fb51083a05fda5e66d6f","unresolved":true,"context_lines":[{"line_number":339,"context_line":"        - system-config-promote-image-python-builder-3.11-trixie"},{"line_number":340,"context_line":"        - system-config-promote-image-python-builder-3.12-trixie"},{"line_number":341,"context_line":"        - system-config-promote-image-uwsgi-base-3.11-trixie"},{"line_number":342,"context_line":"        - system-config-promote-image-uwsgi-base-3.12-trixie"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        # NOTE: infra-prod-* jobs have a hierarchy below that ensure"},{"line_number":345,"context_line":"        # they can run in parallel.  We are deliberately keeping their"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"f157e784_e19baa2a","line":342,"updated":"2025-10-29 20:26:51.000000000","message":"Do we need to promote the mediawiki image? Doing so will make the image from change_foo as 1.28/1.35 then change_foo merges to update the image.","commit_id":"abaf849b447501f24096331b61a4db28a8885ed6"},{"author":{"_account_id":22629,"name":"Michal Nasiadka","email":"mnasiadka@gmail.com","username":"mnasiadka"},"change_message_id":"886535120b9062fecf0fc3ec5109e67b39085bd9","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        - system-config-promote-image-python-builder-3.11-trixie"},{"line_number":340,"context_line":"        - system-config-promote-image-python-builder-3.12-trixie"},{"line_number":341,"context_line":"        - system-config-promote-image-uwsgi-base-3.11-trixie"},{"line_number":342,"context_line":"        - system-config-promote-image-uwsgi-base-3.12-trixie"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        # NOTE: infra-prod-* jobs have a hierarchy below that ensure"},{"line_number":345,"context_line":"        # they can run in parallel.  We are deliberately keeping their"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"71e5a2fb_3e3bffcb","line":342,"in_reply_to":"47af3a7b_66d55be2","updated":"2026-04-14 05:59:21.000000000","message":"Done","commit_id":"abaf849b447501f24096331b61a4db28a8885ed6"},{"author":{"_account_id":12898,"name":"Tony Breeds","email":"tony@bakeyournoodle.com","username":"tonyb"},"change_message_id":"60fac86d118deb0e03388047f40e016009cfd5bd","unresolved":true,"context_lines":[{"line_number":339,"context_line":"        - system-config-promote-image-python-builder-3.11-trixie"},{"line_number":340,"context_line":"        - system-config-promote-image-python-builder-3.12-trixie"},{"line_number":341,"context_line":"        - system-config-promote-image-uwsgi-base-3.11-trixie"},{"line_number":342,"context_line":"        - system-config-promote-image-uwsgi-base-3.12-trixie"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        # NOTE: infra-prod-* jobs have a hierarchy below that ensure"},{"line_number":345,"context_line":"        # they can run in parallel.  We are deliberately keeping their"}],"source_content_type":"text/x-yaml","patch_set":17,"id":"47af3a7b_66d55be2","line":342,"in_reply_to":"f157e784_e19baa2a","updated":"2025-10-30 07:32:04.000000000","message":"Oh yup we do.\n\nI\u0027ll add it.","commit_id":"abaf849b447501f24096331b61a4db28a8885ed6"}]}
