Page MenuHomePhabricator

Create a Toolforge tool for syncing templates and Lua modules between wikis
Closed, ResolvedPublic

Description

T122086: Use bot to share templates and modules between wikis proposes a bot to synchronize template and module pages between wikis, as a poor man's version of global templates / modules. As dicussed there, using a bot for this task has some drawback in terms of permission management (technical templates/modules often need to be protected), and an OAuth-based tool that could assume the local template/module maintainer's identity for updating the page is an alternative approach worth considering.

The tool would let users subscribe to changes to pages (or sets of pages) in the Template and / or Module namespace of some source wiki, and replicate those changes on some target wiki.

Event Timeline

In 2019 based on discussion with @Yurik and @Iniquity (see https://www.mediawiki.org/wiki/Topic:V0hrxe3xa924u9xm) my intern created proof of concept: https://dspull.toolforge.org/
Main scenario is:

  1. Login via OAuth
  2. Specify which wiki you are interesting in
  3. Select template/module you want to update
  4. See diff between local and mediawiki.org version
  5. Update local version on behalf of your account

Since this is POC do not expect that everything will work as intended (or all cases are thoroughly thought)
Sources are very small and available at https://github.com/ghuron/dspull
Would be happy to co-develop this with someone who see value here

That's pretty cool! Do you have a roadmap for it?

@Tgr I would not call it a roadmap, it was too long ago, but what exactly needs to be done :)

  1. OAuth support and publish edits
  2. The project selection function
  3. Display on the project page which modules need to be updated (with the date of the last synchronization)
  4. Display on the module page what dependencies should be updated (with the date of the last synchronization)
  5. Display on the diff page of the list of changes taken from the history page
  6. Display on the main page of all available modules with rating, number of uses
  7. Search for modules
  8. The ability to resolve conflicts through a tool
  9. Gadget / script support

It is also necessary to transfer everything to webpack. I could miss something, @Ghuron will correct me :)

Yurik claimed this task.

Technically this is done. See https://dibabel.toolforge.org/

The will be more work on it, but its a start :)