Page MenuHomePhabricator

Document typical criteria used to decide whether an extension or skin should be archived
Open, Needs TriagePublic

Description

Currently it is not clear when it might be desirable to archive an extension or skin, outside of a few blindingly obvious situations such as its source code no longer being accessible. What other criteria apply, and when? Does it matter if an extension has been unmaintained for N years (and if so, what's a good cutoff for N)? If an extension/skin was never migrated to Git, or its maintainer(s) refuse to put it there, does that count in favor of archiving? And so on.

To start with, it would help to just document the criteria that were used to choose the extensions to archive recently as part of Projects-Cleanup . The information probably should be added on that project, since it seems to be the centralized location for extension/skin archival work.

Event Timeline

Adding as subscribers the people who created the currently-open "Archive <extension>" tickets (please either add anyone I missed, or yell at me for unnecessarily adding people =) ).

I use the criteria Andre mentioned and some common sense as well. Thanks.

Personally, and this applies mostly to extensions that never were in any Wikimedia source control (storing extension code on-wiki), anything pre-2010 that hasn't been updated qualifies. I think for extensions/skins it matters mostly how compatible they are. Skins that weren't updated after 1.24 quickly loose compatibility (if they aren't incompatible yet), and extensions that aren't updated after major changes, such as 1.27 auth replacement, 1.17 ResourceLoader will not work on supported versions of MediaWiki. If the extension hasn't been updated for (a) year(s) after these changes, I think it's safe to assume they can be archived. Anyone who wishes to revive the extension with adjusted code can do so easily. Unfortunately, this doesn't offer clear criteria, because they are extension dependent. If I had set a number of years, I'd probably pick 2, because that's how long LTS releases of MediaWiki are supported.

If an extension/skin was never migrated to Git, or its maintainer(s) refuse to put it there, does that count in favor of archiving?

rSVN is already archived, so I'd say that if they don't want to migrate, their extension is already archived, and we can only let our users know the same. Additionally, I doubt there is any extension in rSVN that will still work with supported MediaWiki versions.

That's very useful as well. I think the least we can do is link to that page on Projects-Cleanup.

I did some looking around before filing this ticket, but didn't find that page; thanks for the pointer. =) And per Mainframe98, that should definitely be linked on Projects-Cleanup.

@Dinoguy1000 don't worry about missing an existing document. We have a lot of doc everywhere, thankfully we are in a collaborative space and what one miss is caught by others \o/

I have recently requested a few extensions to be archived and try to write a meaningful explanation for each request. The trend I noticed were one or more of:

  • Fatal error on MainPage or Special:JavaScripttest
  • Database cant be installed on MySQL
  • update.php or install.php --with-extensions fails
  • No meaningful code update for the last 2 - 3 years
  • https://wikiapiary.com/ showing only a few wikis, some unrecheable and others terribly outdated
  • Supports a tech that no more exists
  • Lack of page on www.mediawiki.org

We can probably look at the last tasks that got filled for Projects-Cleanup and find other reasons.

Side note: members of the Projects-Cleanup project have access to a form to easily generate the extension/skin archiving task ( https://phabricator.wikimedia.org/maniphest/task/edit/form/33/ ). Although I could just archive anything given I have admin rights, I made a point of filling such requests to have at least one other person to shim in.

Note: some extensions might still be working just fine with 1.27 which is supported until June 2019. So although they might not work anymore with 1.31, maybe when people upgrade to 1.31 they will have an opportunity to fix the extension for 1.31.

Although this work looks to address things that might be outside of the scope of the Code Stewardship Reviews[0] (which is focused primarily on un/under maintained orphaned code deployed to WMF production). There's a rubric that we created to help use evaluate and propose what to do with these areas of code. Might be worth taking a look to see if there's some stuff we could leverage either way. Note, archiving/sunsetting of code is only one of the possible outcomes for the Code Stewardship Review process.

[0]https://www.mediawiki.org/wiki/Code_stewardship_reviews

Side note: members of the Projects-Cleanup project have access to a form to easily generate the extension/skin archiving task ( https://phabricator.wikimedia.org/maniphest/task/edit/form/33/ ). Although I could just archive anything given I have admin rights, I made a point of filling such requests to have at least one other person to shim in.

I don't have permission to access that form, which seems a shame. Are forms in general only usable by members of the associated project, or was this one specifically configured that way?

Note: some extensions might still be working just fine with 1.27 which is supported until June 2019. So although they might not work anymore with 1.31, maybe when people upgrade to 1.31 they will have an opportunity to fix the extension for 1.31.

This is an interesting point. Should support for a currently-supported version of MediaWiki be an explicit criterion here, or is it too likely to just duplicate other criteria?

I don't have permission to access that form, which seems a shame

There's nothing shamely about that. You just have to be a member of Projects-Cleanup. You can become one at https://phabricator.wikimedia.org/project/members/2829/ yourself.

Forms can be set to be displayed or usable in many ways. In this case the administrators though that people outside the Projects-Cleanup project would not benefit from seeing a "create an archival request" link in their "create a task" dropdown every time. Not sure if it can be configured to be used by accessing the form's URL without being a member of the project yourself. I guess @Aklapper and @mmodell will know.

Regards.

Vvjjkkii renamed this task from Document typical criteria used to decide whether an extension or skin should be archived to odaaaaaaaa.Jul 1 2018, 1:02 AM
Vvjjkkii raised the priority of this task from Medium to High.
Vvjjkkii updated the task description. (Show Details)
Vvjjkkii removed subscribers: MarcoAurelio, Aklapper.
JJMC89 renamed this task from odaaaaaaaa to Document typical criteria used to decide whether an extension or skin should be archived.Jul 1 2018, 4:35 AM
JJMC89 lowered the priority of this task from High to Medium.
JJMC89 updated the task description. (Show Details)
JJMC89 added a subscriber: MarcoAurelio.

I did some looking around before filing this ticket, but didn't find that page; thanks for the pointer. =) And per Mainframe98, that should definitely be linked on Projects-Cleanup.

Alright, I linked to that page from https://phabricator.wikimedia.org/project/manage/2829/ now.

Restricted Application changed the subtype of this task from "Deadline" to "Task". · View Herald TranscriptAug 25 2018, 12:04 PM
Aklapper lowered the priority of this task from Medium to Low.Oct 27 2018, 8:41 AM

If this task is really about defining hard criteria and time frames then someone needs to either come up with a proposal which includes time frames or version info per skin/extension/etc, or someone needs to propose to stick with 'common sense' (which does not exist). Otherwise I'd be afraid this task will linger here forever.

I'd be satisfied with some easily-discoverable, reasonably clear rules of thumb; I think it would probably be pointless to try to define hard criteria for this (unless the WMF as an organization wanted to draw a line in the sand, which might not be unreasonable depending on what they're after as far as custom extensions/skins are concerned).

Is it fair to say that in general, archival should be done in cases where it's unlikely that a given extension/skin will be maintained (whether that be because it's grossly out-of-date, the maintainer(s) has vanished, the source code has been lost, etc.)? If so, this can be documented while also leaving open the possibility for archivals for other reasons, such as planned sunsetting of WMF extensions.

Bugreporter subscribed.

Comments moved from T299281:

Recently Gota_agua (uvas_magicas) archived a number of extension pages in MediaWiki. I do not oppose it, but it seems anyone can do such thing and currently there are no guideline about this. Proposed:

An extension/skin may be archived when:

  • the extension/skin is incompatible for any non-EOL MediaWiki versions for one year
  • the extension/skin is incompatible for any non-EOL MediaWiki versions for six months and there are replacement
  • the extension/skin is obsoleted by author/maintainer for six months
  • when there are consensus to archive an extension (anyone can open a proposal and discuss on Phabricator)

In any cases the author/maintainer of an extension must be notified after a proposed archival and at least seven days before any non on-wiki actions (i.e. Phabricator/Translatewiki/Gerrit/Configuration/tests/integrations).

Open question:

  • Whether to consider how the extension is used in active wiki (e.g. Wikiapiary statistics)
  • Some extensions have very specific functionality and are used in a very limited number of wikis, and it is not easy to know whether they are maintained or compatible (e.g. T271379: Archive the WikiLexicalData extension)
  • What about extensions hosted at GitHub? When Wikimedia moved to GitLab the process may be changed as you can host your own extension at your personal repositories
  • What about extensions hosted at GitHub? When Wikimedia moved to GitLab the process may be changed as you can host your own extension at your personal repositories

This isn't unique to GitLab; there's nothing stopping someone from hosting a published extension on their personal GitHub account either. UIAM the current practice is to just ignore these repositories when archiving an extension.

Bugreporter raised the priority of this task from Low to Needs Triage.EditedJan 16 2022, 6:43 AM

As Aklapper's comment wants a proposal and we now have one