User:DWalden (WMF)/Test2wiki k8s migration/Community Tech

From mediawiki.org
Feature Need testing? Does it have dependencies? Existing regression or smoke testing strategy? Does the regression/smoke testing strategy cover the dependencies? Can it be tested on test2wiki? Feasible to make it testable on test2wiki?
Page deletion Yes
  • Job queue
  • Manipulates images in filestore
Some No Yes
Page diffs Yes External binary No N/A Yes
User preferences (including GlobalPreferences) Yes No? No N/A Yes
Watchlist Yes Some sort of back-end processing (I think) Yes No? Yes
Wikisource Yes Various No No No I don't think it is possible
TemplateWizard Not sure API Yes Yes Yes
LoginNotify Yes
  • Email
  • Job queue
No N/A Yes
CodeMirror Not sure, it is mostly UI No Yes N/A Yes
Page Curation Yes
  • Job queue
  • DeferredUpdates
No N/A Yes


Page deletion[edit]

What are the dependencies?[edit]

Does it use any external services?[edit]

Don't think so, apart from database.

Is there any back-end processing?[edit]

Deletes of pages with lots of revisions (greater than Manual:$wgDeleteRevisionsBatchSize, usually 1000) are done in batches via the Job queue.

Does it use external binaries?[edit]

No.

Does it read or write files on the filesystem?[edit]

When deleting or restoring files, it needs to modify the files (images, etc.) in the filestore (to at least move them from one directory to another).

Is there a regression or smoke testing strategy?[edit]

There are Selenium tests for delete and restore.

Also see User:DWalden_(WMF)/(Un)delete_associated_talk_page.

Does it cover the dependencies mentioned above?[edit]

The Selenium tests do not cover deleting/restoring files or deleting/restoring pages with lots of revisions.

Can it be tested on test2wiki?[edit]

Deletion is part of MediaWiki core and can be tested anywhere.

Is it feasible to make it testable on test2wiki?[edit]

It already is.

Page diffs[edit]

What are the dependencies?[edit]

Does it use any external services?[edit]

No, apart from the database and (if you enable live preview) the API.

Is there any back-end processing?[edit]

No.

Does it use external binaries?[edit]

If a package called "wikidiff2" is installed on the server, it will use that to calculate the diffs.

Does it read or write files on the filesystem?[edit]

No?

Is there a regression or smoke testing strategy?[edit]

No, but see User:DWalden_(WMF)/Copy_paste_diffs.

Does it cover the dependencies mentioned above?[edit]

N/A.

Can it be tested on test2wiki?[edit]

Yes. Also, I believe Wikidiff2 is installed on all production wikis (including test2wiki).

Is it feasible to make it testable on test2wiki?[edit]

It already is.

User preferences[edit]

What are the dependencies?[edit]

Does it use any external services?[edit]

No, apart from database.

Is there any back-end processing?[edit]

No?

Does it use external binaries?[edit]

No.

Does it read or write files on the filesystem?[edit]

No.

Is there a regression or smoke testing strategy?[edit]

No. But see User:DWalden_(WMF)/GlobalPreferences.

Does it cover the dependencies mentioned above?[edit]

N/A.

Can it be tested on test2wiki?[edit]

Yes.

Is it feasible to make it testable on test2wiki?[edit]

It already is.

Watchlist[edit]

What are the dependencies?[edit]

Does it use any external services?[edit]

No.

Is there any back-end processing?[edit]

I think there must be something keeping an eye on:

  • edits to watched pages
  • purging expired watchlist items

but haven't found where yet.

Does it use external binaries?[edit]

No.

Does it read or write files on the filesystem?[edit]

No.

Is there a regression or smoke testing strategy?[edit]

This Selenium test.

See also User:DWalden_(WMF)/Watchlist_Expiry.

Does it cover the dependencies mentioned above?[edit]

I don't think so.

Can it be tested on test2wiki?[edit]

Yes.

Is it feasible to make it testable on test2wiki?[edit]

It already is.

TemplateWizard[edit]

What are the dependencies?[edit]

Does it use any external services?[edit]

It uses the TemplateData API.

Is there any back-end processing?[edit]

No.

Does it use external binaries?[edit]

No.

Does it read or write files on the filesystem?[edit]

No.

Is there a regression or smoke testing strategy?[edit]

Yes.

Does it cover the dependencies mentioned above?[edit]

Yes.

Can it be tested on test2wiki?[edit]

Yes.

Is it feasible to make it testable on test2wiki?[edit]

It already is.

LoginNotify[edit]

What are the dependencies?[edit]

Does it use any external services?[edit]

It has to send emails.

Apparently it can integrate with Echo (to send notifications) and CheckUser.

Is there any back-end processing?[edit]

It uses the job queue. Possibly even DeferredUpdates.

Does it use external binaries?[edit]

No.

Does it read or write files on the filesystem?[edit]

No.

Is there a regression or smoke testing strategy?[edit]

No.

Does it cover the dependencies mentioned above?[edit]

N/A.

Can it be tested on test2wiki?[edit]

Yes, I assume so.

Is it feasible to make it testable on test2wiki?[edit]

It already is.

CodeMirror[edit]

What are the dependencies?[edit]

Does it use any external services?[edit]

Don't think so.

Is there any back-end processing?[edit]

No.

Does it use external binaries?[edit]

No.

Does it read or write files on the filesystem?[edit]

No.

Is there a regression or smoke testing strategy?[edit]

Some Selenium tests.

Does it cover the dependencies mentioned above?[edit]

N/A.

Can it be tested on test2wiki?[edit]

Yes.

Is it feasible to make it testable on test2wiki?[edit]

It already is.

Page Curation[edit]

What are the dependencies?[edit]

Does it use any external services?[edit]

No?

Is there any back-end processing?[edit]

Job queue and DeferredUpdates.

Does it use external binaries?[edit]

No.

Does it read or write files on the filesystem?[edit]

No?

Is there a regression or smoke testing strategy?[edit]

No.

Does it cover the dependencies mentioned above?[edit]

N/A

Can it be tested on test2wiki?[edit]

Yes.

Is it feasible to make it testable on test2wiki?[edit]

It already is.

What features do not need testing on test2wiki?[edit]

  • SVG Translate (hosted on VPS)
  • Wikisource Export (hosted on VPS)
  • Event Metrics (hosted on VPS)

Definitions[edit]

test2wiki
https://test2.wikipedia.org/wiki/Main_Page. An environment hosted on production servers but with test data, so is appropriate for testing. The code it is running is updated every Tuesday.
To find a list of extensions already installed on test2wiki, see https://test2.wikipedia.org/wiki/Special:Version.
Need testing?
Features may not need testing. For example, this might be because:
  • it is not hosted on Production
  • it is mainly a UI feature
  • it is considered low-risk
External services?
  • Inside our ecosystem like database, APIs, Parsoid
  • Outside our ecosystem like third-party APIs
Back-end processing?
Including DeferredUpdates, job queue. See How_to#Find_out_if_my_feature/extension_does_back-end_processing.
External binaries?
See How_to#Find_out_if_my_feature/extension_uses_external_binaries.
Existing regression or smoke testing strategy?
This could include: