RFC: Introduce PageIdentity to be used instead of WikiPage.

In the meeting yesterday, Timo and I discussed how to best represent the idea that a PageIdentity (or PageRecord) may represent a page on another wiki (to improve cross-wiki support), but most code that currently uses a Title or WikiPage (and would in the future take a PageIdentity or PageRecord) is not aware of that.

My original proposal was to change the signature of getId() to getId( $wikiId = false ), to assert that the PageIdentity actually belongs to the wiki the caller expects.

Timo preferred to represent this using dedicated types like LocalPageIdentity, so the type hint would ensure assumptions are correct.  I pushed an experimental patch that adds the "local" variant of the relevant interfaces and classes: https://gerrit.wikimedia.org/r/c/mediawiki/core/+/650112

This complicates the type hierarchy quite a bit, I'm not sure it's worthwhile. I personally like such a a fine grained system of types to represent different guarantees, but I have gotten pushback about it in the past. If it ends up confusing people or putting them off, it may do more harm than good.

It would be helpful for me to hear what others think of this approach before I put this on last call as discussed yesterday.

-- daniel

RFC: Drop support for older database upgrades

Upcoming holidays

There will also be no TechCom triage meeting on 23 December and 30 December due to holidays. The next triage and review will be in the week of 6 January 2021.

Next week IRC office hours

No IRC discussion scheduled for next week.

You can also find our meeting minutes at

-- Timo

On Tue, Dec 15, 2020 at 12:49 PM Niklas Laxström <niklas.laxstrom@gmail.com> wrote:

This is the weekly TechCom board review in preparation of our meeting on Wednesday. If there are additional topics for TechCom to review, please let us know by replying to this email. However, please keep discussion about individual RFCs to the Phabricator tickets.

Activity since Tuesday 2020-12-08 on the following boards:


Committee inbox: (none)

Committee board activity:

  • T42787 Remove legacy ajax interface
    • I moved from Inbox to Watching
  • T267213 Create WikiTeq group on Gerrit
    • Kizule is asking for an update.
    • It seems there are two things to do: create the group and update the policy.

New RFCs: (none)

Phase progression: (none)

IRC meeting request: (none)

Other RFC activity:

  • T263841 RFC: Expand API title generator to support other generated data
    • There is a new proposal text. Please comment.
  • T259771: RFC: Drop support for database upgrade older than two LTS releases.
    • Discussion on the task. To me it looks mostly in favor or commenting that some of the problems are not fully solved by this proposal.
  • T268326 RFC: Amendment to the Stable interface policy (November 2020)
    • Feedback given about the proposed 3 month minimum period
  • T119173: RFC: Discourage use of MySQL's ENUM type.
    • Amir showed how to automatically generate on-wiki documentation for tables.
  • T133452: RFC: Create temporary accounts for anonymous editors.
    • Many comments after Tim proposed to use cloaks (see his comment in the task for details)
  • T214362: RFC: Store WikibaseQualityConstraint check data in persistent storage.
    • Krinkle asked for clarifications. Lucas responded with a comment and Lydia offered to have it explained in a call.
  • T208776: RFC: Introduce PageIdentity to be used instead of WikiPage.
    • Krinkle and Daniel discuss implementation details in context of what's best for type safety, clarity and migration.

Wikitech-l mailing list

Wikitech-l mailing list
Daniel Kinzler
Principal Software Engineer, Core Platform
Wikimedia Foundation