Upstream projects
MediaWiki developers and users[1] rely on several upstream and/or 3rd party projects for their architecture or processes. At the same time, they develop software projects used by others, which are downstream to them. These links define our location in the free software map, our neighbor communities, and the flows of feedback, patches, and contributors.
Let's identify our upstream projects, our neighbor communities, and the contributors that connect us with them.
Motivation
[edit]This is a first step to improve our relations with other communities, to increase the contributions received, and our influence in the projects that matter to us.
Our mid-term goals include:
- identify the projects where we want to see significant development, to the point of sending patches as well
- identify the communities where Wikimedia should be regularly active and heard
- identify the people in the Wikimedia and upstream communities that know each other and act as bridge
- identify organizations and events we should get in touch and be part of
- get involved in bigger development efforts regularly, become a regular FOSS player
Invented here
[edit]See Maintainers for all components, libraries, and extensions that we maintain and deploy with or around MediaWiki.
For a larger list of software projects that we publish see Wikimedia Open Source.
| Name & URL | Description | Language(s) | Repository | Bug tracker | Main contacts |
|---|---|---|---|---|---|
| translatewiki.net | Where we organise localisation of MediaWiki. | PHP, Puppet | phab:diffusion/GTWN/ | #translatewiki.net in Phabricator, translatewiki:Support | Nikerabbit (founder), Abijeet Patro (co-maintainer), Siebrand (co-maintainer), Raymond (MediaWiki updates responsible) |
| pywikibot.org | Python Wiki Robot Framework to automatize tasks | Python | Diffusion | Phabricator (under "Pywikibot") | xqt |
More stuff (hundreds of projects) by fellow MediaWiki developers and Wikimedians is also listed at:
- https://www.openhub.net/p/mediawiki-webtools
- https://www.openhub.net/p/mediawiki-clients
- https://www.openhub.net/p/mediawiki-scripts
- https://www.openhub.net/p/wikibots
- Others: https://www.openhub.net/orgs/wikimedia/projects
MediaWiki dependencies
[edit]Projects that we use server-side or client-side as part of MediaWiki core, or WMF-deployed extensions.
| Name & URL | Description | Language(s) | Repository | Bug tracker | Main contacts |
|---|---|---|---|---|---|
| GNU diff and diff3 | Powers recent changes, history and undo button (i.e. most editing features). | ||||
| Elasticsearch | Distributed real-time search and analytics engine. | Java | GitHub | GitHub | |
| jQuery | Lots of DOM traversing, and other DOM-related helpers, for JavaScript. | JavaScript | GitHub | GitHub | OpenJS Foundation, Timo Tijhof |
| jQuery UI | Simple widgets for client-side UIs. Deprecated within MediaWiki. | JavaScript | GitHub | bugs.jqueryui.com | OpenJS Foundation, Timo Tijhof |
| Vue.js | Vue is a progressive framework for building user interfaces. | JavaScript | GitHub | GitHub | |
| Unihan Database | For Chinese language conversion | Used as database | |||
| Smart Common Input Method | For Chinese language conversion | Used as database | |||
| libtabe | For Chinese language conversion | Used as database | |||
| ImageMagick | general purpose image scaling | C | No repo ImageMagick.tar.gz | Forum | |
| Lua | Scripting language | C | |||
| ACE | Web based code editor | JavaScript, HTML | GitHub | GitHub | User:TheDJ (has signed contributor license) |
| VIPS | Image scaling of large images (VipsScaler) | GitHub | GitHub | User:Bryan | |
| ECharts | Charts engine used by Extension:Chart | JavaSscript | GitHub | GitHub | |
| libRsvg | PNG renderer for SVG images | C | GNOME git | GNOME Gitlab (Wikimedia tagged issues) | |
| MathJax | Math rendering in HTML/SVG/MathML; used by Math extension | JavaScript | GitHub | GitHub | |
| CodeMirror | a browser based text editor (Used by the CodeMirror extension to provide syntax highlighting in the 2010 wikitext editor.) | JavaScript | GitHub GitHub (for version 5) |
GitHub GitHub (for version 5) |
|
| FFmpeg | Video conversion and scaling | C | ffmpeg | ffmpeg | |
| MWLib | mediawiki parser and converter | Python | GitHub | GitHub | |
| Pygments.org | Syntax highlighting | Python | GitHub | GitHub | |
| Unicode CLDR (Common Locale Data Repository) | All we manage to take: language names, plural rules, language-territory information, ... | [1] | Nemo (CLDR Survey Tool manager) | ||
| CLDRPluralRuleParser | Plural support based on CLDR | JavaScript | GitHub | GitHub | Santhosh Thottingal |
| Apertium | Free software, rule-based machine translation; used by Translate, ContentTranslation and others. | Soureforge | [2] | Francis Tyers, Firespeaker, Unhammer | |
| Ceph | Distributed storage system | C++ | GitHub | Ceph | |
| GlusterFS | Distributed file system | [3] | |||
| Leaflet | Maps on Mobile | JavaScript | [4] | ||
| Lilypond | used by the Score extension | Gitlab.com | |||
| MariaDB | Relational database. | [5] | |||
| memcached | GitHub | [6] | |||
| multilightbox | used by Extension:MultimediaViewer | [7] | |||
| MySQL | Relational database. | [8] | |||
| PHP | Programming language that MediaWiki is written in | [9] | |||
| Rangy | JavaScript range and selection library, used by VisualEditor | [10] | |||
| Swift | Distributed storage system | [11] | |||
| lightncandy | HTML templating (mustache and handlebars) in PHP | PHP | GitHub | GitHub | EBernhardson, Kaldari |
| Composer | Dependency manager for PHP libraries - used for managing MediaWiki libraries and CI | PHP | getcomposer.org | GitHub | Legoktm, Bryan Davis, Reedy |
| Blazegraph | RDF-graph database supporting RDF and SPARQL - used by WDQS | Java | Blazegraph.com | Jira / GitHub | |
| Zotero translators | Used by Citoid to generate citation data from a URL or other identifier | JavaScript | GitHub | GitHub | |
| Doctrine DBAL | Used to generate engine-specific SQL DDL files from a single abstract schema | PHP | GitHub | GitHub | |
| Video.js | Used by TimedMediaHandler as an audio/video player interface | JavaScript | GitHub | GitHub | Brooke Vibber and TheDJ |
Development and operations
[edit]Projects that make up part of our development process to operate the production cluster itself.
Miscellaneous
[edit]Integrated on Wikimedia projects
[edit]Projects that are used in some way (embedding, linking) with Wikimedia projects, but operated by volunteers e.g. in Wikimedia Cloud or Toolforge.
| Name & URL | Description | Language(s) | Repository | Bug tracker | Main contacts |
|---|---|---|---|---|---|
| IIPImage | Viewing and zooming of ultra high-resolution images (linked by default on Wikimedia Commons) | C++ | SourceForge | SourceForge | |
| Tesseract OCR | Automated text recognition (OCR) | C++ | GitHub | GitHub | Stefan Weil |
| (what else?) |
Web browsers
[edit]| Name & URL | Description | Language(s) | Repository | Bug tracker | Main contacts |
|---|---|---|---|---|---|
| Chrome | Browser by Google | chromium.org (Wikimedia issues are specifically tracked) | |||
| Firefox | Browser by Mozilla | mozilla.org | |||
| Opera | Browser by Opera Software | opera.com | |||
| Internet Explorer | Browser by Microsoft | microsoft.com | |||
| Safari | Browser by Apple | webkit.org | |||
| (what else?) |
Notes
[edit]- ↑ For instance, whether volunteers or for work: maintainers and contributors of MediaWiki core and extensions and other developers; Wikimedia projects editors and sysadmins; sysadmins of MediaWiki wikis.