User:Legoktm/versions

We have long wanted a special page of some sort in MW that shows whether your wiki is out of date, and what version you should update it to. To do this, we need an API that provides that information. And that API needs a data source. We could stick this all in configuration, but think it would be easier to manage on structured wiki pages.

We have two types of things we need to represent, an individual "release" (e.g. 1.27.1), and a "family" of releases (e.g. 1.27.x).

For each individual release, we need:

  • date
  • whether it contains security fixes, and if possible, their CVE IDs
  • download link (+gpg sig)
  • link to release notes?

For each family, we need:

  • LTS or not
  • end of support date (to determine whether it's still supported)
  • min PHP version? (optional)

These can be normal pages like "Versions/1.27" and "Versions/1.27/1.27.1" or something. These pages would be unprotected, but any changes would not affect the API output until "approved" (think like how in Translate a translationadmin needs to mark the new changes for translation) by someone with the "mwreleasemanager" userright. We would like to keep editing open, but don't want just anyone to be able to publish or update information about releases.

This data will be exposed via an API. It would take your current version string, and return the version you should upgrade to for the latest stable, or if you're following LTS, what the latest LTS release is.

We can also have a Lua library to replace Module:Version or a parser function.

This extension would be deployed on mediawiki.org.