Page MenuHomePhabricator

SPIKE: Review Special:RecentChangesLinked code[4H]
Closed, ResolvedPublicSpike

Description

In T361215, we reviewed the Recent Changes codebase in preparation for maintaining it. However, we missed reviewing the Related Changes codebase, which feeds the Special:RecentChangesLinked page.

Questions to answer in this spike

  • Scope and complexity of code
  • Review of error logging
  • Audit of recent changes board for related changes. How many of the Recent Changes board tickets are Related Changes tickets? How many are bug reports that happen on both?

If the conclusion is we should provide maintenance to Related Changes, we should answer the following questions:

  • Do we actually have to support it?
  • Different level of support from recent changes itself?
  • Separate project tags or logging?

Related Objects

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript
Scardenasmolinar renamed this task from SPIKE: Review Special:RecentChangesLinked code to SPIKE: Review Special:RecentChangesLinked code[4H].Jul 23 2024, 3:04 PM
Scardenasmolinar moved this task from To be estimated to Up next on the Moderator-Tools-Team board.
Kgraessle removed Kgraessle as the assignee of this task.
Kgraessle moved this task from Ready to In Progress on the Moderator-Tools-Team (Kanban) board.
Kgraessle moved this task from In Progress to Ready on the Moderator-Tools-Team (Kanban) board.
Kgraessle subscribed.

SpecialReccentChangesLinked.php

  • Display changes made to all articles linked in an article.
  • Extends SpecialRecentChanges.php
───────────────────────────────────────────────────────────────────────────────
Language                 Files     Lines   Blanks  Comments     Code Complexity
───────────────────────────────────────────────────────────────────────────────
PHP                          1       394       38        79      277         53
───────────────────────────────────────────────────────────────────────────────
Total                        1       394       38        79      277         53
───────────────────────────────────────────────────────────────────────────────
Estimated Cost to Develop (organic) $7,017
Estimated Schedule Effort (organic) 2.09 months
Estimated People Required (organic) 0.30
───────────────────────────────────────────────────────────────────────────────
Processed 12437 bytes, 0.012 megabytes (SI)

SpecialRecentChanges.php

  • List of the last changes made to the wiki
  • Extends ChangesListSpecialPage.php
───────────────────────────────────────────────────────────────────────────────
Language                 Files     Lines   Blanks  Comments     Code Complexity
───────────────────────────────────────────────────────────────────────────────
PHP                          1      1087      126       224      737         75
───────────────────────────────────────────────────────────────────────────────
Total                        1      1087      126       224      737         75
───────────────────────────────────────────────────────────────────────────────
Estimated Cost to Develop (organic) $19,608
Estimated Schedule Effort (organic) 3.09 months
Estimated People Required (organic) 0.56
───────────────────────────────────────────────────────────────────────────────
Processed 34709 bytes, 0.035 megabytes (SI)
───────────────────────────────────────────────────────────────────────────────

ChangesListSpecialPage.php

  • Special page which uses a ChangesList to show query results.
  • Extends SpecialPage.php (Parent class for all special pages)
Language                 Files     Lines   Blanks  Comments     Code Complexity
───────────────────────────────────────────────────────────────────────────────
PHP                          1      2029      206       513     1310         93
───────────────────────────────────────────────────────────────────────────────
Total                        1      2029      206       513     1310         93
───────────────────────────────────────────────────────────────────────────────
Estimated Cost to Develop (organic) $35,869
Estimated Schedule Effort (organic) 3.88 months
Estimated People Required (organic) 0.82
───────────────────────────────────────────────────────────────────────────────
Processed 67775 bytes, 0.068 megabytes (SI)

There is no separate project tag in phabricator. All recent changes linked tickets are lumped in with recent changes.
I identified the following as specific tickets for recent/linked changes:
T194453: Spaces instead of css margin/padding in new Related changes
T159192: "Hide trusted users" checkbox option on watchlists and related/recent changes (RC) pages
T89582: Category related changes should include recently removed items
T18518: Related Changes doesn't work with transcluded special pages
T3803: recentchangeslinked only lists *last* changes, while recentchanges lists *all*
T20524: Preferences: unify filter options of recent changes, new pages, watchlist, recent changes linked
T14889: Special:RecentChangesLinked doesn't show talk pages
T6648: If [[foo]] is a redirect to [[bar]] [[Special:Recentchangeslinked/foo]] should include a link to [[Special:Recentchangeslinked/bar]]
T182340: Special:Recentchangeslinked returns different results for subpages when reloaded
T132569: [Task] Refactor Special:RecentchangesLinked to use WatchedItemStore
T117741: Convert old Special:RecentChangesLinked to HTMLForm (Codex)
T97232: Allow a user to see bot edits on Special:RecentChangesLinked by default
T26801: Wrong <link> content in Special:RecentChangesLinked feeds.
T353002: RecentChanges, RecentChangesLinked and Watchlist should use Codex for their form elements
T292060: Recentchangeslinked missing log entries
T275036: Special:RecentChangesLinked should displays changes in StructuredDiscussion topics
T216372: Special:RecentChangesLinked namespace filters don't work reliably
which brings us to 17 out of 237 or roughly 7%

Is there a different level of support from recent changes itself?
Doesn't seem like much of a lift as RecentChangesLinked extends some of the same parent classes as Recent Changes.
It would also be covered by all classes in the changes directory that we've already investigated.
For example,

  • ChangesFeed.php ( * Feed to Special:RecentChanges and Special:RecentChangesLinked.)
  • ChangesList.php ( * The class is used for formatting recent changes, related changes and watchlist.)

See T361215: [SPIKE] Review RecentChanges code in preparation for taking ownership [8HRS] for a more comprehensive overview of the changes directory.

jsn.sherman subscribed.

This looks good to me. I concur with your assessment; thanks for your work!