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

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: