Codesearch

From MediaWiki.org
Jump to navigation Jump to search

MediaWiki code search is a fully free software tool that lets you easily search through all of MediaWiki core, extensions, and skins that are hosted on Gerrit. You can limit your search to specific repositories, or types of repositories too. Regular expressions are supported in both the search string, and when filtering by path.

Try it out: https://codesearch.wmflabs.org/

Implementation[edit]

codesearch uses hound as the search implementation. It indexes the origin/master branch of all specified repositories, and updates them every hour. Each search profile is backed by a different instance of hound. A small Python Flask server acts as the proxy for the web frontend, backed by gunicorn, to the individual hound instances.

Included repositories[edit]

  • MediaWiki core
  • Any extension in Gerrit that is not marked as read only and those included in the MWStake list
  • Any skin in Gerrit that is not marked as read only
  • Milkshake repositories from GitHub
  • OOUI (oojs/ui in Gerrit)
  • translatewiki configuration (from Gerrit)
  • operations/dns and operations/mediawiki-config in Gerrit
  • ArmchairGM (this is currently hidden by default; you can access it through https://codesearch.wmflabs.org/armchairgm/)
  • Pywikibot core (from Gerrit)

Additional repositories can be added upon request. Any submodules will need to be added manually (T188023). Currently repositories such as operations/puppet.git are not included. codesearch's configuration uses <https://www.mediawiki.org/w/api.php?action=query&format=jsonfm&formatversion=2&list=extdistrepos>.

Administration[edit]

It currently runs from the "codesearch" Cloud VPS project, on the codesearch3 instance. Everything is managed using systemd units, hound_proxy for the web proxy, and hound-$backend for each individual hound instance. nagf is helpful to monitor the health of the instance.

Each unit is set to start upon boot, but if it goes down, running sudo MODE=start /srv/codesearch/manage.sh should bring up everything again. It usually takes up to 5 minutes for everything to start, the health check page should be helpful in seeing whether the hound backends are actually down, or just starting up still.

The current project administrators are Addshore, Alangi Derick, Ladsgroup, Legoktm, MaxSem, Andrew Bogott, Rush and Prtksxna.

Source[edit]

  • codesearch, available under the terms of the GPL, v3 or any later version.
  • hound, available under the terms of the MIT license.

Bugs and feature requests[edit]

Please file them in the Phabricator project.