The OAuth extension [0], which implements an OAuth server in MediaWiki, has
been updated. OAuth is an industry-standard protocol for authorization. The
OAuth extension now supports OAuth 2.0 [1] in addition to its previous
support for OAuth 1.0a [2]. The updated extension version is now available
on Wikimedia wikis, so OAuth 2.0 consumers may now be registered in
addition to OAuth 1.0a consumers.
Cindy
[0] https://www.mediawiki.org/wiki/Extension:OAuth
[1] https://oauth.net/2/
[2] https://oauth.net/core/1.0a/
______________________________
Cindy Cicalese
Product Manager, MediaWiki Platform
Wikimedia Foundation
Minerva has been available as a desktop skin available on
Special:Preferences for some time, however it has had a hard dependency on
the MobileFrontend extension due to its history - originally being part of
the MobileFrontend extension.
Thanks to much of the work inside Advanced Mobile Contributions
<https://www.mediawiki.org/wiki/Reading/Web/Advanced_mobile_contributions>
the Minerva skin now has a soft dependency on MobileFrontend and will not
run MobileFrontend code if its not installed.
When operating in this mode, Minerva will operate in a simplified mode that
operates similar to the other skins Vector and Timeless. It will use jQuery
autocomplete for search and the watchstar code that lives in core. Features
such as reference popups, red link confirmation and overlays for talk and
languages will fall back to links.
The code for this change rolls out this week. The new code should only be
triggered on instances where MobileFrontend is not installed so should not
impact any wikis e.g. Wikimedia production.
This mode will not be enabled in any Wikimedia wikis, but my hope is that
it will help improve the skin architecture going into the Desktop
improvements <http://mediawiki.org/wiki/Desktop%20improvements>project
which will be targeting the Vector experience.
My hope is this project will allow us to apply the lessons we have learned
in Minerva to more generalised solutions that work on traditional skins as
well and will encourage editors to improve the many templates that are not
compatible with skins like Minerva and Timeless when they operate in
responsive mode (some of which are slowly being collected in
https://en.wikipedia.org/wiki/Category:Templates_that_are_not_mobile_friend…
).
You can help this effort by installing Minerva on your local wikis and/or
using Minerva as a desktop skin on production wikis where it's available
and reporting bugs as and when you find them. If you haven't used Minerva
skin on desktop in some time, I urge you to give a try. You will likely be
surprised by what you find.
If you are actively developing Wikimedia extensions but do not test
regularly with MobileFrontend, please do add Minerva as one of your test
skins, however please note that MobileFrontend does alter behaviour of all
skins (Vector for example ships additional responsive styles), so testing
on Minerva without MobileFrontend is not a sufficient substitute for
testing on Wikimedia's production wikis.
You can read more about the work that got us here at
https://phabricator.wikimedia.org/T171000
Thanks for your time!
Hello everyone,
TLDR; Wikimedia will soon be applying as a mentoring organization to Google Summer of Code<https://www.mediawiki.org/wiki/Google_Summer_of_Code> 2020 and Outreachy<https://www.mediawiki.org/wiki/Outreachy> Round 20. The application submission deadline for GSoC is February 5th, and Outreachy is February 18th. We are currently working on a list of interesting project ideas to include in the application. If you have some ideas for coding or non-coding (design, documentation, translation, outreach, research) projects, share them here: https://phabricator.wikimedia.org/T241019.
Timeline
As a mentor, you will be engaging potential candidates in the application period – for GSoC between February 20th–March 16th and for Outreachy between March 3rd–April 7th. During this time, you will help candidates make small contributions to your project and answer any project related queries. You will be working more closely with the accepted candidates during the coding period between May-August.
Project ideas
We have started compiling a list of projects, that you can take a look at here:
https://www.mediawiki.org/wiki/Google_Summer_of_Code/2020,
https://www.mediawiki.org/wiki/Outreachy/Round_20
If you don’t have an idea in mind and would like to pick one from an existing list, check out these projects: https://phabricator.wikimedia.org/tag/outreach-programs-projects/
Through GSoC, you can mentor only coding but with Outreachy also non-coding projects (including design, translation, outreach, etc.). Last year, documentation improvements to over 100 pages related to the MediaWiki Action API on MediaWiki.org happened via three GSoC + Outreachy projects.
Some tips for proposing projects
* Follow this task description template when you propose a project in Phabricator: https://phabricator.wikimedia.org/tag/outreach-programs-projects/. Add #Google- Summer-of-Code (2020) or #Outreachy (Round 20) tag to it.
* Remember, the project should require an experienced developer ~15 days to complete and a newcomer ~3 months.
* Each project should have at least 2 mentors, and one of them should hold a technical background.
* When it comes to picking a project, you could propose one that is:
* Relevant for your language community or brings impact to the Wikimedia ecosystem in the future.
* Welcoming and newcomer-friendly and has a moderate learning curve.
* A new idea you are passionate about, there are no deadlines attached to it; you always wanted to see it happen but couldn't due to lack of resources help!
* About developing a standalone tool (possibly hosted on Wikimedia Toolforge), with fewer dependencies on Wikimedia's core infrastructure, and doesn't necessarily require a specific programming language, etc.
To learn more about the roles and responsibilities of a mentor, visit our resources on MediaWiki.org: https://www.mediawiki.org/wiki/Outreachy/Mentors, https://www.mediawiki.org/wiki/Google_Summer_of_Code/Mentors.
Cheers,
Pavithra & Srishti
Hello Wikis,
My name is Teneng Clifford, from the college of technology at the
University of Buea. I wish to contribute to Wikimedia and participate to
this years GSoC.
I have been working with web platforms and have skills in JavaScript, Php,
Java, Python, Html, CSS, So I believe I will be comfortable contributing to
WikiMedia's open source projects,
Please can I have some stater links, link to Issues, and which repository
to clone on git as a start?
Thank you very much,
Teneng Clifford.
Hi all,
Here are the minutes from this week's TechCom meeting:
* Moved to under discussion: RFC Port MobileFrontend Feature Management
into core <https://phabricator.wikimedia.org/T242835> This RFC discusses the
method of providing opt-in and opt-out functionality for improvements to the
desktop experience of Wikimedia projects.
* Moved to under discussion: RFC Adopt a modern JavaScript framework for
use with MediaWiki <https://phabricator.wikimedia.org/T241180> This RFC
discusses the adoption of a specific tool for use in building UI components
within the present architecture.
* Discussion ongoing: Standalone service to evaluate user-provided regular
expressions <https://phabricator.wikimedia.org/T240884> This RFC explores
methods of checking regular expressions locally to reduce overhead while
continuing to protect against denial-of-service attacks.
* Discussion resumed: RFC Expiring watch list entries
<https://phabricator.wikimedia.org/T124752> following the implementation of
wl_id on WMF sites, this RFC is no longer stalled and is open for
discussion.
* No public RFC review meeting next week.
You can also find our meeting minutes at
<https://www.mediawiki.org/wiki/Wikimedia_Technical_Committee/Minutes>
See also the TechCom RFC board
<https://phabricator.wikimedia.org/tag/mediawiki-rfcs/>.
If you prefer you can subscribe to our newsletter here
<https://www.mediawiki.org/wiki/Newsletter:TechCom_Radar>
--
Alex Paskulin
Technical Writer
Wikimedia Foundation
Hello all,
As you might have gleaned from previous posts to the list about Parsoid,
Parsoid has now been ported from JS to PHP. As a result, we have stopped
all further updates to the JS codebase.
We have released the last version of the Parsoid/JS debian package,
v0.11.0 [1]. This includes a few minor additional code changes beyond
what we were running on the Wikimedia cluster before we switched off all
traffic to it but we've run some tests against this version before
preparing the debian package. While Parsoid ran with Node v6 in
production till then, we've run regular travis tests against node
versions v8 and v10 and expect it to run with those Node versions as well.
The most recent versions of Parsoid/JS required MW 1.31 and later. MW
1.31 LTS expires in June 2021 and we consider Parsoid/JS end-of-life to
be same date. We will only provide any necessary security fixes to
Parsoid/JS between now and June 2021.
Also note that in April 2021, Node v10 will also reach of end of life.
But, we don't plan to do any work to provide additional support for
newer node versions in the April - June 2021 time period. So, anyone
still running Parsoid/JS till then will likely be running with an EOL-ed
node version in this timeframe.
We expect Parsoid (PHP version) to be installable and usable out of the
box with the next LTS release of Mediawiki in June 2020.
Subbu (on behalf of the parsing team).
[1]
https://www.mediawiki.org/wiki/Parsoid/Releases#0.11.0_(released_Jan_14,_20…
Hi,
for HTML version see
https://www.mediawiki.org/wiki/Scrum_of_scrums/2020-01-15
Željko
--
= 2020-01-15 =
== Callouts ==
* Release Engineering
** January 27-31 - No deploys at all (including train), All-Hands
** The weekly MediaWiki branch cut is moving to full automation soon. If
the timing of the branch cut affects you, please join the discussion at
[[phab:T242446]]
* SRE:
** Debian Jessie deprecation is ongoing. Deadline both OS wise and hardware
wise is 31March 2020. SCB cluster deployers, if you haven't already reach
out to ServiceOps for help with migrating your service to Kubernetes,
please do so.
== Product ==
=== Editing ===
* Updates: Summary: Refining reply features for DiscussionTools for first
release with partner wikis projected for early February
** Add handling for mw:DisplaySpace (task [[phab:T241906]])
** Use mw.Api#getErrorMessage instead of custom handling (task
[[phab:T240519]])
*** Fix 'escape' to teardown by Ed Sanders
*** Fix re-initialization after page is updated (task [[phab:T241861]])
*** ReplyWidget: Load modules required by the content when previewing (task
[[phab:T241193]])
*** Fix crash when opening VisualEditor NWE while DiscussionTools enabled
(task [[phab:T241396]])
*** ReplyWidget: Pass 'title' when previewing (task [[phab:T241221]])
=== Growth ===
* Updates: Summary: continuing to implement and refine topic matching for
newcomer suggested edits
** Add hidden preference for topics feature flag (task [[phab:T242698]])
** Newcomer tasks: Don't randomize for morelike search
** Newcomer tasks: Make a separate search query for every topic (task
[[phab:T242560]]) (task [[phab:T242476]])
** Newcomer tasks: Topic matching instrumentation (task [[phab:T242052]])
** Suggested Edits: Fix button label from done state (task
[[phab:T238612]]) (task [[phab:T238611]])
** Suggested Edits: Expand filters if below the fold item is checked (task
[[phab:T238612]])
** Suggested Edits: Use classic_noboostlinks for morelike query (task
[[phab:T240512]])
** SuggestedEdits: Only export Topics.json once
** Suggested Edits: Add topic filters dialog (task [[phab:T238612]])
** Suggested Edits: Add topic filter button (task [[phab:T238611]])
** Newcomer tasks: Log search errors in task backend (task [[phab:T240512]])
** Newcomer tasks: Add test for API parameter info (task [[phab:T240512]])
** Newcomer tasks: Expose task type / topic set in API parameter info (task
[[phab:T240512]])
** Newcomer tasks: Randomize suggested tasks locally (task [[phab:T242057]])
** StartEditingDialog: Add topics (task [[phab:T238610]])
** ApiQueryGrowthTasks: remove logged-in requirement (task [[phab:T242400]])
=== Android native app ===
* Updates:
** Finished integration with mobile-html, finishing up migration logic of
existing saved data on users' devices.
** Proceeding with Suggested Edits v4 (adding image tags)
=== Web ===
* Updates:
** Summary: continuing desktop improvements (DIP).
** [[Reading/Web/Desktop_Improvements|Desktop Improvements Project (Vector
/ DIP)]]:
*** [[phab:T242835|<nowiki>[RFC] Port MobileFrontend Feature Management
into core</nowiki>]]
*** [[phab:T237635|<nowiki>[SPIKE] What should feature management look like
in desktop improvements?</nowiki>]]
*** [[phab:T237561|<nowiki>[SPIKE 10hrs] Investigate how skin suboptions
can be presented in Special:Preferences</nowiki>]]
*** [[phab:T240622|<nowiki>[Technical debt payoff] Remove
InlineDiffFormatter and InlineDifferenceEngine from
MobileFrontend</nowiki>]]
*** [[phab:T240062|<nowiki>Extract components from VectorTemplate to
Mustache files</nowiki>]]
*** [[phab:T242674|<nowiki>Add storybook to Vector</nowiki>]]
*** [[phab:T239248|<nowiki>[EPIC] Divide VectorTemplate into
components</nowiki>]]
*** [[phab:T117279|<nowiki>[EPIC] Core should provide inline diffs as well
as side by side (Move InlineDifferenceEngine into core / remove
MobileDiff)</nowiki>]]
** Mobile website (MinervaNeue / MobileFrontend):
*** [[Reading/Web/Advanced_mobile_contributions|Advanced mode]]:
**** [[phab:T242491|<nowiki>Regression: AMC Outreach Drawer doesn't open
when user is eligible</nowiki>]]
*** Miscellaneous:
**** [[phab:T242281|<nowiki>Site navigation refers to undefined ARIA label
(Minerva)</nowiki>]]
**** [[phab:T242310|<nowiki>Regression: issues with MobileDiff</nowiki>]]
**** [[phab:T214647|<nowiki>[EPIC] Re-define the contract for displaying
drawers and overlays in MobileFrontend</nowiki>]]
**** [[phab:T242784|<nowiki>Regression: Watchstar CTA fails to display
properly 2nd and 3rd time</nowiki>]]
**** [[phab:T241179|<nowiki>Remove Special:MobileMenu</nowiki>]]
**** [[phab:T237290|<nowiki>Disable mobile beta mode (for now)</nowiki>]]
**** [[phab:T237050|<nowiki>The `site` and `site.styles` module should be
explictly disabled on mobile rather than abuse the targets system</nowiki>]]
**** [[phab:T234570|<nowiki>Tech debt: Drop Browser.supportsAnimations
method</nowiki>]]
**** [[phab:T217616|<nowiki>Ordered lists per default receive `decimal`
list style type, which causes issues in non-arabic numeral
scripts</nowiki>]]
**** [[phab:T214049|<nowiki>Technical: Every Drawer has a shield for
catching clicks</nowiki>]]
**** [[phab:T198265|<nowiki>Special:MobileOptions is empty for third
parties and when beta is disabled and this is confusing</nowiki>]]
**** [[phab:T171000|<nowiki>[EPIC] Minerva works independently of
MobileFrontend</nowiki>]]
**** [[phab:T206069|<nowiki>Transition MobileFrontend Gruntfile.js tasks to
NPM scripts</nowiki>]]
**** [[phab:T140045|<nowiki>Respect
$wgAllowSiteCSSOnRestrictedPages</nowiki>]]
** QuickSurveys
*** [[phab:T213459|<nowiki>Minimise the code QuickSurveys loads when there
are no surveys running</nowiki>]]
=== Product Infrastructure ===
* Updates:
** Wrapped up an incident report from the MachineVision launch
[[wikitech:Incident_documentation/20191211-MachineVision%2Bcpjobqueue]]
** Maps: fixed OSM Replication failure at eqiad and codfw ([[phab:T237228]])
=== Structured Data ===
* Blocking:
** Search Platform: Data dumps for SDC: [[phab:T221917]]
=== Inuka ===
* Updates:
** KaiOS app: Onboarding [[phab:T236304]]
** KaiOS app: various tweaks and fixes
== Technology ==
=== Fundraising Tech ===
* Updates:
** Requested a Cloud VPS project for CentralNotice staging: [[phab:T242812]]
** Fixing a CentralNotice campaign fallback bug: [[phab:T240802]]
** CiviCRM contact deduplication improvement - add equivalent names to list
while deduping: [[phab:T242159]]
** CiviCRM version upgrade: [[phab:T242056]]
** Implementing monthly recurring donations via our backup credit card
processor: [[phab:T242277]], [[phab:T242275]], [[phab:T242160]]
** Documentation updates: [[phab:T198733]]
=== Core Platform ===
* Blocking:
** Search Platform: MW Job consumers sometimes pause for several minutes
[[phab:T224425]]
* Updates:
** OAuth 2.0 hitting production this week
** Additional REST API endpoints available for search, media links,
language links
=== Engineering Productivity ===
==== Quality and Test Engineering ====
* Blocked by:
** SRE: Close QA mailing list [[phab:T237383]]
==== Release Engineering ====
* Updates:
** Train Health
*** This week: 1.35.0-wmf.15 - [[phab:T233863]]
*** Next week: 1.35.0-wmf.16 - [[phab:T233864]]
** January 27-31: 1.35.0-wmf.17 No deploys at all (including train),
All-Hands - [[phab:T233865]]
** The weekly MediaWiki branch cut is moving to full automation soon. If
the timing of the branch cut affects you, please join the discussion at
[[phab:T242446]]
=== Scoring Platform ===
* Updates:
** ORES deployment (new topic models - articletopic and drafttopic)
*** Improvements to topic models on the way (specifically, Biography and
Women)
** Work on Jade UI continues (requirejs import order, etc.)
** released mwtext -- a common library for preprocessing MW text for ML
** Evaluated fasttext for supporting our topic models -- Not good enough
for re-use -- very single-purpose.
** Working with haksoat on pulling English Idioms into our models
[[phab:T205545]]
** Picking up Hindi language assets with a new volunteer - Igarg2001 (Ishan
Garg)
** Working on service issue in WMFlabs [[phab:T242819]]
** Exploring brief OOM issue in production [[phab:T242705]]
=== Search Platform ===
* Blocked by:
** Structured Data: Data dumps for SDC: [[phab:T221917]]
** Core: MW Job consumers sometimes pause for several minutes
[[phab:T224425]]
* Updates:
** WDQS: LDF server has 404 errors for JS and CSS resources [[phab:T237165]]
=== Security ===
* Updates:
**Working on Inuka: [[phab:T240010]]
** Working on kaiOS: [[phab:T240869]] & [[phab:T240869]],
** and [[phab:T239063]]
** Closed: OAuth [[phab:T239940]], Central Notice [[phab:T226963]]
** Frozen, needs follow up: Machine Vision [[phab:T237588]]
=== Site Reliability Engineering ===
* Blocking:
** Product infrastructure on proton for buster node10 images {{ done }}
** Research for recommendation API move, again buster node10 images {{done}}
** Quality and Test Engineering: Close QA mailing list [[phab:T237383]]
* Updates:
** Dealing with a couple of incidents,
[[wikitech:Incident_documentation/20200108-mw-api]] is interesting.
Together with the last Python 2 release from April, 2020, Pywikibot team
will release the **last version that supports Python 2**. We created a
**python2" tag** marking the version, so you can continue running your
Python 2 scripts using this tag, if you really need to.
After that version, Pywikibot is not going to receive any further patches
and bug fixes related to Python 2. Its code is going to be cleaned from
Python 2 specific functions, patches, deprecations and other stuff, so make
sure you'll use this tag if you still want to run Pywikibot using Python 2.
Pywikibot team strongly recommends to migrate your scripts to Python 3. To
make it happen, you can use Python 2to3 script installed by default with
Python 2.6+, see https://docs.python.org/2/library/2to3.html. You can also
just try to run your script using Python 3 (the "-simulate" parameter could
be handy) and fix all the issues. If you encounter problems with the
migration, you can always ask us here:
https://phabricator.wikimedia.org/T242120
Best regards,
Martin Urbanec and Dvorapa
Hi Everyone,
We’re happy to announce the January 2020 edition of the Technical Community
Newsletter
<https://www.mediawiki.org/wiki/Technical_Community_Newsletter/2020/January>.
The newsletter is compiled by the Wikimedia Developer Advocacy Team. It
aims to share highlights, news, and information of interest from and about
the Wikimedia technical community.
Check it out, and learn about what technical contributors have been up to
this past quarter, upcoming conferences & calls for papers, and how to get
involved.
The Wikimedia Technical Community is large and diverse, and we know we
can't capture everything perfectly. We welcome your ideas for future
newsletters. Let us know what you would like to see or highlights you would
like us to include.
Subscribe to the Technical Community Newsletter
<https://www.mediawiki.org/wiki/Newsletter:Technical_Community_Newsletter>,
if you'd like to keep up with essential updates and information.
Kindly,
Sarah R. Rodlund
Technical Writer, Developer Advocacy
srodlund(a)wikimedia.org
I am working on a script to load and update Vanderbilt researcher records in Wikidata via the API (see https://github.com/HeardLibrary/linked-data/tree/master/publications for information and https://github.com/HeardLibrary/linked-data/blob/master/publications/proces… for the relevant script).
The script is working adequately; however after about 25 writes, I get blocked with an actionthrottledtext error with the message " As an anti-abuse measure, you are limited from performing this action too many times in a short space of time, and you have exceeded this limit.\nPlease try again in a few minutes." I am able to avoid being blocked if I delay three seconds between writes, but a delay of only one second results in me still being blocked.
I am observing maxlag (lines 282-313) and am sending a User-Agent header, VanderBot/0.1 (steve.baskauf(a)vanderbilt.edu). I'm making the API calls using the bot account https://www.wikidata.org/wiki/User:VanderBot, which does not have a bot flag.
I've been talking to another user who is running a script from paws.wmflabs.org using Pywikibot without a bot flag and he has not encountered this error. So I am wondering what I am doing wrong that is causing this error and what I can do to stop being blocked. The possible causes I can imagine are:
1. The bot account doesn't have a bot flag. https://www.wikidata.org/wiki/Wikidata:Requests_for_permissions/Bot/Danmich… implies that the lack of a bot flag might be the problem. But the script is not an autonomous bot and is still under development, so I didn't think a bot flag was necessary under those circumstances.
2. I'm not running the script from paws.wmflabs.org . Is it a problem that the API calls are coming from an unknown IP address? Does that matter?
3. I'm not using Pywikibot. But that shouldn't be necessary.
The other thing that is different about what I'm doing and what is being done by the other user who is not encountering this problem is that I'm authenticating directly by establishing a session when the script starts (lines 347-349). The other user apparently somehow doesn't have to authenticate when using Pywikibot as long as he's logged in to paws.wmflabs.org . But I haven't dug in to find out how Pywikibot works, so I don't really understand how that is possible or whether that's important in establishing that the bot is legitimate and not a vandal/spam bot.
Any advice you can give about how to stop being blocked would be appreciated. Eventually I will probably apply for a bot flag, but I doubt that this bot will ever be autonomous, so is that really necessary? Would it matter if I used my own account instead of a separate bot account?
Steve
--
Steven J. Baskauf, Ph.D.
Data Science and Data Curation Specialist
Jean & Alexander Heard Libraries, Vanderbilt University
Nashville, TN 37235, USA
Office: Eskind Biomedical Library, EMB 111
Phone: (615) 343-4582
https://my.vanderbilt.edu/baskauf/