Extension:ExtensionStatus
<translate> This extension is currently not actively maintained!</translate> <translate> Although it may still work, any bug reports or feature requests will more than likely be ignored.</translate> |
ExtensionStatus Release status: unmaintained |
|
---|---|
File:ExtensionScreenshotExtstatus.png | |
Implementation | Special page |
Description | Checks the remote extension repositories for newer versions than installed on the wiki to determine the update status |
Author(s) | Moriel Schottlender (mooeypootalk) |
Latest version | 0.1.0 (2013-05-13) |
MediaWiki | 1.20.x |
PHP | 5.3+ |
Database changes | No |
License | GNU General Public License 2.0 only |
Download | GitHub:
<translate> Note:</translate> README |
Example | Screenshots |
Expand | |
Expand | |
Quarterly downloads | Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin'). |
Public wikis using | Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin'). |
The ExtensionStatus extension checks the remote extension repositories for newer versions than installed on the wiki to determine the update status.
To do so it goes over the list of installed extensions in the MediaWiki installation and checks if there are any later commits (changes to the code) in the remote repository. For the moment, the extension checks changes in front of a Gerrit repository only.
Development
This extension is still under development -- testers are welcome!
There's a lot of potential in producing a system that can help users (both experienced and new) to check if their extensions require update, and even perform regular updates for them. For the moment, this extension is fairly basic, but this page will discuss some possibilities for future development and usage (feel free to contribute ideas in the talk page!)
Current Operation
The current system extends the Special:Version page. It takes over the 'extension credits' section, and inserts a secondary process to test the available commits.
For each extension:
- First, the local extension date is noted.
- If git is available on the machine, the date is extracted from the local repository.
- If git is unavailable or not installed, the system falls back to testing local file modification time.
- The system tries to read the Gerrit repository's "summary" page.
- If such page exists and returns results, the page is read for each commit
- If a commit date is before the date of the local extension files, the operation stops.
- Commits made by the Translation Bot are counted separately, and are skipped for content.
- The commits are then returned as an array and are displayed in the Extensions table.
This operation is still somewhat slow, especially for large systems with many extensions. An alternative is now being researched. However, whatever alternative is used, should allow for same (or similar) functionality regardless of the availability of git in the system.
Screenshot
Future / To Do List
- FASTER FASTER FASTER! Reading remote files per repository is slow. A new approach should be implemented.
- Adding cache functionality
- Changing from gerrit to the wikimedia GitHub mirrored repos
- Redesigning the extension for better view and control
- Allowing for upgrades from the extension page itself
- Allowing the system to test repository outside of Gerrit.
- Reading extension data from WikiApiary
Resources and Similar Projects
- Fetchrepo - Python script to automatically fetch repo files.
Installation
- <translate> <tvar name=1>Download</tvar> and place the file(s) in a directory called <tvar name=name>
ExtensionStatus
</tvar> in your <tvar name=ext>extensions/
</tvar> folder.</translate> - <translate> Add the following code at the bottom of your <tvar name=1>LocalSettings.php </tvar> file:</translate>
require_once "$IP/extensions/ExtensionStatus/ExtensionStatus.php";
- File:OOjs UI icon check-constructive.svg <translate> Done</translate> – <translate> Navigate to <tvar name=special>Special:Version</tvar> on your wiki to verify that the extension is successfully installed.</translate>
- Pages with script errors
- Pages with broken file links
- Unmaintained extensions
- Special page extensions
- Extensions without a compatibility policy
- Extensions with manual MediaWiki version
- GPL licensed extensions
- Extensions in GitHub version control
- Extensions which add rights
- BeforePageDisplay extensions
- All extensions
- Extensions not in ExtensionJson
- Extensions not using extension registration