Page MenuHomePhabricator

Introduce PageRecord and ExistingPageRecord interfaces
Open, MediumPublic

Description

PageRecord is to represent an editable page on the wiki. It roughly corresponds to a row in the page table. It is intended to replace many usages of WikiPage.

To allow for an easy transition from WikiPage to PageRecord, PageRecord has to be allowed to represent a non-existintg page initially. We introduce ExistingPageRecord as a derived interface with the added guarantee that the page exists. ExistingPageRecord will be implemented by the PageRecordValue class. Once WikiPage has been removed, we can guaranteed that a PageRecord always exists, and make ExisingPageRecord an alias for PageRecord. This strategy is similar to how we are introducing PageIdentity with weak guarantees that are compatible with the behavior of Title, and provide ProperPageIdentity as a temporary stronger version of the interface.

PageRecord shall extend ProperPageIdentity, and ExistingPageRecord shall extend PageRecord. PageRecordValue shall extend PageIdentityValue.

Related Objects

StatusSubtypeAssignedTask
Declineddchen
OpenNone
OpenNone
DuplicateNone
OpenNone
OpenNone
OpenNone
StalledNone
DuplicateNone
OpenNone
ResolvedNone
OpenNone
OpenNone
OpenNone
OpenNone
Resolvedppelberg
ResolvedKrinkle
OpenNone
ResolvedNone
ResolvedNone
StalledNone
OpenNone
OpenNone
Opendaniel
OpenNone
OpenNone
OpenNone
OpenNone
Opendaniel
Opendaniel
Opendaniel
Resolveddaniel

Event Timeline

daniel created this task.Jan 19 2021, 9:23 PM
Restricted Application removed a project: Patch-For-Review. · View Herald TranscriptJan 19 2021, 9:23 PM

Change 644281 had a related patch set uploaded (by Daniel Kinzler; owner: Daniel Kinzler):
[mediawiki/core@master] DNM: Introduce PageRecord interface

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

daniel claimed this task.Jan 29 2021, 2:31 PM
daniel raised the priority of this task from Medium to High.
daniel lowered the priority of this task from High to Medium.Tue, Feb 23, 5:41 PM