Subject | Repo | Branch | Lines +/- | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Do not limit the number of sections to exclude | • Urbanecm_WMF changed the subtype of this task from "Task" to "Bug Report". Comment Actions TLDR: The Add Link service restricts the number of excluded sections to 25. When this limit is exceeded, the API does not provide any indication the request was incorrect – it merely ignores the 26th (and following) excluded sections. Since azwiki has 35 excluded sections, it results in this bug. The good question is how to fix this... First and foremost, we should figure out why was this limit introduced. If it serves no purpose at this point, the easiest solution would be to remove it, allowing any number of excluded sections. If it is still needed, then:
Investigation notesSince GrowthExperiments is apparently able to generate suggestions for the article here, I attempted to call the service manually. Since I have the wikitext in my azwiki sandbox, this can be done w/o posting the wikitext. I constructed the following two API calls:
Unfortunately, both API calls behave as expected. So, the bug appears to be in GrowthExperiments, not the Add Link service. To be able to debug this more, I reproduced the problem locally. For that, I made the following changes in LocalSettings.php $wgLanguageCode = "az"; $wgGELinkRecommendationServiceWikiIdMasquerade = 'azwiki'; Then, I copied my azwiki sandbox locally to İstifadəçi:Martin Urbanec (WMF)/Qaralama (same title as in production). From there, I created a maintenance script to generate a fresh suggestion (from the API): $ccServices = GrowthExperimentsServices::wrap( $this->getServiceContainer() ); $tasktype = $ccServices->getLinkRecommendationUpdater()->getLinkRecommendationTaskType(); $provider = $this->getServiceContainer()->get( 'GrowthExperimentsLinkRecommendationProviderUncached' ); $status = $provider->get(\Title::newFromText('İstifadəçi:Martin Urbanec (WMF)/Qaralama'), $tasktype); if ( $status instanceof \StatusValue ) { var_dump( $status->getErrors() ); return; } elseif ( $status instanceof LinkRecommendation ) { var_dump( $status->toArray() ); } Surprisingly, this generated the suggestion in question, with no problems. It almost seems like sections_to_exclude is not getting set at all. I vardumped details of the query (in ServiceLinkRecommendationProvider, I dumped $pathArgs, $queryArgs, $postBodyArgs, the wfAppendQuery call):
sections_to_exclude is clearly populated, although it is in body, rather than in query. Moving the sections from body to query params has no impact. This made me replicate the exact same request MW is making, but via CURL, as something fishy seems to be happening there. Using the info collected above, I managed to do that: urbanecm@wmf3345 core % cat payload.json { "pageid": 124, "revid": 614, "wikitext": "'''HPGL''' (''= HP-GL, Hewlett-Packard Graphics Language'') – qrafik görüntülərin emalı və saxlanması üçün [[Hewlett-Packard]] şirkətində işlənib hazırlanmış dildir. Bu dil ilkin olaraq plotterdə çıxarılan görüntülər üçün nəzərdə tutulmuşdu; HPGL, qrafikanı göstərişlərdən ibarət iki metafayla çevirir ki, bunların da əsasında proqram ilkin görüntünü qura bilir. Hazırda, demək olar ki, bütün plotterlər üçün standartdır. Hewlett-Packard printerləri PCL ilə yanaşı, HPGL dilini də dəstəkləyir.\nDilin komandaları iki hərfdən və ondan sonra gələn əlavə parametrlərdən ibarətdir. Məsələn, qövs (arc) çəkmək üçün aşağıdakı komandadan istifadə etmək olar:\n\n<code>AA100,100,50;</code>\n\nburada, AA – \"Arc Absolute\" sözlərinin qısaltması, 100,100 – qövsün mərkəzi nöqtəsinin koordinatları, 50 isə saat əqrəbinin əksinə ölçülən başlanğıc bucaqdır.\nAdətən, HPGL faylları parametrlərin quraşdırılmasından ibarət bir neçə komanda ilə başlayır və qrafik komandaların uzun siyahısı ilə davam edir.\n{| class=\"wikitable\"\n! Komanda\n! Mənası\n|-----\n| İN;|| rəsm prosesinin başlanğıcını qoyur\n|-----\n| İP; || başlanğıc nöqtəni müəyyən edir; bu halda susqunluqla 0,0\n|-----\n| SC0,100,0,100; || səhifənin ölçülərini X və Y istiqamətində 0-dan 100-dək edir\n|-----\n| SP1; || 1 qələmini seçir\n|-----\n| PU0,0;|| qələmi başlanğıc mövqeyə aparır\n|-----\n| PD100,0,100,100,0,100,0,0; ||verilmiş mövqelərə görə qələmi endirir və hərəkət etdirir (səhifənin ətrafına düzbucaqlı çəkir)\n|-----\n| PU50,50; || qələmi qaldırır və 50,50 mövqeyinə aparır\n|-----\n| CI25; || radiusu 25 olan çevrə çəkir\n|-----\n| SS; || standart şrift seçir\n|-----\n| DT*,1; || mətn ayırıcısı olaraq * qoyur və onun kağızda çapını qadağan edir (1 — \"true\")\n|-----\n| PU20,80;|| qələmi qaldırır və 20,80 mövqeyinə aparır\n|-----\n| LBHello World*; || yazını çəkir\n|}\n\n== Ədəbiyyat ==\n* İsmayıl Calallı (Sadıqov), \"İnformatika terminlərinin izahlı lüğəti\", 2017, \"Bakı\" nəşriyyatı, 996 s.\n\n<!--\n[[Kateqoriya:Kompüter qrafikası]]\n-->", "sections_to_exclude": [ "biblioqrafiya", "biblioqrafiyası", "bioqrafiya", "bioqrafiyası", "external links", "həmçinin bax", "həmçinin baxın", "i̇stinadlar", "i̇stinadlar və qeydlər", "kitabları", "məlumat mənbələri", "məlumat mənbəsi", "mənbə", "mənbələr", "mənşəyi", "notes", "notlar", "qaynaq", "qaynaqlar", "qeyd", "qeydlər", "qeydlər və istinadlar", "references", "web links", "xarici keçid", "xarici keçidlər", "xarici linklər", "xarici əlaqələri", "xatirə", "xatirəsi", "ədəbiyyat", "əlavə oxu", "əlavə oxu üçün", "əlavə ədəbiyyat", "Ədəbiyyat" ] } urbanecm@wmf3345 core % curl -H 'User-Agent: urbanecm' -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -X POST -d @payload.json -s 'https://api.wikimedia.org/service/linkrecommendation/v1/linkrecommendations/wikipedia/az/%C4%B0stifad%C9%99%C3%A7i%3AMartin_Urbanec_%28WMF%29%2FQaralama?threshold=0.6&max_recommendations=10&language_code=az' | jq . { "links": [ { "context_after": "\", 2017, \"", "context_before": "adıqov), \"", "link_index": 0, "link_target": "İnformatika terminlərinin izahlı lüğəti", "link_text": "İnformatika terminlərinin izahlı lüğəti", "match_index": 0, "score": 0.8977441787719727, "wikitext_offset": 1850 }, { "context_after": "\" nəşriyya", "context_before": "\", 2017, \"", "link_index": 1, "link_target": "Bakı", "link_text": "Bakı", "match_index": 0, "score": 0.6535253524780273, "wikitext_offset": 1899 } ], "links_count": 2, "meta": { "application_version": "a443077", "dataset_checksums": { "anchors": "adb9536e93a626a8dd020cef970727891b0a68eb0cc4be2e53031e54d6a6ae12", "model": "12910c55eaa872b8507f0a3cccbf68bccf36ae133203b2fbe0e2e486e561d0f7", "pageids": "68c3074afbae8bbf9c2f29f7ad9218ba8d3b6ba29c1833cc388690691f416392", "redirects": "8a33cea883534fc0bb9586210dba7317ef9feaccde229c8817006acb49479324", "w2vfiltered": "91868c81fd23deeb1568048995137b3acdeb77cec50b5bf197d170d35269a6c5" }, "format_version": 1 }, "page_title": "İstifadəçi:Martin Urbanec (WMF)/Qaralama", "pageid": 124, "revid": 614 } urbanecm@wmf3345 core % The suggestion was generated, despite excluded sections are defined and passed over to the API. This means this is caused by the Add Link service itself, not GrowthExperiments. I decided to review the Add Link service source code. After some digging, I saw this: result = query_instance.run( wikitext=data["wikitext"], revid=int(data["revid"]), pageid=data["pageid"], threshold=data["threshold"], wiki_id=wiki_id, language_code=data["language_code"], page_title=normalise_title(page_title), max_recommendations=data["max_recommendations"], # Cap the list of sections to exclude at 25. sections_to_exclude=data["sections_to_exclude"][:25], ) Apparently, Add Link service is capping the provided set of sections to 25. Indeed, if I move the problematic section's name to the front: urbanecm@wmf3345 core % cat payload2.json { "pageid": 124, "revid": 614, "wikitext": "'''HPGL''' (''= HP-GL, Hewlett-Packard Graphics Language'') – qrafik görüntülərin emalı və saxlanması üçün [[Hewlett-Packard]] şirkətində işlənib hazırlanmış dildir. Bu dil ilkin olaraq plotterdə çıxarılan görüntülər üçün nəzərdə tutulmuşdu; HPGL, qrafikanı göstərişlərdən ibarət iki metafayla çevirir ki, bunların da əsasında proqram ilkin görüntünü qura bilir. Hazırda, demək olar ki, bütün plotterlər üçün standartdır. Hewlett-Packard printerləri PCL ilə yanaşı, HPGL dilini də dəstəkləyir.\nDilin komandaları iki hərfdən və ondan sonra gələn əlavə parametrlərdən ibarətdir. Məsələn, qövs (arc) çəkmək üçün aşağıdakı komandadan istifadə etmək olar:\n\n<code>AA100,100,50;</code>\n\nburada, AA – \"Arc Absolute\" sözlərinin qısaltması, 100,100 – qövsün mərkəzi nöqtəsinin koordinatları, 50 isə saat əqrəbinin əksinə ölçülən başlanğıc bucaqdır.\nAdətən, HPGL faylları parametrlərin quraşdırılmasından ibarət bir neçə komanda ilə başlayır və qrafik komandaların uzun siyahısı ilə davam edir.\n{| class=\"wikitable\"\n! Komanda\n! Mənası\n|-----\n| İN;|| rəsm prosesinin başlanğıcını qoyur\n|-----\n| İP; || başlanğıc nöqtəni müəyyən edir; bu halda susqunluqla 0,0\n|-----\n| SC0,100,0,100; || səhifənin ölçülərini X və Y istiqamətində 0-dan 100-dək edir\n|-----\n| SP1; || 1 qələmini seçir\n|-----\n| PU0,0;|| qələmi başlanğıc mövqeyə aparır\n|-----\n| PD100,0,100,100,0,100,0,0; ||verilmiş mövqelərə görə qələmi endirir və hərəkət etdirir (səhifənin ətrafına düzbucaqlı çəkir)\n|-----\n| PU50,50; || qələmi qaldırır və 50,50 mövqeyinə aparır\n|-----\n| CI25; || radiusu 25 olan çevrə çəkir\n|-----\n| SS; || standart şrift seçir\n|-----\n| DT*,1; || mətn ayırıcısı olaraq * qoyur və onun kağızda çapını qadağan edir (1 — \"true\")\n|-----\n| PU20,80;|| qələmi qaldırır və 20,80 mövqeyinə aparır\n|-----\n| LBHello World*; || yazını çəkir\n|}\n\n== Ədəbiyyat ==\n* İsmayıl Calallı (Sadıqov), \"İnformatika terminlərinin izahlı lüğəti\", 2017, \"Bakı\" nəşriyyatı, 996 s.\n\n<!--\n[[Kateqoriya:Kompüter qrafikası]]\n-->", "sections_to_exclude": [ "Ədəbiyyat", "biblioqrafiya", "biblioqrafiyası", "bioqrafiya", "bioqrafiyası", "external links", "həmçinin bax", "həmçinin baxın", "i̇stinadlar", "i̇stinadlar və qeydlər", "kitabları", "məlumat mənbələri", "məlumat mənbəsi", "mənbə", "mənbələr", "mənşəyi", "notes", "notlar", "qaynaq", "qaynaqlar", "qeyd", "qeydlər", "qeydlər və istinadlar", "references", "web links", "xarici keçid", "xarici keçidlər", "xarici linklər", "xarici əlaqələri", "xatirə", "xatirəsi", "ədəbiyyat", "əlavə oxu", "əlavə oxu üçün", "əlavə ədəbiyyat" ] } urbanecm@wmf3345 core % curl -H 'User-Agent: urbanecm' -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" -X POST -d @payload2.json -s 'https://api.wikimedia.org/service/linkrecommendation/v1/linkrecommendations/wikipedia/az/%C4%B0stifad%C9%99%C3%A7i%3AMartin_Urbanec_%28WMF%29%2FQaralama?threshold=0.6&max_recommendations=10&language_code=az' | jq . { "links": [], "links_count": 0, "meta": { "application_version": "a443077", "dataset_checksums": { "anchors": "adb9536e93a626a8dd020cef970727891b0a68eb0cc4be2e53031e54d6a6ae12", "model": "12910c55eaa872b8507f0a3cccbf68bccf36ae133203b2fbe0e2e486e561d0f7", "pageids": "68c3074afbae8bbf9c2f29f7ad9218ba8d3b6ba29c1833cc388690691f416392", "redirects": "8a33cea883534fc0bb9586210dba7317ef9feaccde229c8817006acb49479324", "w2vfiltered": "91868c81fd23deeb1568048995137b3acdeb77cec50b5bf197d170d35269a6c5" }, "format_version": 1 }, "page_title": "İstifadəçi:Martin Urbanec (WMF)/Qaralama", "pageid": 124, "revid": 614 } urbanecm@wmf3345 core % no recommendations are provided, as one would expect. Comment Actions
The limit was introduced in rRMWA576253f35f70: Allow excluding sections from link generation when the excluded sections features was implemented in T279519: Add a link: algorithm improvements: Avoid recommending links in sections that usually don't have links. AFAICS, the limit was not requested on the task itself. I see it got introduced in Comment Actions I spot checked how many excluded sections exist at other wikis: urbanecm@wmf3345 core % curl -s 'https://es.wikipedia.org/wiki/mediaWiki:GrowthExperimentsSuggestedEdits.json?action=raw&ctype=application/json' | jq '.link_recommendation.excludedSections | length' 70 urbanecm@wmf3345 core % curl -s 'https://en.wikipedia.org/wiki/mediaWiki:GrowthExperimentsSuggestedEdits.json?action=raw&ctype=application/json' | jq '.link_recommendation.excludedSections | length' 9 urbanecm@wmf3345 core % curl -s 'https://ar.wikipedia.org/wiki/mediaWiki:GrowthExperimentsSuggestedEdits.json?action=raw&ctype=application/json' | jq '.link_recommendation.excludedSections | length' 0 urbanecm@wmf3345 core % curl -s 'https://fr.wikipedia.org/wiki/mediaWiki:GrowthExperimentsSuggestedEdits.json?action=raw&ctype=application/json' | jq '.link_recommendation.excludedSections | length' 2 urbanecm@wmf3345 core % curl -s 'https://vi.wikipedia.org/wiki/mediaWiki:GrowthExperimentsSuggestedEdits.json?action=raw&ctype=application/json' | jq '.link_recommendation.excludedSections | length' 0 urbanecm@wmf3345 core % curl -s 'https://de.wikipedia.org/wiki/mediaWiki:GrowthExperimentsSuggestedEdits.json?action=raw&ctype=application/json' | jq '.link_recommendation.excludedSections | length' 35 urbanecm@wmf3345 core % curl -s 'https://ko.wikipedia.org/wiki/mediaWiki:GrowthExperimentsSuggestedEdits.json?action=raw&ctype=application/json' | jq '.link_recommendation.excludedSections | length' 50 urbanecm@wmf3345 core % curl -s 'https://bn.wikipedia.org/wiki/mediaWiki:GrowthExperimentsSuggestedEdits.json?action=raw&ctype=application/json' | jq '.link_recommendation.excludedSections | length' 0 urbanecm@wmf3345 core % curl -s 'https://cs.wikipedia.org/wiki/mediaWiki:GrowthExperimentsSuggestedEdits.json?action=raw&ctype=application/json' | jq '.link_recommendation.excludedSections | length' 18 Apparently, many wikis have more than 25 excluded sections :/. This issue happens on those wikis too, but it might not be noticed there yet. Comment Actions
Thanks for reviewing the list! This is helpful. I'll revalidateLinkRecommendations.php for azwiki now, so that this new list is enforced.
Yes, it was first generated by a machine (see Comment Actions
Started: [urbanecm@deploy2002 ~]$ mwscript-k8s -- extensions/GrowthExperiments/maintenance/revalidateLinkRecommendations.php --wiki=azwiki --all --verbose ⏳ Starting extensions/GrowthExperiments/maintenance/revalidateLinkRecommendations.php on Kubernetes as job mw-script.codfw.22qey0zx ... 🚀 Job is running. For streaming logs, run: K8S_CLUSTER=codfw KUBECONFIG=/etc/kubernetes/mw-script-codfw.config kubectl logs -f job/mw-script.codfw.22qey0zx mediawiki-22qey0zx-app [urbanecm@deploy2002 ~]$ KStoller-WMF added a comment.Nov 21 2024, 12:22 AM2024-11-21 00:22:58 (UTC+0) Comment Actions
Interesting! You really are the best Phabricator sleuth! Based on the comment, "Cap the limit of sections-to-exclude somewhat arbitrarily at 25," I assume this was a best-guess at a technical limit, rather than serving any product requirement or user-need. I presume it makes sense to have some sort of limit, but based on the number of wikis that have exceeded 25, it seems like it might be a good idea to increase that limit unless we have performance / technical concerns with doing so. Could we increase that limit to 100, and ask Kosta to review the patch in case he has more insight into the original limit? Or, I'm fine removing the limit, but if the list grows too large might we end up encountering other issues related to performance? Comment Actions
Thank you :).
It indeed seems so. However, I currently do not understand what the technical reason for introducing it was (is it just a safeguard preventing someone from excluding thousands of sections? or does each excluded section mean recommendations take significantly longer to produce? something else?).
Unfortunately, I don't know. I'll need to better understand what the limit protects us from. Then, I should be able to answer this question. I'll check with Kosta, but he might not remember either, given this was done years ago. Comment Actions Change #1093851 had a related patch set uploaded (by Urbanecm; author: Urbanecm): [research/mwaddlink@main] Do not limit the number of sections to exclude Comment Actions Change #1093851 merged by jenkins-bot: [research/mwaddlink@main] Do not limit the number of sections to exclude Comment Actions Change #1093866 had a related patch set uploaded (by Urbanecm; author: Urbanecm): [operations/deployment-charts@master] linkrecommendation: Bump version Comment Actions Change #1093866 merged by jenkins-bot: [operations/deployment-charts@master] linkrecommendation: Bump version Comment Actions
Based on discussions with Kosta (and Martin G), I went ahead and removed the limit. • Urbanecm_WMF moved this task from Incoming to QA on the Growth-Team (Current Sprint) board.Nov 21 2024, 10:52 AM2024-11-21 10:52:04 (UTC+0) Comment ActionsFilled T380455: Run revalidateLinkRecommendations.php for wikis with more than 25 excluded sections for the revalidateLinkRecommendations.php execution, to ensure task pool actually follows the configuration. Other than that, this can probably be resolved. @Etonkovidova The practical impact of the changes made here is that Add Link now properly suggests tasks on wikis that exclude more than 25 sections. Previously, only the first 25 sections were processed, and the rest were silently excluded. Comment Actions
Logs:
Comment Actions
Thx, @Urbanecm_WMF! Quite an investigation, very impressive. Comment Actions
Thanks Elena! FWIW, this exact API call would've worked even without the fixes from this task (the suggestion was not reverted, so now there is nothing to recommend, even without excluded sections working). You'd need to pass the (old) wikitext and excluded sections config in POST body to see the impact of the fixes made here (see the curl calls from T380329#10342507). Content licensed under Creative Commons Attribution-ShareAlike (CC BY-SA) 4.0 unless otherwise noted; code licensed under GNU General Public License (GPL) 2.0 or later and other open source licenses. By using this site, you agree to the Terms of Use, Privacy Policy, and Code of Conduct. · Wikimedia Foundation · Disclaimer · |