⚓ T157658 Factor out a backend from EditPage
Page Menu
Phabricator
Create Task
Maniphest
T157658
Factor out a backend from EditPage
Open, Medium
Public
Actions
Edit Task
Edit Related Tasks...
Create Subtask
Edit Parent Tasks
Edit Subtasks
Merge Duplicates In
Close As Duplicate
Edit Related Objects...
Edit Commits
Edit Mocks
Mute Notifications
Protect as security issue
Assigned To
None
Authored By
tstarling
Feb 9 2017, 3:48 AM
2017-02-09 03:48:18 (UTC+0)
Tags
MediaWiki-Page-editing
(Backlog)
User-DannyS712
(In progress)
Platform Engineering Roadmap Decision Making
(Icebox)
Platform Team Workboards (External Code Reviews)
(External Code Review Needed)
MW-1.36-notes (1.36.0-wmf.37; 2021-03-30)
Patch-For-Review
MW-1.43-notes (1.43.0-wmf.16; 2024-07-30)
MW-1.46-notes (1.46.0-wmf.20; 2026-03-17)
Hackathon-Northwestern-Europe-2026
(Tinkering in Progress)
Referenced Files
None
Subscribers
Agabi10
Aklapper
brooke
Catrope
Cenarium
Daimona
daniel
View All 22 Subscribers
Description
Currently, EditPage contains the web UI tightly integrated with edit authorisation and edit conflict merging. ApiEditPage wraps EditPage by making a fake web UI request. And VisualEditor and LiquidThreads wrap ApiEditPage by making a second fake request.
I propose introducing a new backend containing edit authorisation, automatic conflict merging, and the call through to
WikiPage::doEditContent()
, separated from the web UI. EditPage, ApiEditPage, VisualEditor, SemanticForms and LiquidThreads would call this backend.
The interface would be similar to
EditPage::internalAttemptSave()
, except with relevant request state injected instead of being fetched from global or class static data. updateWatchlist() would be moved to the UI layer.
A code comment notes:
@todo
FIXME: This interface is TERRIBLE, but hard to get rid of due to various error display idiosyncrasies. There are also lots of cases where error metadata is set in the object and retrieved later instead of being returned, e.g.
AS_CONTENT_TOO_BIG
and
AS_BLOCKED_PAGE_FOR_USER
. All that stuff needs to be cleaned up some
So we would try to fix that.
The rationale for this work is to encourage further development of editing customisations and extensions. It may be possible to make MCR editing (
T107595
) easier to implement.
Usage survey in WMF deployed extensions
SemanticForms (a.k.a. PageForms) creates an EditPage object in order to execute the backend
EditPage::internalAttemptSave()
JsonConfig and LiquidThreads create an EditPage object in order to execute the combined frontend and backend
EditPage::edit()
, with hooks to customise its operation.
ProofreadPage subclasses EditPage in order to override the UI and content object creation.
VisualEditor and LiquidThreads invoke ApiEditPage to perform an edit.
The following extensions hook the backend part of EditPage (
EditFilter
EditFilterMergedContent
EditPage::attemptSave
EditPage::attemptSave:after
):
AbuseFilter
ConfirmEdit
EventLogging
Gadgets
JsonConfig
ProofreadPage
Scribunto
SpamBlacklist
TitleBlacklist
Translate
UploadWizard
WikiEditor
Wikidata
FlaggedRevs and VisualEditor create an EditPage object in order to extract UI components that they wish to reuse. MassMessage calls an EditPage static method for the same reason.
TwoColConflict subclasses EditPage in order to simulate conflicts, and couples tightly to the form parameters and internal EditPage fields when implementing a new conflict workflow.
Request access deeper in the stack
The proposed backend is not useful if the caller still has to set up a fake request to fool deeper parts of the stack. As such, the following methods that access RequestContext or WebRequest are concerning:
The context title is accessed from
WikitextContent::isCountable()
, which is called during edit with
$title = null
Various things access the IP address from the request context, such as
User::getBlockedStatus()
User::pingLimiter()
RecentChange::checkIPAddress()
and AbuseFilter.
User::getBlockedStatus()
also accesses the request cookies and
X-Forwarded-For
header
Probably other things
Details
Related Changes in Gerrit:
Subject
Repo
Branch
Lines +/-
Move page saving logic out of EditPage into a separate class
mediawiki/core
master
+1 K
-665
EditPage::importFormData should set context request
mediawiki/core
master
+13
-5
DRAFT: EditPage internalAttemptSaveToConstraint()
mediawiki/core
master
+185
-56
Factor out a backend from EditPage
mediawiki/core
master
+3 K
-657
EditPage: Make two properties non-nullable
mediawiki/core
master
+2
-2
editpage: Use PHP type declarations for save-related attributes and methods
mediawiki/core
master
+47
-68
editpage: Convert IEditConstraint to an abstract class
mediawiki/core
master
+135
-149
editpage: Move some helper methods to a new service
mediawiki/core
master
+495
-183
editpage: Introduce EditPageStatus
mediawiki/core
master
+319
-233
editpage: Split constraint runner creation into separate methods
mediawiki/core
master
+221
-183
editpage: Rename internalAttemptSavePrivate back to internalAttemptSave
mediawiki/core
master
+6
-6
Hard deprecate public access to EditPage::internalAttemptSave()
mediawiki/core
master
+30
-16
EditFilterMergedContentHookConstraint: fix docs typo
mediawiki/core
master
+1
-1
Move AS_REVISION_WAS_DELETED handling into constraint
mediawiki/core
master
+41
-19
Move section-check logic to ExistingSectionEditConstraint
mediawiki/core
master
+38
-12
Rename AutoSummaryMissingSummaryConstraint
mediawiki/core
master
+14
-14
EditPage::internalAttemptSave() - move more logic to constraints
mediawiki/core
master
+43
-19
Update creation of edit constraints following switch to Authority
mediawiki/core
master
+12
-87
Add tests for EditConstraintFactory
mediawiki/core
master
+125
-0
Bring SpamRegexConstraint test coverage to 100%
mediawiki/core
master
+1
-1
Make EditConstraintRunner reusable
mediawiki/core
master
+4
-7
EditManager: create initial service for editing backend
mediawiki/core
master
+304
-65
EditPage: reduce coupling in internalAttemptSave
mediawiki/core
master
+244
-197
EditPage::internalAttemptSave - run onEditFilter hook earlier
mediawiki/core
master
+14
-14
Add EditPage::handleFailedConstraint
mediawiki/core
master
+46
-44
ImageRedirectConstraint: accept Content objects
mediawiki/core
master
+37
-33
EditPage: cleanup mergeChangesIntoContent
mediawiki/core
master
+13
-11
UserRateLimitConstraint: move detection of content model change to constraint
mediawiki/core
master
+29
-11
Remove EditPage::$unicodeCheck
mediawiki/core
master
+2
-9
EditPage: use TextFormatter in ::newSectionSummary()
mediawiki/core
master
+12
-11
Move more logic into edit constraints
mediawiki/core
master
+56
-23
EditPage: misc cleanup related to eventual backend
mediawiki/core
master
+60
-43
Add AccidentalRecreationConstraint
mediawiki/core
master
+170
-7
EditPage: Add two more constraints
mediawiki/core
master
+444
-48
EditPage: Move $sectionHeadingToCheck handling to SpamRegexConstraint
mediawiki/core
master
+25
-15
Move EditPage::runPostMergeFilters to a constraint
mediawiki/core
master
+412
-69
Rename MissingSummaryConstraint to NewSectionMissingSummaryConstraint
mediawiki/core
master
+15
-15
EditPage::runPostMergeFilters never starts with a hook error
mediawiki/core
master
+0
-8
EditPage: Prep for EditConflictManager refactor
mediawiki/core
master
+53
-37
EditPage: Factor out more constraints
mediawiki/core
master
+722
-29
Minor tweaks to edit constraints
mediawiki/core
master
+83
-19
Add PageSizeConstraint and ChangeTagsConstraint
mediawiki/core
master
+482
-30
Clean up EditPageConstraintsTest
mediawiki/core
master
+59
-74
Reorder some of the code in EditPage::internalAttemptSave
mediawiki/core
master
+31
-62
EditPage: Migrate more checks to constraint
mediawiki/core
master
+1 K
-157
Reorder some of the checks in EditPage
mediawiki/core
master
+21
-21
EditPage: Move spam checks to SpamRegexConstraint
mediawiki/core
master
+378
-36
EditPage: add `EditConflict` log channel
mediawiki/core
master
+23
-11
Add EditConstraintFactory, migrate SimpleAntiSpamConstraint
mediawiki/core
master
+303
-22
Introduce EditConstraint system, migrate unicode check to constraint
mediawiki/core
master
+386
-4
Show related patches
Customize query in gerrit
Related Objects
Search...
Task Graph
Mentions
Duplicates
Status
Subtype
Assigned
Task
Open
None
T20654
EditPage.php needs rewrite: Separate DB and UI logic
Open
None
T157658
Factor out a backend from EditPage
Resolved
DannyS712
T251015
Move spam regex checks out of EditPage
Resolved
PRODUCTION ERROR
DannyS712
T252963
Fatal TypeError: Argument to SpamChecker::checkSummary() must be of the type string, null given
Open
None
T251588
EditPage save hooks pass an entire `EditPage` object
Resolved
DannyS712
T251023
EditPage::getCurrentContent unexpectedly changes $currentModel and $currentFormat
Open
None
T175745
Do not overwrite edits when conflicting with self
Resolved
matmarex
T201613
Unify 'edit notices' technology stack
Open
None
T384399
Move human-readable error messages for edit attempts to the EditConstraint classes
Resolved
matmarex
T423754
"StatusFormatter::getMessage: Invalid result object: no error text but not OK" is logged a lot on the WikiEditor channel
Open
None
T414867
Remove error constants from IEditObject and use bad statuses without a result instead
Mentioned In
T420101: +2 on mediawiki/* to SomeRandomDeveloper
T418030: Edit links for titles included with lst got broken
T334855: Support Special:MyLanguage/ in editIntro parameter
T281400: TypeError: Argument 1 passed to EditPage::displayViewSourcePage() must implement interface Content, null given
T54747: Api: Allow creation of new section without header but with summary
T18461: Different system messages for local and global title blacklist hits
T9889: "Blank edit summary" notice is shown even when an autosummary is added
T7365: Edit summary reminder displayed for null edit
T266464: Provide a reliable way for extensions to run postmerge hooks
T251588: EditPage save hooks pass an entire `EditPage` object
T159725: AbuseFilter: Indicate that an edit was a revert
T250638: Replace uses and hard deprecate WikiPage::doEditContent and PageUpdater::getStatus
T251023: EditPage::getCurrentContent unexpectedly changes $currentModel and $currentFormat
T230842: Contributor creates a page
T28918: Provide clean interface to register content editing interfaces
Mentioned Here
T20654: EditPage.php needs rewrite: Separate DB and UI logic
T245964: Split up and servicify ChangeTags class
T251588: EditPage save hooks pass an entire `EditPage` object
T208801: Support slots other than the main slot in EditPage - backend support
T120414: RFC: MediaWiki should provide a pluggable registry for editor interfaces
T107595: [RFC] Multi-Content Revisions
Duplicates Merged Here
T158359: Replace EditPage to decouple saving logic from edit processing and user interface
Event Timeline
There are a very large number of changes, so older changes are hidden.
Show Older Changes
gerritbot
added a comment.
Dec 26 2020, 5:40 PM
2020-12-26 17:40:43 (UTC+0)
Comment Actions
Change 651715
merged
by jenkins-bot:
[mediawiki/core@master] Bring SpamRegexConstraint test coverage to 100%
ReleaseTaggerBot
edited projects, added
MW-1.36-notes (1.36.0-wmf.25; 2021-01-05)
; removed
MW-1.36-notes (1.36.0-wmf.22; 2020-12-15)
Dec 26 2020, 6:00 PM
2020-12-26 18:00:31 (UTC+0)
gerritbot
added a comment.
Dec 26 2020, 8:27 PM
2020-12-26 20:27:31 (UTC+0)
Comment Actions
Change 651716
merged
by jenkins-bot:
[mediawiki/core@master] Add tests for EditConstraintFactory
DannyS712
added a subscriber:
Clarakosi
Jan 13 2021, 11:19 PM
2021-01-13 23:19:26 (UTC+0)
Comment Actions
In
T157658#6697568
@gerritbot
wrote:
Change 649916 had a related patch set uploaded (by DannyS712; owner: DannyS712):
[mediawiki/core@master] Factor out a backend from EditPage
This is still waiting for review.
@Pchelolo
@Clarakosi
any chance you can take a look?
DannyS712
added a comment.
Jan 21 2021, 3:55 AM
2021-01-21 03:55:25 (UTC+0)
Comment Actions
@Pchelolo
and others, there was a question about naming on the patch. I currently have "EditManager" and "EditManagerFactory", but
@Pchelolo
pointed out that
Naming... Usually 'Manager' in MW is a singleton object ( or per-domain singleton ) providing some features. The key is that "Manager" is independent of the request context. What you are creating here is a Command pattern (like MovePage etc). EditPage name is taken, so perhaps EditCommand?
I suggested "ManagedEdit" or "EditPageEdit", since this seems to me to be bigger than the command pattern. What do others think about naming? Some options:
EditManager (not a singleton though)
EditCommand (bigger than the rest of the existing commands, in my view)
ManagedEdit
EditPageEdit
PageEdit
open to hearing other names though.
DannyS712
added a comment.
Feb 3 2021, 11:13 PM
2021-02-03 23:13:27 (UTC+0)
Comment Actions
In
T157658#6764076
@DannyS712
wrote:
@Pchelolo
and others, there was a question about naming on the patch. I currently have "EditManager" and "EditManagerFactory", but
@Pchelolo
pointed out that
Naming... Usually 'Manager' in MW is a singleton object ( or per-domain singleton ) providing some features. The key is that "Manager" is independent of the request context. What you are creating here is a Command pattern (like MovePage etc). EditPage name is taken, so perhaps EditCommand?
I suggested "ManagedEdit" or "EditPageEdit", since this seems to me to be bigger than the command pattern. What do others think about naming? Some options:
EditManager (not a singleton though)
EditCommand (bigger than the rest of the existing commands, in my view)
ManagedEdit
EditPageEdit
PageEdit
open to hearing other names though.
Discussed with
@Pchelolo
on IRC, we settled on
MediaWiki\EditPage\PageEdit
and
MediaWiki\EditPage\PageEdit
. Should be ready for re-review
CCicalese_WMF
removed a project:
Platform Engineering
Feb 24 2021, 11:37 PM
2021-02-24 23:37:55 (UTC+0)
gerritbot
added a comment.
Mar 22 2021, 11:04 PM
2021-03-22 23:04:33 (UTC+0)
Comment Actions
Change 674116 had a related patch set uploaded (by DannyS712; owner: DannyS712):
[mediawiki/core@master] Update creation of edit constraints following switch to Authority
gerritbot
added a comment.
Mar 23 2021, 3:55 PM
2021-03-23 15:55:45 (UTC+0)
Comment Actions
Change 674116
merged
by jenkins-bot:
[mediawiki/core@master] Update creation of edit constraints following switch to Authority
ReleaseTaggerBot
edited projects, added
MW-1.36-notes (1.36.0-wmf.37; 2021-03-30)
; removed
MW-1.36-notes (1.36.0-wmf.25; 2021-01-05)
Mar 23 2021, 4:00 PM
2021-03-23 16:00:44 (UTC+0)
gerritbot
added a comment.
Apr 4 2021, 9:16 PM
2021-04-04 21:16:02 (UTC+0)
Comment Actions
Change 676794 had a related patch set uploaded (by DannyS712; author: DannyS712):
[mediawiki/core@master] EditPage::importFormData should set context request
DannyS712
mentioned this in
T54747: Api: Allow creation of new section without header but with summary
Apr 16 2021, 7:14 PM
2021-04-16 19:14:58 (UTC+0)
thcipriani
mentioned this in
T281400: TypeError: Argument 1 passed to EditPage::displayViewSourcePage() must implement interface Content, null given
Apr 28 2021, 6:33 PM
2021-04-28 18:33:29 (UTC+0)
Zabe
subscribed.
Oct 5 2021, 4:31 PM
2021-10-05 16:31:57 (UTC+0)
Daimona
subscribed.
Apr 18 2022, 4:56 PM
2022-04-18 16:56:26 (UTC+0)
Comment Actions
What's the status of this task? I would very much like to see EditPage go away, and I may be able to help with CR. The
main patch
is a few months old and out-of-date, at the point that it may be easier to start over. I also wonder if it would make more sense to split the changes into multiple patches, e.g. move everything as static methods in another file, then make everything non-static, inject dependencies, clean up etc., so that it's easier to review and it's less likely for things to break (which remains quite likely, given that we're talking about EditPage).
DannyS712
added a comment.
Apr 18 2022, 6:34 PM
2022-04-18 18:34:28 (UTC+0)
Comment Actions
In
T157658#7861560
@Daimona
wrote:
What's the status of this task? I would very much like to see EditPage go away, and I may be able to help with CR. The
main patch
is a few months old and out-of-date, at the point that it may be easier to start over. I also wonder if it would make more sense to split the changes into multiple patches, e.g. move everything as static methods in another file, then make everything non-static, inject dependencies, clean up etc., so that it's easier to review and it's less likely for things to break (which remains quite likely, given that we're talking about EditPage).
Makes sense. I should have some time to revisit this soon, and will definitely split it up as suggested. This won't be able to finish completely until
T251588
drops the hook that passes an entire EditPage before each edit, but we can definitely make progress
Aklapper
edited projects, added
Patch-Needs-Improvement
; removed
Patch-For-Review
Feb 21 2023, 10:20 PM
2023-02-21 22:20:19 (UTC+0)
Aklapper
removed subscribers:
Clarakosi
Pchelolo
Aklapper
removed
DannyS712
as the assignee of this task.
Mar 21 2023, 9:44 AM
2023-03-21 09:44:23 (UTC+0)
Comment Actions
@DannyS712
: Removing task assignee as this open task has been assigned for more than two years - See the email sent to task assignee on Feburary 22nd, 2023.
Please assign this task to yourself again if you still realistically [plan to] work on this task - it would be welcome! :)
If this task has been resolved in the meantime, or
should not be worked on by anybody
("declined"), please update its task status via "Add Action… 🡒 Change Status".
Also see
for tips how to best manage your individual work in Phabricator. Thanks!
Jdforrester-WMF
mentioned this in
T334855: Support Special:MyLanguage/ in editIntro parameter
Apr 19 2023, 7:56 PM
2023-04-19 19:56:23 (UTC+0)
matmarex
added a subtask:
T201613: Unify 'edit notices' technology stack
Apr 20 2023, 1:10 AM
2023-04-20 01:10:45 (UTC+0)
Izno
subscribed.
Apr 20 2023, 1:13 AM
2023-04-20 01:13:02 (UTC+0)
matmarex
closed subtask
T201613: Unify 'edit notices' technology stack
as
Resolved
May 20 2023, 8:16 AM
2023-05-20 08:16:17 (UTC+0)
Vedmaka
subscribed.
Aug 10 2023, 1:54 PM
2023-08-10 13:54:11 (UTC+0)
kostajh
subscribed.
Mar 12 2024, 12:36 PM
2024-03-12 12:36:31 (UTC+0)
gerritbot
added a comment.
Jul 11 2024, 9:06 PM
2024-07-11 21:06:49 (UTC+0)
Comment Actions
Change #1053782 had a related patch set uploaded (by DannyS712; author: DannyS712):
[mediawiki/core@master] EditPage::internalAttemptSave() - move more logic to constraints
gerritbot
added a project:
Patch-For-Review
Jul 11 2024, 9:06 PM
2024-07-11 21:06:50 (UTC+0)
Restricted Application
removed a project:
Patch-Needs-Improvement
View Herald Transcript
Jul 11 2024, 9:06 PM
2024-07-11 21:06:50 (UTC+0)
DannyS712
claimed this task.
Jul 11 2024, 10:21 PM
2024-07-11 22:21:33 (UTC+0)
Comment Actions
Okay, so coming back to this after a *while*, I'm going to try to make some more progress
some more logic can be moved to constraints (first patch for that already sent ^)
internalAttemptSave() isn't called anywhere in core or deployed extensions outside of EditPage.php and tests, so we can make it private (with a changed name) and replace the public version with a hard deprecated wrapper for the private one - after the hard deprecation, we can remove the public-ness of the method, and then refactoring the interface will be a lot simpler
the biggest part of this will still be blocked by
T251588
, which hasn't had any progress - can I convince one of the subscribers or teams watching to take that up? I'm happy to provide code review
gerritbot
added a comment.
Jul 12 2024, 8:56 PM
2024-07-12 20:56:19 (UTC+0)
Comment Actions
Change #1053782
merged
by jenkins-bot:
[mediawiki/core@master] EditPage::internalAttemptSave() - move more logic to constraints
ReleaseTaggerBot
added a project:
MW-1.43-notes (1.43.0-wmf.14; 2024-07-16)
Jul 12 2024, 9:00 PM
2024-07-12 21:00:35 (UTC+0)
gerritbot
added a comment.
Jul 12 2024, 9:01 PM
2024-07-12 21:01:19 (UTC+0)
Comment Actions
Change #1053989 had a related patch set uploaded (by DannyS712; author: DannyS712):
[mediawiki/core@master] Rename AutoSummaryMissingSummaryConstraint
gerritbot
added a comment.
Jul 12 2024, 9:14 PM
2024-07-12 21:14:11 (UTC+0)
Comment Actions
Change #1053992 had a related patch set uploaded (by DannyS712; author: DannyS712):
[mediawiki/core@master] Move AS_REVISION_WAS_DELETED handling into constraint
matmarex
added a comment.
Jul 12 2024, 9:33 PM
2024-07-12 21:33:18 (UTC+0)
Comment Actions
In
T157658#9975405
@DannyS712
wrote:
the biggest part of this will still be blocked by
T251588
, which hasn't had any progress - can I convince one of the subscribers or teams watching to take that up?
We've had some plans on the
MediaWiki-Platform-Team
to work on
T20654: EditPage.php needs rewrite: Separate DB and UI logic
(the parent task for all of this work), but it has been deprioritized for now in favor of finishing the
SUL3
work earlier. I am hopeful that we'll come back to it afterwards, but no promises yet.
DannyS712
added a subscriber:
matmarex
Jul 12 2024, 9:42 PM
2024-07-12 21:42:10 (UTC+0)
Comment Actions
In
T157658#9978408
@matmarex
wrote:
In
T157658#9975405
@DannyS712
wrote:
the biggest part of this will still be blocked by
T251588
, which hasn't had any progress - can I convince one of the subscribers or teams watching to take that up?
We've had some plans on the
MediaWiki-Platform-Team
to work on
T20654: EditPage.php needs rewrite: Separate DB and UI logic
(the parent task for all of this work), but it has been deprioritized for now in favor of finishing the
SUL3
work earlier. I am hopeful that we'll come back to it afterwards, but no promises yet.
Well its good to know that the WMF had the plans - are you (collectively) willing to help with code review of more non-trivial patches if I have the time to write the code?
gerritbot
added a comment.
Jul 12 2024, 9:42 PM
2024-07-12 21:42:26 (UTC+0)
Comment Actions
Change #1053993 had a related patch set uploaded (by DannyS712; author: DannyS712):
[mediawiki/core@master] Move section-check logic to ExistingSectionEditConstraint
daniel
added a comment.
Jul 13 2024, 9:17 AM
2024-07-13 09:17:57 (UTC+0)
Comment Actions
In
T157658#9978424
@DannyS712
wrote:
Well its good to know that the WMF had the plans - are you (collectively) willing to help with code review of more non-trivial patches if I have the time to write the code?
I can't speak for the team, but I would personally be willing to review - however, the turn-around time will depend a lot on my current work load and involvment in other projects. If it's ok for you to "slow cook" these patches over weeks and months, that would work for me. That's how my own side projects tend to progress as well...
matmarex
added a comment.
Jul 15 2024, 8:29 PM
2024-07-15 20:29:13 (UTC+0)
Comment Actions
Same here. That said, I think I've been able to stay on top of code review requests recently, so I should be able to keep up with you as well. Thanks for working on it :)
gerritbot
added a comment.
Jul 15 2024, 8:56 PM
2024-07-15 20:56:45 (UTC+0)
Comment Actions
Change #1053989
merged
by jenkins-bot:
[mediawiki/core@master] Rename AutoSummaryMissingSummaryConstraint
gerritbot
added a comment.
Jul 15 2024, 9:04 PM
2024-07-15 21:04:30 (UTC+0)
Comment Actions
Change #1053992
merged
by jenkins-bot:
[mediawiki/core@master] Move AS_REVISION_WAS_DELETED handling into constraint
gerritbot
added a comment.
Jul 15 2024, 9:05 PM
2024-07-15 21:05:19 (UTC+0)
Comment Actions
Change #1053993
merged
by jenkins-bot:
[mediawiki/core@master] Move section-check logic to ExistingSectionEditConstraint
Tgr
awarded a token.
Jul 16 2024, 8:34 PM
2024-07-16 20:34:40 (UTC+0)
Tgr
subscribed.
gerritbot
added a comment.
Jul 21 2024, 2:40 PM
2024-07-21 14:40:31 (UTC+0)
Comment Actions
Change #1055582 had a related patch set uploaded (by DannyS712; author: DannyS712):
[mediawiki/core@master] Hard deprecate public access to EditPage::internalAttemptSave()
gerritbot
added a comment.
Jul 21 2024, 2:54 PM
2024-07-21 14:54:26 (UTC+0)
Comment Actions
Change #1055584 had a related patch set uploaded (by DannyS712; author: DannyS712):
[mediawiki/core@master] EditFilterMergedContentHookConstraint: fix docs typo
gerritbot
added a comment.
Jul 21 2024, 8:07 PM
2024-07-21 20:07:41 (UTC+0)
Comment Actions
Change #1055584
merged
by jenkins-bot:
[mediawiki/core@master] EditFilterMergedContentHookConstraint: fix docs typo
gerritbot
added a comment.
Jul 21 2024, 8:20 PM
2024-07-21 20:20:51 (UTC+0)
Comment Actions
Change #1055617 had a related patch set uploaded (by DannyS712; author: DannyS712):
[mediawiki/core@master] DRAFT: EditPage internalAttemptSaveToConstraint()
ReleaseTaggerBot
edited projects, added
MW-1.43-notes (1.43.0-wmf.15; 2024-07-23)
; removed
MW-1.43-notes (1.43.0-wmf.14; 2024-07-16)
Jul 21 2024, 9:00 PM
2024-07-21 21:00:14 (UTC+0)
gerritbot
added a comment.
Jul 24 2024, 11:27 PM
2024-07-24 23:27:25 (UTC+0)
Comment Actions
Change #1055582
merged
by jenkins-bot:
[mediawiki/core@master] Hard deprecate public access to EditPage::internalAttemptSave()
ReleaseTaggerBot
edited projects, added
MW-1.43-notes (1.43.0-wmf.16; 2024-07-30)
; removed
MW-1.43-notes (1.43.0-wmf.15; 2024-07-23)
Jul 25 2024, 12:00 AM
2024-07-25 00:00:51 (UTC+0)
DannyS712
added a comment.
Jul 25 2024, 2:42 PM
2024-07-25 14:42:33 (UTC+0)
Comment Actions
@matmarex
would you mind taking a look at
which is where I envision this going next - should that patch be split up into multiple smaller steps? Or does it work as a single patch?
matmarex
added a subtask:
T384399: Move human-readable error messages for edit attempts to the EditConstraint classes
Jan 21 2025, 11:24 PM
2025-01-21 23:24:12 (UTC+0)
gerritbot
added a comment.
Apr 23 2025, 2:49 AM
2025-04-23 02:49:48 (UTC+0)
Comment Actions
Change #1138139 had a related patch set uploaded (by Krinkle; author: Krinkle):
[mediawiki/core@master] editpage: Rename internalAttemptSavePrivate back to internalAttemptSave
gerritbot
added a comment.
Apr 23 2025, 12:58 PM
2025-04-23 12:58:34 (UTC+0)
Comment Actions
Change #1138139
merged
by jenkins-bot:
[mediawiki/core@master] editpage: Rename internalAttemptSavePrivate back to internalAttemptSave
SomeRandomDeveloper
subscribed.
Aug 9 2025, 9:57 AM
2025-08-09 09:57:51 (UTC+0)
SomeRandomDeveloper
created subtask
T414867: Remove error constants from IEditObject and use bad statuses without a result instead
Jan 17 2026, 5:38 PM
2026-01-17 17:38:28 (UTC+0)
Bugreporter2
updated the task description.
(Show Details)
Jan 18 2026, 12:41 AM
2026-01-18 00:41:05 (UTC+0)
Bugreporter2
awarded a token.
gerritbot
added a comment.
Jan 29 2026, 1:17 AM
2026-01-29 01:17:48 (UTC+0)
Comment Actions
Change #1234555 had a related patch set uploaded (by SomeRandomDeveloper; author: SomeRandomDeveloper):
[mediawiki/core@master] editpage: Split constraint runner creation into separate methods
gerritbot
added a comment.
Jan 29 2026, 1:17 AM
2026-01-29 01:17:51 (UTC+0)
Comment Actions
Change #1234556 had a related patch set uploaded (by SomeRandomDeveloper; author: SomeRandomDeveloper):
[mediawiki/core@master] editpage: Introduce EditPageStatus
gerritbot
added a comment.
Jan 30 2026, 5:45 PM
2026-01-30 17:45:36 (UTC+0)
Comment Actions
Change #1234555
merged
by jenkins-bot:
[mediawiki/core@master] editpage: Split constraint runner creation into separate methods
ReleaseTaggerBot
added a project:
MW-1.46-notes (1.46.0-wmf.14; 2026-02-03)
Jan 30 2026, 6:00 PM
2026-01-30 18:00:13 (UTC+0)
gerritbot
added a comment.
Jan 30 2026, 10:30 PM
2026-01-30 22:30:02 (UTC+0)
Comment Actions
Change #1234556
merged
by jenkins-bot:
[mediawiki/core@master] editpage: Introduce EditPageStatus
gerritbot
added a comment.
Feb 6 2026, 11:29 PM
2026-02-06 23:29:33 (UTC+0)
Comment Actions
Change #1237600 had a related patch set uploaded (by SomeRandomDeveloper; author: SomeRandomDeveloper):
[mediawiki/core@master] editpage: Move some helper methods to a new service
gerritbot
added a comment.
Feb 12 2026, 7:59 PM
2026-02-12 19:59:38 (UTC+0)
Comment Actions
Change #1237600
merged
by jenkins-bot:
[mediawiki/core@master] editpage: Move some helper methods to a new service
ReleaseTaggerBot
edited projects, added
MW-1.46-notes (1.46.0-wmf.16; 2026-02-17)
; removed
MW-1.46-notes (1.46.0-wmf.14; 2026-02-03)
Feb 12 2026, 9:00 PM
2026-02-12 21:00:36 (UTC+0)
eranroz
mentioned this in
T418030: Edit links for titles included with lst got broken
Feb 20 2026, 11:01 PM
2026-02-20 23:01:11 (UTC+0)
Pppery
removed
DannyS712
as the assignee of this task.
Feb 21 2026, 5:07 PM
2026-02-21 17:07:54 (UTC+0)
gerritbot
added a comment.
Mar 1 2026, 10:33 PM
2026-03-01 22:33:21 (UTC+0)
Comment Actions
Change #1246886 had a related patch set uploaded (by SomeRandomDeveloper; author: SomeRandomDeveloper):
[mediawiki/core@master] Convert IEditConstraint to an abstract class
gerritbot
added a comment.
Mar 2 2026, 11:00 PM
2026-03-02 23:00:40 (UTC+0)
Comment Actions
Change #1247183 had a related patch set uploaded (by SomeRandomDeveloper; author: SomeRandomDeveloper):
[mediawiki/core@master] editpage: Use PHP type declarations for save-related attributes and methods
gerritbot
added a comment.
Mar 4 2026, 10:19 PM
2026-03-04 22:19:56 (UTC+0)
Comment Actions
Change #1247183
merged
by jenkins-bot:
[mediawiki/core@master] editpage: Use PHP type declarations for save-related attributes and methods
gerritbot
added a comment.
Mar 4 2026, 10:29 PM
2026-03-04 22:29:41 (UTC+0)
Comment Actions
Change #1246886
merged
by jenkins-bot:
[mediawiki/core@master] editpage: Convert IEditConstraint to an abstract class
ReleaseTaggerBot
edited projects, added
MW-1.46-notes (1.46.0-wmf.19; 2026-03-10)
; removed
MW-1.46-notes (1.46.0-wmf.16; 2026-02-17)
Mar 4 2026, 11:00 PM
2026-03-04 23:00:28 (UTC+0)
gerritbot
added a comment.
Mar 13 2026, 1:48 PM
2026-03-13 13:48:29 (UTC+0)
Comment Actions
Change #1251323 had a related patch set uploaded (by SomeRandomDeveloper; author: SomeRandomDeveloper):
[mediawiki/core@master] EditPage: Make two properties non-nullable
gerritbot
added a comment.
Mar 13 2026, 2:17 PM
2026-03-13 14:17:34 (UTC+0)
Comment Actions
Change #1251323
merged
by jenkins-bot:
[mediawiki/core@master] EditPage: Make two properties non-nullable
ReleaseTaggerBot
edited projects, added
MW-1.46-notes (1.46.0-wmf.20; 2026-03-17)
; removed
MW-1.46-notes (1.46.0-wmf.19; 2026-03-10)
Mar 13 2026, 3:01 PM
2026-03-13 15:01:31 (UTC+0)
gerritbot
added a comment.
Mar 13 2026, 3:46 PM
2026-03-13 15:46:31 (UTC+0)
Comment Actions
Change #1249476 had a related patch set uploaded (by SomeRandomDeveloper; author: SomeRandomDeveloper):
[mediawiki/core@master] Move page saving logic out of EditPage into a separate class
SomeRandomDeveloper
added a project:
Hackathon-Northwestern-Europe-2026
Mar 13 2026, 3:47 PM
2026-03-13 15:47:34 (UTC+0)
SomeRandomDeveloper
moved this task from
Proposed Projects
to
Tinkering in Progress
on the
Hackathon-Northwestern-Europe-2026
board.
Zabe
mentioned this in
T420101: +2 on mediawiki/* to SomeRandomDeveloper
Mar 14 2026, 2:37 PM
2026-03-14 14:37:19 (UTC+0)
Novem_Linguae
subscribed.
Mar 14 2026, 4:18 PM
2026-03-14 16:18:55 (UTC+0)
Tacsipacsi
subscribed.
Mar 15 2026, 12:52 PM
2026-03-15 12:52:25 (UTC+0)
Comment Actions
FlaggedRevs […] create an EditPage object in order to extract UI components that they wish to reuse.
Maybe it technically uses
EditPage
only for this, but it relies on the internals of page editing a lot more: it directly accesses a lot of form fields set on editing (including its own checkbox, but also core ones at least to recognize any kinds of undoing edits – revert, rollback, manual revert –, and likely other things I forgot about). Removing the fake requests may break these accesses, so FlaggedRevs should be tested carefully, and fixed as necessary.
SomeRandomDeveloper
added a comment.
Mar 15 2026, 1:13 PM
2026-03-15 13:13:16 (UTC+0)
Comment Actions
I think that comment is outdated because FlaggedRevs doesn't create an EditPage anymore since
, it only uses existing instances from hooks
Tacsipacsi
added a comment.
Mar 15 2026, 1:37 PM
2026-03-15 13:37:17 (UTC+0)
Comment Actions
The code you removed didn’t “extract UI components [it] whish[ed] to reuse”, so either the description is inaccurate, or it meant something else (which either still exists or – more likely – has long been removed).
In any case,
my
comment is AFAIK up-to-date.
SomeRandomDeveloper
added a comment.
Mar 15 2026, 1:51 PM
2026-03-15 13:51:53 (UTC+0)
Comment Actions
In
T157658#11711466
@Tacsipacsi
wrote:
The code you removed didn’t “extract UI components [it] whish[ed] to reuse”, so either the description is inaccurate, or it meant something else (which either still exists or – more likely – has long been removed).
Yes, my point was primarily that it is outdated because FlaggedRevs isn't creating an EditPage anymore at all.
Based on the age of this task and the last comments I wouldn't expect anything to be up-to-date anyway.
In any case,
my
comment is AFAIK up-to-date.
In that case, feel free to update the description so it won't get buried beneath other comments :)
gerritbot
added a comment.
Mon, Mar 30, 1:13 PM
2026-03-30 13:13:08 (UTC+0)
Comment Actions
Change #676794
abandoned
by Hashar:
[mediawiki/core@master] EditPage::importFormData should set context request
gerritbot
added a comment.
Mon, Mar 30, 1:19 PM
2026-03-30 13:19:29 (UTC+0)
Comment Actions
Change #1055617
abandoned
by Hashar:
[mediawiki/core@master] DRAFT: EditPage internalAttemptSaveToConstraint()
gerritbot
added a comment.
Mon, Mar 30, 11:07 PM
2026-03-30 23:07:55 (UTC+0)
Comment Actions
Change #1055617
restored
by Thcipriani:
[mediawiki/core@master] DRAFT: EditPage internalAttemptSaveToConstraint()
gerritbot
added a comment.
Mon, Mar 30, 11:44 PM
2026-03-30 23:44:01 (UTC+0)
Comment Actions
Change #676794
restored
by Thcipriani:
[mediawiki/core@master] EditPage::importFormData should set context request
gerritbot
added a comment.
Thu, Apr 2, 6:27 PM
2026-04-02 18:27:10 (UTC+0)
Comment Actions
Change #649916
abandoned
by Bartosz Dziewoński:
[mediawiki/core@master] Factor out a backend from EditPage
Reason:
Outdated patch, conflicts with ongoing EditPage refactoring – sorry
gerritbot
added a comment.
Thu, Apr 2, 6:27 PM
2026-04-02 18:27:16 (UTC+0)
Comment Actions
Change #1055617
abandoned
by Bartosz Dziewoński:
[mediawiki/core@master] DRAFT: EditPage internalAttemptSaveToConstraint()
Reason:
Outdated patch, conflicts with ongoing EditPage refactoring – sorry
gerritbot
added a comment.
Thu, Apr 2, 6:27 PM
2026-04-02 18:27:34 (UTC+0)
Comment Actions
Change #676794
abandoned
by Bartosz Dziewoński:
[mediawiki/core@master] EditPage::importFormData should set context request
Reason:
Outdated patch, conflicts with ongoing EditPage refactoring – sorry
Log In to Comment
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
Code of Conduct
Disclaimer
CC-BY-SA
GPL
Credits
US