CINXE.COM
Upstream projects - MediaWiki
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-disabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Upstream projects - MediaWiki</title> <script>(function(){var className="client-js vector-feature-language-in-header-disabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-disabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )mediawikiwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""], "wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"642dfcdf-6fcb-46c2-a238-f295c3510b12","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Upstream_projects","wgTitle":"Upstream projects","wgCurRevisionId":6740382,"wgRevisionId":6740382,"wgArticleId":202681,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Pages containing potentially dated statements","MediaWiki development","Libraries"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Upstream_projects","wgRelevantArticleId":202681,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"mediawiki","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true, "wgMediaViewerEnabledByDefault":true,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":30000,"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgDiscussionToolsFeaturesEnabled":{"replytool":true,"newtopictool":true,"sourcemodetoolbar":true,"topicsubscription":false,"autotopicsub":false,"visualenhancements":false,"visualenhancements_reply":false,"visualenhancements_pageframe":false},"wgDiscussionToolsFallbackEditMode":"visual","wgULSPosition":"personal","wgULSisCompactLinksEnabled":true,"wgVector2022LanguageInHeader":false,"wgULSisLanguageSelectorEmpty":false,"wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"]};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready", "user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.discussionTools.init.styles":"ready","oojs-ui-core.styles":"ready","oojs-ui.styles.indicators":"ready","mediawiki.widgets.styles":"ready","oojs-ui-core.icons":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.tablesorter.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.pt":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","site","mediawiki.page.ready","jquery.tablesorter","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.urlShortener.toolbar","ext.centralauth.centralautologin","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.discussionTools.init","ext.eventLogging", "ext.wikimediaEvents","ext.navigationTiming","ext.uls.compactlinks","ext.uls.interface","ext.checkUser.clientHints"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.discussionTools.init.styles%7Cext.uls.pt%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cjquery.tablesorter.styles%7Cmediawiki.widgets.styles%7Coojs-ui-core.icons%2Cstyles%7Coojs-ui.styles.indicators%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:site_name" content="MediaWiki"> <meta property="og:title" content="Upstream projects - MediaWiki"> <meta property="og:type" content="website"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//m.mediawiki.org/wiki/Upstream_projects"> <link rel="alternate" type="application/x-wiki" title="Edit" href="/w/index.php?title=Upstream_projects&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/mediawiki.png"> <link rel="icon" href="/static/favicon/mediawiki.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="MediaWiki (en)"> <link rel="EditURI" type="application/rsd+xml" href="//www.mediawiki.org/w/api.php?action=rsd"> <link rel="canonical" href="https://www.mediawiki.org/wiki/Upstream_projects"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"> <link rel="alternate" type="application/atom+xml" title="MediaWiki Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="ext-discussiontools-replytool-enabled ext-discussiontools-newtopictool-enabled ext-discussiontools-sourcemodetoolbar-enabled skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Upstream_projects rootpage-Upstream_projects skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/MediaWiki" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-mw-download" class="mw-list-item"><a href="/wiki/Download"><span>Get MediaWiki</span></a></li><li id="n-mw-extensions" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Category:Extensions"><span>Get extensions</span></a></li><li id="n-blog-text" class="mw-list-item"><a href="https://techblog.wikimedia.org/"><span>Tech blog</span></a></li><li id="n-mw-contribute" class="mw-list-item"><a href="/wiki/Special:MyLanguage/How_to_contribute"><span>Contribute</span></a></li> </ul> </div> </div> <div id="p-support" class="vector-menu mw-portlet mw-portlet-support" > <div class="vector-menu-heading"> Support </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Help:Contents" title="The place to find out"><span>User help</span></a></li><li id="n-mw-faq" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Manual:FAQ"><span>FAQ</span></a></li><li id="n-mw-manual" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Manual:Contents"><span>Technical manual</span></a></li><li id="n-mw-supportdesk" class="mw-list-item"><a href="/wiki/Project:Support_desk"><span>Support desk</span></a></li><li id="n-mw-communication" class="mw-list-item"><a href="/wiki/Special:MyLanguage/Communication"><span>Communication</span></a></li> </ul> </div> </div> <div id="p-development" class="vector-menu mw-portlet mw-portlet-development" > <div class="vector-menu-heading"> Development </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mw-developerportal" class="mw-list-item"><a href="https://developer.wikimedia.org/"><span>Developer portal</span></a></li><li id="n-svn-statistics" class="mw-list-item"><a href="/wiki/Development_statistics"><span>Code statistics</span></a></li> </ul> </div> </div> <div id="p-mediawiki.org" class="vector-menu mw-portlet mw-portlet-mediawiki_org" > <div class="vector-menu-heading"> mediawiki.org </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-portal" class="mw-list-item"><a href="/wiki/Project:Help" title="About the project, what you can do, where to find things"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-mw-translate" class="mw-list-item"><a href="/wiki/Special:LanguageStats"><span>Translate content</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Load a random page [x]" accesskey="x"><span>Random page</span></a></li><li id="n-mw-discussion" class="mw-list-item"><a href="/wiki/Project:Village_Pump"><span>Village pump</span></a></li><li id="n-Sandboxlink-portlet-label" class="mw-list-item"><a href="/wiki/Project:Sandbox"><span>Sandbox</span></a></li> </ul> </div> </div> <div id="p-lang" class="vector-menu mw-portlet mw-portlet-lang" > <div class="vector-menu-heading"> In other languages </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-add wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:NewItem?site=mediawikiwiki&page=Upstream+projects" title="Add interlanguage links" class="wbc-editpage">Add links</a></span></div> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/MediaWiki" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/mediawikiwiki.svg" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="MediaWiki" src="/static/images/mobile/copyright/mediawikiwiki-wordmark.svg" style="width: 7.5em; height: 1.125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search MediaWiki [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search MediaWiki" aria-label="Search MediaWiki" autocapitalize="sentences" title="Search MediaWiki [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-uls" class="mw-list-item active user-links-collapsible-item"><a data-mw="interface" href="#" class="uls-trigger cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>English</span></a> </li> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?utm_source=donate&utm_medium=sidebar&utm_campaign=spontaneous&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Upstream+projects" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Upstream+projects" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="More options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?utm_source=donate&utm_medium=sidebar&utm_campaign=spontaneous&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Upstream+projects" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Upstream+projects" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">Beginning</div> </a> </li> <li id="toc-Motivation" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Motivation"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Motivation</span> </div> </a> <ul id="toc-Motivation-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Invented_here" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Invented_here"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Invented here</span> </div> </a> <ul id="toc-Invented_here-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-MediaWiki_dependencies" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#MediaWiki_dependencies"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>MediaWiki dependencies</span> </div> </a> <ul id="toc-MediaWiki_dependencies-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Development_and_operations" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Development_and_operations"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Development and operations</span> </div> </a> <ul id="toc-Development_and_operations-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Miscellaneous" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Miscellaneous"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Miscellaneous</span> </div> </a> <button aria-controls="toc-Miscellaneous-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Miscellaneous subsection</span> </button> <ul id="toc-Miscellaneous-sublist" class="vector-toc-list"> <li id="toc-Integrated_on_Wikimedia_projects" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Integrated_on_Wikimedia_projects"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>Integrated on Wikimedia projects</span> </div> </a> <ul id="toc-Integrated_on_Wikimedia_projects-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Editing_tools" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Editing_tools"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.2</span> <span>Editing tools</span> </div> </a> <ul id="toc-Editing_tools-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Web_browsers" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Web_browsers"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.3</span> <span>Web browsers</span> </div> </a> <ul id="toc-Web_browsers-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Notes" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Notes"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Notes</span> </div> </a> <ul id="toc-Notes-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Upstream projects</span></h1> <div class="mw-indicators"> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Upstream_projects" title="View the content page [c]" accesskey="c"><span>Page</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Upstream_projects" rel="discussion" title="Discussion about the content page [t]" accesskey="t"><span>Discussion</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Upstream_projects"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Upstream_projects&action=edit" title="Edit the source code of this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Upstream_projects&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Upstream_projects"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Upstream_projects&action=edit" title="Edit the source code of this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Upstream_projects&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Upstream_projects" title="A list of all wiki pages that link here [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Upstream_projects" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//commons.wikimedia.org/wiki/Special:UploadWizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Upstream_projects&oldid=6740382" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Upstream_projects&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Upstream_projects&id=6740382&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fwww.mediawiki.org%2Fwiki%2FUpstream_projects"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fwww.mediawiki.org%2Fwiki%2FUpstream_projects"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=Special:Book&bookcmd=book_creator&referer=Upstream+projects"><span>Create a book</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Upstream_projects&action=show-download-screen"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Upstream_projects&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects emptyPortlet" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div id="siteSub" class="noprint">From mediawiki.org</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><p>MediaWiki developers and users<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> rely on several <a rel="nofollow" class="external text" href="https://blog.verbum.org/2012/04/13/definition-of-upstream/">upstream</a> 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. </p><p>Let's identify our upstream projects, our neighbor communities, and the contributors that connect us with them. </p> <meta property="mw:PageProp/toc"/> <div class="mw-heading mw-heading2 ext-discussiontools-init-section"><h2 id="Motivation" data-mw-thread-id="h-Motivation"><span data-mw-comment-start="" id="h-Motivation"></span>Motivation<span data-mw-comment-end="h-Motivation"></span></h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Upstream_projects&action=edit&section=1" title="Edit section: Motivation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span><!--__DTELLIPSISBUTTON__{"threadItem":{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Motivation","replies":[]}}--></div> <p>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. </p><p>Our mid-term goals include: </p> <ul><li>identify the projects where we want to see significant development, to the point of sending patches as well</li> <li>identify the communities where Wikimedia should be regularly active and heard</li> <li>identify the people in the Wikimedia and upstream communities that know each other and act as bridge</li> <li>identify organizations and events we should get in touch and be part of</li> <li>get involved in bigger development efforts regularly, become a regular FOSS player</li></ul> <div class="mw-heading mw-heading2 ext-discussiontools-init-section"><h2 id="Invented_here" data-mw-thread-id="h-Invented_here"><span data-mw-comment-start="" id="h-Invented_here"></span>Invented here<span data-mw-comment-end="h-Invented_here"></span></h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Upstream_projects&action=edit&section=2" title="Edit section: Invented here"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span><!--__DTELLIPSISBUTTON__{"threadItem":{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Invented_here","replies":[]}}--></div> <p>See <a href="/wiki/Developers/Maintainers" title="Developers/Maintainers">Maintainers</a> for all components, libraries, and extensions that we maintain and deploy with or around MediaWiki. </p><p>For a larger list of software projects that we publish see <a class="external text" href="https://doc.wikimedia.org/">Wikimedia Open Source</a>. </p> <table class="wikitable sortable" align="top" width="100%"> <caption>Other projects from the MediaWiki engineering community </caption> <tbody><tr> <th>Name & URL</th> <th style="min-width:300px;">Description</th> <th>Language(s)</th> <th>Repository</th> <th>Bug tracker</th> <th>Main contacts </th></tr> <tr> <td><a href="/wiki/Translatewiki.net" title="Translatewiki.net">translatewiki.net</a> </td> <td>Where we organise <a href="/wiki/Localisation" title="Localisation">localisation</a> of MediaWiki. </td> <td>PHP, Puppet </td> <td><a href="https://phabricator.wikimedia.org/diffusion/GTWN/" class="extiw" title="phab:diffusion/GTWN/">phab:diffusion/GTWN/</a> </td> <td>#translatewiki.net in Phabricator, <a href="https://translatewiki.net/wiki/Support" class="extiw" title="translatewiki:Support">translatewiki:Support</a> </td> <td><a href="/wiki/User:Nikerabbit" title="User:Nikerabbit">Nikerabbit</a> (founder), <a href="/wiki/User:APatro_(WMF)" title="User:APatro (WMF)">Abijeet Patro</a> (co-maintainer), <a href="/wiki/User:Siebrand" title="User:Siebrand">Siebrand</a> (co-maintainer), <a href="/wiki/User:Raymond" title="User:Raymond">Raymond</a> (MediaWiki updates responsible) </td></tr> <tr> <td><a href="/wiki/Manual:Pywikibot" title="Manual:Pywikibot">Pywikibot</a> </td> <td>Python Wiki Robot Framework to automatize tasks </td> <td><a href="/wiki/Python" title="Python">Python</a> </td> <td><a href="https://phabricator.wikimedia.org/diffusion/PWBC/" class="extiw" title="phab:diffusion/PWBC/">Diffusion</a> </td> <td><a href="https://phabricator.wikimedia.org/project/query/active/" class="extiw" title="phab:project/query/active/">Phabricator</a> (under "Pywikibot") </td> <td><a href="/wiki/User:Xqt" title="User:Xqt">xqt</a> </td></tr></tbody></table> <p>More stuff (hundreds of projects) by fellow MediaWiki developers and Wikimedians is also listed at: </p> <ul><li><a rel="nofollow" class="external free" href="https://www.openhub.net/p/mediawiki-webtools">https://www.openhub.net/p/mediawiki-webtools</a></li> <li><a rel="nofollow" class="external free" href="https://www.openhub.net/p/mediawiki-clients">https://www.openhub.net/p/mediawiki-clients</a></li> <li><a rel="nofollow" class="external free" href="https://www.openhub.net/p/mediawiki-scripts">https://www.openhub.net/p/mediawiki-scripts</a></li> <li><a rel="nofollow" class="external free" href="https://www.openhub.net/p/wikibots">https://www.openhub.net/p/wikibots</a></li> <li>Others: <a rel="nofollow" class="external free" href="https://www.openhub.net/orgs/wikimedia/projects">https://www.openhub.net/orgs/wikimedia/projects</a></li></ul> <div class="mw-heading mw-heading2 ext-discussiontools-init-section"><h2 id="MediaWiki_dependencies" data-mw-thread-id="h-MediaWiki_dependencies"><span data-mw-comment-start="" id="h-MediaWiki_dependencies"></span>MediaWiki dependencies<span data-mw-comment-end="h-MediaWiki_dependencies"></span></h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Upstream_projects&action=edit&section=3" title="Edit section: MediaWiki dependencies"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span><!--__DTELLIPSISBUTTON__{"threadItem":{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-MediaWiki_dependencies","replies":[]}}--></div> <p>Projects that we use server-side or client-side as part of MediaWiki core, or WMF-deployed extensions. See also <a href="https://wikitech.wikimedia.org/wiki/Key_Wikimedia_software_projects" class="extiw" title="wikitech:Key Wikimedia software projects">key Wikimedia projects</a>. </p> <table class="wikitable sortable" align="top"> <caption>Upstream components </caption> <tbody><tr> <th>Name & URL</th> <th style="min-width:300px;">Description</th> <th>Language(s)</th> <th>Repository</th> <th>Bug tracker</th> <th>Main contacts </th></tr> <tr> <td>GNU <a href="/wiki/Manual:$wgDiff" title="Manual:$wgDiff">diff</a> and <a href="/wiki/Manual:$wgDiff3" title="Manual:$wgDiff3">diff3</a> </td> <td>Powers recent changes, history and undo button (i.e. most editing features). </td> <td> </td> <td> </td> <td> </td> <td> </td></tr> <tr> <td><a href="/wiki/Elasticsearch" title="Elasticsearch">Elasticsearch</a> </td> <td>Distributed real-time search and analytics engine. </td> <td>Java </td> <td><a rel="nofollow" class="external text" href="https://github.com/elasticsearch/elasticsearch/">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/elasticsearch/elasticsearch/issues">GitHub</a> </td> <td> </td></tr> <tr> <td><a href="/wiki/JQuery" title="JQuery">jQuery</a> </td> <td>Lots of DOM traversing, and other DOM-related helpers, for <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>. </td> <td>JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/jquery/jquery">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/jquery/jquery/issues">GitHub</a> </td> <td>OpenJS Foundation, <a href="/wiki/User:Krinkle" title="User:Krinkle">Timo Tijhof</a> </td></tr> <tr> <td><a href="/wiki/ResourceLoader/Core_modules#jquery.ui" title="ResourceLoader/Core modules">jQuery UI</a> </td> <td>Simple widgets for client-side UIs. Deprecated within MediaWiki. </td> <td>JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/jquery/jquery-ui">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://bugs.jqueryui.com/">bugs.jqueryui.com</a> </td> <td>OpenJS Foundation, <a href="/wiki/User:Krinkle" title="User:Krinkle">Timo Tijhof</a> </td></tr> <tr> <td><a href="/wiki/Vue.js" title="Vue.js">Vue.js</a> </td> <td>Vue is a progressive framework for building user interfaces. </td> <td>JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/vuejs/vue">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/vuejs/vue/issues">GitHub</a> </td> <td> </td></tr> <tr> <td><a href="https://en.wikipedia.org/wiki/Unihan_Database" class="extiw" title="en:Unihan Database">Unihan Database</a> </td> <td>For Chinese language conversion </td> <td>Used as database </td> <td> </td> <td> </td> <td> </td></tr> <tr> <td><a href="https://en.wikipedia.org/wiki/Smart_Common_Input_Method" class="extiw" title="en:Smart Common Input Method">Smart Common Input Method</a> </td> <td>For Chinese language conversion </td> <td>Used as database </td> <td> </td> <td> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://sourceforge.net/projects/libtabe/">libtabe</a> </td> <td>For Chinese language conversion </td> <td>Used as database </td> <td> </td> <td> </td> <td> </td></tr> <tr> <td><a href="https://en.wikipedia.org/wiki/ImageMagick" class="extiw" title="en:ImageMagick">ImageMagick</a> </td> <td>general purpose image scaling </td> <td>C </td> <td>No repo <a rel="nofollow" class="external text" href="https://www.imagemagick.org/download/ImageMagick.tar.gz">ImageMagick.tar.gz</a> </td> <td><a rel="nofollow" class="external text" href="https://www.imagemagick.org/discourse-server/viewforum.php?f=3">Forum</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.lua.org">Lua</a> </td> <td>Scripting language </td> <td>C </td> <td> </td> <td> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://ace.c9.io">ACE</a> </td> <td>Web based code editor </td> <td>JavaScript, HTML </td> <td><a rel="nofollow" class="external text" href="https://github.com/ajaxorg/ace/">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/ajaxorg/ace/issues">GitHub</a> </td> <td><a href="/wiki/User:TheDJ" title="User:TheDJ">User:TheDJ</a> (has signed contributor license) </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://jcupitt.github.io/libvips/">VIPS</a> </td> <td>Image scaling of large images (<a href="/wiki/Extension:VipsScaler" title="Extension:VipsScaler">VipsScaler</a>) </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://github.com/jcupitt/libvips">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/jcupitt/libvips/issues">GitHub</a> </td> <td><a href="/wiki/User:Bryan" title="User:Bryan">User:Bryan</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://wiki.gnome.org/Projects/LibRsvg">libRsvg</a> </td> <td>PNG renderer for SVG images </td> <td>C </td> <td><a rel="nofollow" class="external text" href="https://gitlab.gnome.org/GNOME/librsvg/">GNOME git</a> </td> <td><a rel="nofollow" class="external text" href="https://gitlab.gnome.org/GNOME/librsvg/issues/">GNOME Gitlab</a> (<a rel="nofollow" class="external text" href="https://gitlab.gnome.org/GNOME/librsvg/-/issues?label_name%5B%5D=Wikimedia">Wikimedia tagged issues</a>) </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.mathjax.org/">MathJax</a> </td> <td>Math rendering in HTML/SVG/MathML; used by <a href="/wiki/Extension:Math" title="Extension:Math">Math extension</a> </td> <td>JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/mathjax/MathJax">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/mathjax/MathJax/issues">GitHub</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://codemirror.net">CodeMirror</a> </td> <td>a browser based text editor (Used by the <a href="/wiki/Extension:CodeMirror" title="Extension:CodeMirror">CodeMirror extension</a> to provide syntax highlighting in the <a href="/wiki/Extension:WikiEditor" title="Extension:WikiEditor">2010 wikitext editor</a>.) </td> <td>JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/codemirror/codemirror">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/codemirror/codemirror/issues">GitHub</a>; <a rel="nofollow" class="external text" href="https://github.com/codemirror/codemirror.next/issues">GitHub (for version 6)</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://ffmpeg.org/">FFmpeg</a> </td> <td>Video conversion and scaling </td> <td>C </td> <td><a rel="nofollow" class="external text" href="git://source.ffmpeg.org/ffmpeg.git">ffmpeg</a> </td> <td><a rel="nofollow" class="external text" href="https://trac.ffmpeg.org/">ffmpeg</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://pypi.python.org/pypi/mwlib/">MWLib</a> </td> <td>mediawiki parser and converter </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://github.com/pediapress">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/pediapress">GitHub</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="http://pygments.org/">Pygments.org</a> </td> <td>Syntax highlighting </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://bitbucket.org/birkenfeld/pygments-main">Bitbucket</a> </td> <td><a rel="nofollow" class="external text" href="https://bitbucket.org/birkenfeld/pygments-main/issues/">Bitbucket</a> </td> <td> </td></tr> <tr> <td>Unicode <a href="https://translatewiki.net/wiki/CLDR" class="extiw" title="translatewiki:CLDR">CLDR</a> (<a href="https://en.wikipedia.org/wiki/Common_Locale_Data_Repository" class="extiw" title="en:Common Locale Data Repository">Common Locale Data Repository</a>) </td> <td>All we manage to take: language names, plural rules, <a href="/wiki/Universal_Language_Selector/FAQ#How_does_Universal_Language_Selector_determine_which_languages_I_may_understand" title="Universal Language Selector/FAQ">language-territory</a> information, ... </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://unicode.org/cldr/trac/">[1]</a> </td> <td><a href="/wiki/User:Nemo_bis" title="User:Nemo bis">Nemo</a> (CLDR Survey Tool manager) </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/santhoshtr/CLDRPluralRuleParser">CLDRPluralRuleParser</a> </td> <td>Plural support based on CLDR </td> <td>JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/santhoshtr/CLDRPluralRuleParser">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/santhoshtr/CLDRPluralRuleParser">GitHub</a> </td> <td><a href="/wiki/User:Santhosh.thottingal" title="User:Santhosh.thottingal">Santhosh Thottingal</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="http://wiki.apertium.org/">Apertium</a> </td> <td>Free software, rule-based <a href="https://meta.wikimedia.org/wiki/Machine_translation" class="extiw" title="m:Machine translation">machine translation</a>; used by <a href="/wiki/Extension:Translate" title="Extension:Translate">Translate</a>, <a href="/wiki/Extension:ContentTranslation" title="Extension:ContentTranslation">ContentTranslation</a> and others. </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://apertium.svn.sourceforge.net/viewvc/apertium/">Soureforge</a> </td> <td><a rel="nofollow" class="external autonumber" href="https://sourceforge.net/p/apertium/tickets/">[2]</a> </td> <td><a href="/wiki/User:Francis_Tyers" title="User:Francis Tyers">Francis Tyers</a>, <a href="https://en.wikipedia.org/wiki/en:User:Firespeaker" class="extiw" title="w:en:User:Firespeaker">Firespeaker</a>, <a href="https://en.wikipedia.org/wiki/nn:Brukar:Unhammer" class="extiw" title="w:nn:Brukar:Unhammer">Unhammer</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://ceph.com/ceph-storage/">Ceph</a> </td> <td>Distributed storage system </td> <td>C++ </td> <td><a rel="nofollow" class="external text" href="https://github.com/ceph">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://tracker.ceph.com/projects/ceph/issues">Ceph</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.gluster.org/">GlusterFS</a> </td> <td>Distributed file system </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://bugzilla.redhat.com/enter_bug.cgi?product=GlusterFS">[3]</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="http://leafletjs.com/">Leaflet</a> </td> <td>Maps on Mobile </td> <td>JavaScript </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://github.com/CloudMade/Leaflet/issues">[4]</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="http://lilypond.org/">Lilypond</a> </td> <td>used by the Score extension </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://gitlab.com/lilypond/lilypond/-/issues">Gitlab.com</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://mariadb.org/">MariaDB</a> </td> <td>Relational database. </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://mariadb.atlassian.net/browse/">[5]</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://memcached.org/">memcached</a> </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://github.com/memcached">GitHub</a> </td> <td><a rel="nofollow" class="external autonumber" href="https://github.com/memcached/memcached/issues">[6]</a> </td> <td> </td></tr> <tr> <td>multilightbox </td> <td>used by <a href="/wiki/Extension:MultimediaViewer" title="Extension:MultimediaViewer">Extension:MultimediaViewer</a> </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://gitorious.org/multilightbox">[7]</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.mysql.com/">MySQL</a> </td> <td>Relational database. </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://bugs.mysql.com/">[8]</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.php.net/">PHP</a> </td> <td>Programming language that MediaWiki is written in </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://bugs.php.net/">[9]</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/timdown/rangy">Rangy</a> </td> <td>JavaScript range and selection library, used by VisualEditor </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://github.com/timdown/rangy/issues/">[10]</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://docs.openstack.org/developer/swift/">Swift</a> </td> <td>Distributed storage system </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://bugs.launchpad.net/swift">[11]</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/zordius/lightncandy">lightncandy</a> </td> <td>HTML templating (mustache and handlebars) in PHP </td> <td>PHP </td> <td><a rel="nofollow" class="external text" href="https://github.com/zordius/lightncandy">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/zordius/lightncandy/issues">GitHub</a> </td> <td>EBernhardson, Kaldari </td></tr> <tr> <td><a href="/wiki/Composer" title="Composer">Composer</a> </td> <td>Dependency manager for PHP libraries - used for managing MediaWiki libraries and CI </td> <td>PHP </td> <td><a rel="nofollow" class="external text" href="https://getcomposer.org">getcomposer.org</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/composer/composer/issues">GitHub</a> </td> <td>Legoktm, Bryan Davis, Reedy </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/blazegraph/database">Blazegraph</a> </td> <td>RDF-graph database supporting RDF and SPARQL - used by <a class="external text" href="https://query.wikidata.org/">WDQS</a> </td> <td>Java </td> <td><a rel="nofollow" class="external text" href="https://www.blazegraph.com/">Blazegraph.com</a> </td> <td><a rel="nofollow" class="external text" href="https://jira.blazegraph.com/projects/BLZG">Jira</a> / <a rel="nofollow" class="external text" href="https://github.com/blazegraph/database/issues/">GitHub</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/zotero/translators">Zotero translators</a> </td> <td>Used by <a href="/wiki/Citoid" title="Citoid">Citoid</a> to generate citation data from a URL or other identifier </td> <td>JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/zotero/translators">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/zotero/translators/issues">GitHub</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://videojs.com">Video.js</a> </td> <td>Used by <a href="/wiki/Extension:TimedMediaHandler" title="Extension:TimedMediaHandler">TimedMediaHandler</a> as an audio/video player interface </td> <td>JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/videojs/video.js">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/videojs/video.js/issues">GitHub</a> </td> <td><a href="/wiki/User:Brooke_Vibber" title="User:Brooke Vibber">Brooke Vibber</a> and <a href="/wiki/User:TheDJ" title="User:TheDJ">TheDJ</a> </td></tr></tbody></table> <div class="mw-heading mw-heading2 ext-discussiontools-init-section"><h2 id="Development_and_operations" data-mw-thread-id="h-Development_and_operations"><span data-mw-comment-start="" id="h-Development_and_operations"></span>Development and operations<span data-mw-comment-end="h-Development_and_operations"></span></h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Upstream_projects&action=edit&section=4" title="Edit section: Development and operations"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span><!--__DTELLIPSISBUTTON__{"threadItem":{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Development_and_operations","replies":[]}}--></div> <p>Projects that make up part of our development process to operate the production cluster itself. They are installed on Wikimedia servers and are used in the release process of <a href="https://wikitech.wikimedia.org/wiki/Key_Wikimedia_software_projects" class="extiw" title="wikitech:Key Wikimedia software projects">key Wikimedia projects</a>. </p> <table class="wikitable sortable" align="top"> <caption>Upstream tools </caption> <tbody><tr> <th>Name & URL</th> <th style="min-width:300px;">Description</th> <th>Language(s)</th> <th>Repository</th> <th>Bug tracker</th> <th>Main contacts </th></tr> <tr> <td><a href="/wiki/Jenkins" class="mw-redirect" title="Jenkins">Jenkins</a> </td> <td>Continuous integration </td> <td>Java </td> <td><a rel="nofollow" class="external text" href="https://github.com/jenkinsci/jenkins/">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://issues.jenkins-ci.org">Jira</a> </td> <td>(CD Foundation), <a href="/wiki/User:Hashar" title="User:Hashar">Hashar</a>, <a href="/wiki/User:MarkTraceur" title="User:MarkTraceur">MarkTraceur</a> </td></tr> <tr> <td><a href="/wiki/Continuous_integration/Jenkins_job_builder" title="Continuous integration/Jenkins job builder">Jenkins Job Builder</a> </td> <td>Job creation system </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://git.openstack.org/cgit/openstack-infra/jenkins-job-builder/">Git</a> </td> <td><a rel="nofollow" class="external text" href="https://storyboard.openstack.org/#!/project/723">Openstack Storyboard</a> </td> <td>(<a rel="nofollow" class="external text" href="https://docs.openstack.org/infra/">OpenStack</a>), <a href="/wiki/User:Hashar" title="User:Hashar">Hashar</a>, <a href="/wiki/User:MarkTraceur" title="User:MarkTraceur">MarkTraceur</a> </td></tr> <tr> <td><a href="/wiki/Continuous_integration/Zuul" title="Continuous integration/Zuul">Zuul</a> </td> <td>Gerrit/Jenkins bridge trigger </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://git.openstack.org/cgit/openstack-infra/zuul">Git</a> </td> <td><a rel="nofollow" class="external text" href="https://storyboard.openstack.org/#!/project/zuul/zuul">Openstack Storyboard</a> </td> <td>(<a rel="nofollow" class="external text" href="https://docs.openstack.org/infra/">OpenStack</a>), <a href="/wiki/User:Hashar" title="User:Hashar">Hashar</a>, <a href="/wiki/User:MarkTraceur" title="User:MarkTraceur">MarkTraceur</a> </td></tr> <tr> <td><a href="/wiki/Gerrit" title="Gerrit">Gerrit</a> </td> <td>Code review tool </td> <td>Java </td> <td><a rel="nofollow" class="external text" href="https://gerrit.googlesource.com/gerrit/">Gerrit</a> </td> <td><a rel="nofollow" class="external text" href="https://bugs.chromium.org/p/gerrit/issues/list">Monorail</a> </td> <td>(Google), <a href="/wiki/User:QChris" class="mw-redirect" title="User:QChris">QChris</a> </td></tr> <tr> <td><a href="/wiki/Etherpad_Lite" title="Etherpad Lite">Etherpad Lite</a> </td> <td>Real-time collaborative document editing </td> <td>JavaScript (Node.js) </td> <td><a rel="nofollow" class="external text" href="https://github.com/ether/etherpad-lite">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/ether/etherpad-lite/issues">GitHub</a> </td> <td><a href="/wiki/User:MarkTraceur" title="User:MarkTraceur">MarkTraceur</a>, <a href="/wiki/User:Mutante" title="User:Mutante">Mutante</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://phpunit.de/">PHPUnit</a> </td> <td>Unit testing framework for PHP </td> <td>PHP </td> <td><a rel="nofollow" class="external text" href="https://github.com/sebastianbergmann/phpunit">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/sebastianbergmann/phpunit/issues">GitHub</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://nodejs.org/">Node.js</a> </td> <td>Programming language, e.g. used by ESLint, and Karma. </td> <td>C++, JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/nodejs/node">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/nodejs/node/issues">GitHub</a> </td> <td>OpenJS Foundation, <a href="/wiki/User:Krinkle" title="User:Krinkle">Timo Tijhof</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://qunitjs.com">QUnit</a> </td> <td>Unit testing framework for JavaScript. </td> <td>JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/qunit/qunit">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/qunitjs/qunit/issues">GitHub</a> </td> <td>OpenJS Foundation, <a href="/wiki/User:Krinkle" title="User:Krinkle">Timo Tijhof</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.doxygen.nl/">Doxygen</a> </td> <td>Documentation generation </td> <td>C++, PHP </td> <td><a rel="nofollow" class="external text" href="https://github.com/doxygen/doxygen">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/doxygen/doxygen/issues">GitHub</a> </td> <td><a href="/wiki/User:Krinkle" title="User:Krinkle">Timo Tijhof</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://karma-runner.github.io/">Karma</a> </td> <td>Automation for running unit tests in web browsers and capturing their results. </td> <td>JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/karma-runner/karma">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/karma-runner/karma/issues">GitHub</a> </td> <td>(Google), <a href="/wiki/User:Krinkle" title="User:Krinkle">Timo Tijhof</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://gruntjs.com">Grunt</a> </td> <td>Task runner for build and test scripts. </td> <td>JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/gruntjs/grunt">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/gruntjs/grunt/issues">GitHub</a> </td> <td>(jQuery Foundation) </td></tr> <tr> <td><a rel="nofollow" class="external text" href="http://www.vagrantbox.es">Vagrant</a> </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://github.com/hashicorp/vagrant">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/hashicorp/vagrant/issues">GitHub</a> </td> <td>(HashiCorp) </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.elastic.co/products/logstash">Logstash</a> </td> <td>A tool that can be used to collect, process and forward events and log messages </td> <td>JRuby </td> <td><a rel="nofollow" class="external text" href="https://github.com/elasticsearch/logstash">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://logstash.jira.com/secure/Dashboard.jspa">Jira</a> </td> <td>(Elastic), <a href="/wiki/User:BDavis_(WMF)" title="User:BDavis (WMF)">bd808</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.elastic.co/products/logstash">Logstash plugins</a> </td> <td>Additional plugins </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://github.com/logstash-plugins/">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/logstash-plugins/">GitHub</a> </td> <td>(Elastic), <a href="/wiki/User:BDavis_(WMF)" title="User:BDavis (WMF)">bd808</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.elastic.co/products/kibana">Kibana</a> </td> <td>A browser based analytics and search interface for Elasticsearch that was developed primarily to view Logstash event data </td> <td>JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/elasticsearch/kibana">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/elasticsearch/kibana/issues">GitHub</a> </td> <td>(Elastic), <a href="/wiki/User:BDavis_(WMF)" title="User:BDavis (WMF)">bd808</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://graphite.readthedocs.io/en/latest/">Graphite/Carbon</a> </td> <td>Real-time graphing system and time series </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://github.com/graphite-project/graphite-web">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/graphite-project/graphite-web/issues">GitHub</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://grafana.com/">Grafana</a> </td> <td>Metrics visualisation </td> <td>Go, JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/grafana/grafana">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/grafana/grafana/issues">GitHub</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/senchalabs/jsduck">JSDuck</a> </td> <td>Static site generator for documentation. </td> <td>Ruby </td> <td><a rel="nofollow" class="external text" href="https://github.com/senchalabs/jsduck">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/senchalabs/jsduck/issues">GitHub</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="http://www.list.org/">Mailman</a> suite </td> <td>Mailing list server / management (see also <a href="https://meta.wikimedia.org/wiki/Mailing_lists/Administration" class="extiw" title="m:Mailing lists/Administration">Mailing lists administration</a>) </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://gitlab.com/mailman/">GitLab</a> </td> <td><a rel="nofollow" class="external text" href="https://gitlab.com/mailman/mailman/issues">GitLab</a> </td> <td><a href="/wiki/User:Legoktm" title="User:Legoktm">Legoktm</a>, <a href="/wiki/User:Ladsgroup" title="User:Ladsgroup">Ladsgroup</a> </td></tr> <tr> <td><a href="/wiki/Gerrit/git-review" title="Gerrit/git-review">git-review</a> </td> <td>Command line tool for using Gerrit </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://opendev.org/opendev/git-review">Git</a> </td> <td><a rel="nofollow" class="external autonumber" href="http://Story">[12]</a> </td> <td>(<a rel="nofollow" class="external text" href="https://docs.openstack.org/infra/">OpenStack</a>), </td></tr> <tr> <td><a href="/wiki/Phabricator" title="Phabricator">Phabricator</a> </td> <td>Task tracker and software development tool used by Wikimedia, see <a class="external free" href="https://phabricator.wikimedia.org">https://phabricator.wikimedia.org</a> </td> <td>PHP </td> <td><a rel="nofollow" class="external text" href="https://we.phorge.it/">Phorge.it</a> </td> <td><a href="https://phabricator.wikimedia.org/tag/phabricator-upstream" class="extiw" title="phab:tag/phabricator-upstream">#phabricator-upstream</a> and <a rel="nofollow" class="external text" href="https://we.phorge.it/maniphest/">we.phorge.it</a> </td> <td><a href="/wiki/User:AKlapper_(WMF)" title="User:AKlapper (WMF)">Andre Klapper</a> </td></tr> <tr> <td><a href="/wiki/Continuous_integration/PHP_CodeSniffer" title="Continuous integration/PHP CodeSniffer">PHP CodeSniffer</a> </td> <td>Continuous integration </td> <td>PHP </td> <td><a rel="nofollow" class="external text" href="https://github.com/squizlabs/PHP_CodeSniffer">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/squizlabs/PHP_CodeSniffer">GitHub</a> </td> <td><a href="/wiki/User:Legoktm" title="User:Legoktm">Legoktm</a> </td></tr> <tr> <td><a href="/wiki/Continuous_integration/Phan" title="Continuous integration/Phan">Phan</a> </td> <td>Continuous integration </td> <td>PHP </td> <td><a rel="nofollow" class="external text" href="https://github.com/phan/phan/">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/phan/phan/issues/">GitHub</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.seleniumhq.org/">Selenium</a> </td> <td>Automated Browser Testing </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://github.com/seleniumhq/selenium/issues">[13]</a> </td> <td> </td></tr> <tr> <td><a href="https://wikitech.wikimedia.org/wiki/Netbox" class="extiw" title="wikitech:Netbox">Netbox</a> </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://github.com/netbox-community/netbox/">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/netbox-community/netbox/issues/">GitHub</a> </td> <td><a href="/wiki/Wikimedia_Site_Reliability_Engineering#Infrastructure_Foundations" title="Wikimedia Site Reliability Engineering">Wikimedia Site Reliability Engineering#Infrastructure Foundations</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.debian.org/">Debian</a> </td> <td>Free Operating System used on all production servers and cloud VPS instances. </td> <td>various </td> <td><a rel="nofollow" class="external autonumber" href="https://packages.debian.org">[14]</a> </td> <td><a rel="nofollow" class="external autonumber" href="https://debian.org/Bugs">[15]</a> </td> <td>multiple Debian devs in SRE, <a href="/wiki/User:Legoktm" title="User:Legoktm">Legoktm</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://letsencrypt.org/">Let's Encrypt</a> </td> <td>non-profit certificate authority - used for TLS (SSL) certificates for many services </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://github.com/letsencrypt">github/letsencrypt</a> </td> <td> </td> <td><a href="/wiki/Wikimedia_Site_Reliability_Engineering#Traffic" title="Wikimedia Site Reliability Engineering">SRE Traffic team</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://trafficserver.apache.org/">Apache Trafficserver (ATS)</a> </td> <td>Reverse proxy and forward proxy server </td> <td>C++ </td> <td><a rel="nofollow" class="external text" href="https://github.com/apache/trafficserver/">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/apache/trafficserver/issues/">GitHub</a> </td> <td><a href="/wiki/Wikimedia_Site_Reliability_Engineering#Traffic" title="Wikimedia Site Reliability Engineering">SRE Traffic team</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://varnish-cache.org/">Varnish</a> </td> <td>Reverse proxy server </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://www.varnish-cache.org/trac/report">[16]</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.nginx.com/resources/wiki/">nginx</a> </td> <td>Reverse proxy / web server </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://trac.nginx.org/nginx/report">[17]</a> </td> <td> </td></tr> <tr> <td><a href="https://wikitech.wikimedia.org/wiki/Puppet" class="extiw" title="wikitech:Puppet">Puppet</a> </td> <td>Configuration management system. </td> <td>Ruby </td> <td><a rel="nofollow" class="external text" href="https://github.com/puppetlabs/puppet">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://tickets.puppetlabs.com/">Jira</a> </td> <td><a href="/wiki/Wikimedia_Site_Reliability_Engineering" title="Wikimedia Site Reliability Engineering">Wikimedia SRE</a> </td></tr> <tr> <td>RT (Request Tracker) </td> <td>Ticket system used by Wikimedia Operations team </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://issues.bestpractical.com/Dashboards/1408/RT?user=guest;pass=guest">[18]</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.icinga.com/">Icinga</a> </td> <td>Network system monitoring (<a class="external text" href="https://icinga.wikimedia.org/">icinga.wikimedia.org</a>) </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://dev.icinga.org/projects/icinga-core/issues">[19]</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.znuny.org/">Znuny</a> </td> <td>Ticket system used for answering queries, see <a class="external text" href="https://ticket.wikimedia.org/otrs">https://ticket.wikimedia.org/</a> </td> <td> </td> <td> </td> <td>Znuny: <a rel="nofollow" class="external autonumber" href="https://github.com/znuny/znuny/issues">[20]</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://civicrm.org/">CiviCRM</a> </td> <td>Used for WMF Fundraising (<a href="/wiki/Fundraising_tech/Free_Software_Citizenship#CiviCRM" title="Fundraising tech/Free Software Citizenship">now upstreaming patches</a>) </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://issues.civicrm.org">[21]</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://wordpress.org/">WordPress</a> </td> <td><a class="external free" href="https://blog.wikimedia.org">https://blog.wikimedia.org</a> </td> <td>PHP </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://core.trac.wordpress.org/">Trac</a> </td> <td>(<a rel="nofollow" class="external text" href="https://codex.wordpress.org/Mailing_Lists">mailing lists</a>) </td></tr> <tr> <td><a rel="nofollow" class="external text" href="http://offog.org/code/rawdog/">Rawdog</a> </td> <td><a class="external free" href="https://en.planet.wikimedia.org/">https://en.planet.wikimedia.org/</a> etc </td> <td>Python </td> <td><a rel="nofollow" class="external free" href="http://offog.org/git/rawdog/">http://offog.org/git/rawdog/</a> </td> <td> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.djangoproject.com/">Django</a> </td> <td>Python web framework </td> <td>Python </td> <td><a rel="nofollow" class="external free" href="https://github.com/django/django">https://github.com/django/django</a> </td> <td> </td> <td> </td></tr> <tr> <td><a href="https://wikitech.wikimedia.org/wiki/Portal:Cloud_VPS" class="extiw" title="wikitech:Portal:Cloud VPS">OpenStack Nova</a> </td> <td>OpenStack compute service. </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://github.com/openstack/nova.git">OpenStack GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://bugs.launchpad.net/nova">Launchpad</a> </td> <td><a href="/wiki/Wikimedia_Cloud_Services_team" title="Wikimedia Cloud Services team">Wikimedia Cloud Services team</a> </td></tr> <tr> <td><a href="https://wikitech.wikimedia.org/wiki/Portal:Cloud_VPS" class="extiw" title="wikitech:Portal:Cloud VPS">OpenStack Neutron</a> </td> <td>OpenStack software-defined-networking service. </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://github.com/openstack/neutron.git">OpenStack GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://bugs.launchpad.net/neutron">Launchpad</a> </td> <td><a href="/wiki/Wikimedia_Cloud_Services_team" title="Wikimedia Cloud Services team">Wikimedia Cloud Services team</a> </td></tr> <tr> <td><a href="https://wikitech.wikimedia.org/wiki/Portal:Cloud_VPS" class="extiw" title="wikitech:Portal:Cloud VPS">OpenStack Glance</a> </td> <td>OpenStack image service. </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://github.com/openstack/glance.git">OpenStack GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://bugs.launchpad.net/glance">Launchpad</a> </td> <td><a href="/wiki/Wikimedia_Cloud_Services_team" title="Wikimedia Cloud Services team">Wikimedia Cloud Services team</a> </td></tr> <tr> <td><a href="https://wikitech.wikimedia.org/wiki/Portal:Cloud_VPS" class="extiw" title="wikitech:Portal:Cloud VPS">OpenStack Cinder</a> </td> <td>OpenStack image service. </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://github.com/openstack/cinder.git">OpenStack GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://bugs.launchpad.net/cinder">Launchpad</a> </td> <td><a href="/wiki/Wikimedia_Cloud_Services_team" title="Wikimedia Cloud Services team">Wikimedia Cloud Services team</a> </td></tr> <tr> <td><a href="https://wikitech.wikimedia.org/wiki/Portal:Cloud_VPS" class="extiw" title="wikitech:Portal:Cloud VPS">OpenStack Trove</a> </td> <td>OpenStack image service. </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://github.com/openstack/trove.git">OpenStack GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://storyboard.openstack.org/#!/project/openstack/trove">storyboard</a> </td> <td><a href="/wiki/Wikimedia_Cloud_Services_team" title="Wikimedia Cloud Services team">Wikimedia Cloud Services team</a> </td></tr> <tr> <td><a href="https://wikitech.wikimedia.org/wiki/Portal:Cloud_VPS" class="extiw" title="wikitech:Portal:Cloud VPS">OpenStack Magnum</a> </td> <td>OpenStack image service. </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://github.com/openstack/magnum.git">OpenStack GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://bugs.launchpad.net/magnum">Launchpad</a> </td> <td><a href="/wiki/Wikimedia_Cloud_Services_team" title="Wikimedia Cloud Services team">Wikimedia Cloud Services team</a> </td></tr> <tr> <td><a href="https://wikitech.wikimedia.org/wiki/Portal:Cloud_VPS" class="extiw" title="wikitech:Portal:Cloud VPS">OpenStack Heat</a> </td> <td>OpenStack image service. </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://github.com/openstack/heat.git">OpenStack GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://storyboard.openstack.org/#!/project/openstack/heat">storyboard</a> </td> <td><a href="/wiki/Wikimedia_Cloud_Services_team" title="Wikimedia Cloud Services team">Wikimedia Cloud Services team</a> </td></tr> <tr> <td><a href="https://wikitech.wikimedia.org/wiki/Portal:Cloud_VPS" class="extiw" title="wikitech:Portal:Cloud VPS">OpenStack Horizon</a> </td> <td>OpenStack image service. </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://github.com/openstack/horizon.git">OpenStack GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://bugs.launchpad.net/horizon">Launchpad</a> </td> <td><a href="/wiki/Wikimedia_Cloud_Services_team" title="Wikimedia Cloud Services team">Wikimedia Cloud Services team</a> </td></tr> <tr> <td><a href="https://wikitech.wikimedia.org/wiki/Portal:Cloud_VPS" class="extiw" title="wikitech:Portal:Cloud VPS">OpenStack Keystone</a> </td> <td>OpenStack identity service. </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://github.com/openstack/keystone.git">OpenStack GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://bugs.launchpad.net/keystone">Launchpad</a> </td> <td><a href="/wiki/Wikimedia_Cloud_Services_team" title="Wikimedia Cloud Services team">Wikimedia Cloud Services team</a> </td></tr> <tr> <td><a href="https://wikitech.wikimedia.org/wiki/Swift" class="extiw" title="wikitech:Swift">OpenStack Swift</a> </td> <td>OpenStack object storage service. </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://github.com/openstack/swift.git">OpenStack GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://bugs.launchpad.net/swift">Launchpad</a> </td> <td><a href="/wiki/Wikimedia_Site_Reliability_Engineering" title="Wikimedia Site Reliability Engineering">Wikimedia SRE</a> </td></tr> <tr> <td><a href="https://wikitech.wikimedia.org/wiki/Help:Toolforge/Kubernetes" class="extiw" title="wikitech:Help:Toolforge/Kubernetes">Kubernetes</a> </td> <td>Cloud platform for running containers </td> <td>Go </td> <td><a rel="nofollow" class="external text" href="https://github.com/kubernetes/kubernetes">Kubernetes GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/kubernetes/kubernetes/issues">Kubernetes issues on GitHub</a> </td> <td><a href="/wiki/Wikimedia_Site_Reliability_Engineering" title="Wikimedia Site Reliability Engineering">Wikimedia SRE</a> and <a href="/wiki/Wikimedia_Cloud_Services_team" title="Wikimedia Cloud Services team">Wikimedia Cloud Services team</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.kernel.org/">Linux Kernel</a> </td> <td>The core that runs all of our servers </td> <td>C </td> <td><a rel="nofollow" class="external text" href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/">Git source tree</a> </td> <td>TBD, probably better to use the Debian BTS. </td> <td><a href="/wiki/Wikimedia_Site_Reliability_Engineering" title="Wikimedia Site Reliability Engineering">Wikimedia SRE</a> and <a href="/wiki/Wikimedia_Cloud_Services_team" title="Wikimedia Cloud Services team">Wikimedia Cloud Services team</a> and others. </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://www.netfilter.org/">Netfilter</a> </td> <td>Linux packet filtering framework </td> <td>C </td> <td><a rel="nofollow" class="external text" href="https://git.netfilter.org/">Netfilter source repositories</a> </td> <td><a rel="nofollow" class="external text" href="http://bugzilla.netfilter.org/">Netfilter bugzilla</a> </td> <td><a href="/wiki/Wikimedia_Site_Reliability_Engineering" title="Wikimedia Site Reliability Engineering">Wikimedia SRE</a> and <a href="/wiki/Wikimedia_Cloud_Services_team" title="Wikimedia Cloud Services team">Wikimedia Cloud Services team</a> and others. </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://ajv.js.org/">AJV (Another JSON Schema Validator)</a> </td> <td>JSONSchema Validator that powers WMF's streaming <a href="https://wikitech.wikimedia.org/wiki/Event_Platform" class="extiw" title="wikitech:Event Platform">Event Platform</a> components like <a href="https://wikitech.wikimedia.org/wiki/Event_Platform/EventGate" class="extiw" title="wikitech:Event Platform/EventGate">EventGate</a> and <a href="https://wikitech.wikimedia.org/wiki/Event_Platform/Schemas" class="extiw" title="wikitech:Event Platform/Schemas">schema</a> repositories. </td> <td>NodeJS </td> <td><a rel="nofollow" class="external text" href="https://github.com/ajv-validator/ajv">AJV GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/ajv-validator/ajv">AJV issues on GitHub</a> </td> <td><a href="https://wikitech.wikimedia.org/wiki/Data_Engineering" class="extiw" title="wikitech:Data Engineering">Wikimedia Data Engineering</a> and <a href="/wiki/MediaWiki_Platform_Team" title="MediaWiki Platform Team">MediaWiki Platform Team</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://superset.incubator.apache.org/">Apache Superset</a> </td> <td>Dashboarding and data exploration tool </td> <td>Python </td> <td><a rel="nofollow" class="external text" href="https://github.com/apache/incubator-superset">Superset GitHub</a> </td> <td> </td> <td><a href="https://wikitech.wikimedia.org/wiki/Data_Engineering" class="extiw" title="wikitech:Data Engineering">Wikimedia Data Engineering</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/allegro/turnilo">Turnilo</a> </td> <td>Data exploration tool </td> <td>JavaScript </td> <td><a rel="nofollow" class="external text" href="https://github.com/allegro/turnilo">Turnilo GitHub</a> </td> <td> </td> <td><a href="https://wikitech.wikimedia.org/wiki/Data_Engineering" class="extiw" title="wikitech:Data Engineering">Wikimedia Data Engineering</a> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://github.com/libtiff/libtiff">libtiff</a> </td> <td>tiffinfo; see e.g. <a href="https://phabricator.wikimedia.org/T269908" class="extiw" title="phab:T269908">phab:T269908</a> </td> <td>C </td> <td><a rel="nofollow" class="external text" href="https://github.com/libtiff/libtiff">libtiff GitHub</a> </td> <td> </td> <td> </td></tr> <tr> <td>(what else?) </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td></tr></tbody></table> <div class="mw-heading mw-heading2 ext-discussiontools-init-section"><h2 id="Miscellaneous" data-mw-thread-id="h-Miscellaneous"><span data-mw-comment-start="" id="h-Miscellaneous"></span>Miscellaneous<span data-mw-comment-end="h-Miscellaneous"></span></h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Upstream_projects&action=edit&section=5" title="Edit section: Miscellaneous"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span><!--__DTELLIPSISBUTTON__{"threadItem":{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Miscellaneous","replies":["h-Integrated_on_Wikimedia_projects-Miscellaneous","h-Editing_tools-Miscellaneous","h-Web_browsers-Miscellaneous"]}}--></div> <div class="mw-heading mw-heading3"><h3 id="Integrated_on_Wikimedia_projects" data-mw-thread-id="h-Integrated_on_Wikimedia_projects-Miscellaneous"><span data-mw-comment-start="" id="h-Integrated_on_Wikimedia_projects-Miscellaneous"></span>Integrated on Wikimedia projects<span data-mw-comment-end="h-Integrated_on_Wikimedia_projects-Miscellaneous"></span></h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Upstream_projects&action=edit&section=6" title="Edit section: Integrated on Wikimedia projects"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Projects that are used in some way (embedding, linking) with Wikimedia projects, but operated by volunteers e.g. in <a href="https://wikitech.wikimedia.org/wiki/Help:Cloud_Services_Introduction" class="extiw" title="wikitech:Help:Cloud Services Introduction">Wikimedia Cloud</a> or Toolforge. </p> <table class="wikitable sortable" align="top" width="100%"> <caption>Upstream tools </caption> <tbody><tr> <th>Name & URL</th> <th style="min-width:300px;">Description</th> <th>Language(s)</th> <th>Repository</th> <th>Bug tracker</th> <th>Main contacts </th></tr> <tr> <td><a rel="nofollow" class="external text" href="http://iipimage.sourceforge.net/">IIPImage</a> </td> <td>Viewing and zooming of ultra high-resolution images (<a href="https://commons.wikimedia.org/wiki/Help:Gadget-ZoomViewer" class="extiw" title="commons:Help:Gadget-ZoomViewer">linked by default on Wikimedia Commons</a>) </td> <td>C++ </td> <td><a rel="nofollow" class="external text" href="https://sourceforge.net/projects/iipimage/">SourceForge</a> </td> <td><a rel="nofollow" class="external text" href="https://sourceforge.net/p/iipimage/_list/tickets">SourceForge</a> </td> <td> </td></tr> <tr> <td><a rel="nofollow" class="external text" href="https://tesseract-ocr.github.io/">Tesseract OCR</a> </td> <td>Automated text recognition (OCR) </td> <td>C++ </td> <td><a rel="nofollow" class="external text" href="https://github.com/tesseract-ocr/tesseract/">GitHub</a> </td> <td><a rel="nofollow" class="external text" href="https://github.com/tesseract-ocr/tesseract/issues">GitHub</a> </td> <td><a class="external text" href="https://www.mediawiki.org/wiki/User:Stefan_Weil">Stefan Weil</a> </td></tr> <tr> <td><a href="https://phabricator.wikimedia.org/diffusion/OPUP/browse/production/modules/toollabs/manifests/exec_environ.pp" class="extiw" title="phab:diffusion/OPUP/browse/production/modules/toollabs/manifests/exec environ.pp">Hundreds of other packages on Tools</a></td> <td></td> <td></td> <td></td> <td></td> <td> </td></tr> <tr> <td>(what else?) </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Editing_tools" data-mw-thread-id="h-Editing_tools-Miscellaneous"><span data-mw-comment-start="" id="h-Editing_tools-Miscellaneous"></span>Editing tools<span data-mw-comment-end="h-Editing_tools-Miscellaneous"></span></h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Upstream_projects&action=edit&section=7" title="Edit section: Editing tools"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Applications commonly used by developers or editors. For a full listing, see the lists <a href="https://meta.wikimedia.org/wiki/Open_Source_Toolset" class="extiw" title="m:Open Source Toolset">m:Open Source Toolset</a>, <a href="https://meta.wikimedia.org/wiki/FLOSS-Exchange" class="extiw" title="m:FLOSS-Exchange">m:FLOSS-Exchange</a>, <a href="https://www.wikidata.org/wiki/Q6584911" class="extiw" title="d:Q6584911">d:Q6584911</a>. </p> <table class="wikitable sortable" align="top" width="100%"> <caption>Upstream tools </caption> <tbody><tr> <th>Name & URL</th> <th style="min-width:300px;">Description</th> <th>Language(s)</th> <th>Repository</th> <th>Bug tracker</th> <th>Main contacts </th></tr> <tr> <td><a href="https://commons.wikimedia.org/wiki/Commons:Software" class="extiw" title="commons:Commons:Software">Multimedia software</a> and <a href="https://commons.wikimedia.org/wiki/Help:SVG#Software" class="extiw" title="commons:Help:SVG">SVG tools</a> </td> <td>Software used to contribute/work on multimedia in MediaWiki wikis, like Inkscape and GIMP. May play well with MediaWiki or not. </td> <td> </td> <td> </td> <td> </td> <td> </td></tr> <tr> <td><a href="https://en.wikipedia.org/wiki/LibreOffice" class="extiw" title="w:LibreOffice">LibreOffice</a> (formerly OpenOffice) </td> <td>Productivity suite, can e.g. produce charts and export/publish documents to wikitext (via libreoffice-wiki-publisher). </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external autonumber" href="https://bugs.documentfoundation.org/describecomponents.cgi">[22]</a> </td> <td> </td></tr> <tr> <td>Browser spellcheckers </td> <td>Aiding editors to prevent errors before they're saved. </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://addons.mozilla.org/firefox/language-tools/">Over 120 in Firefox</a>, see respective descriptions. </td> <td> </td> <td> </td></tr> <tr> <td><a href="https://commons.wikimedia.org/wiki/Commons:KIPI_uploader" class="extiw" title="commons:Commons:KIPI uploader">KIPI uploader</a> and other third party <a href="https://commons.wikimedia.org/wiki/Special:MyLanguage/Commons:Upload_tools" class="extiw" title="commons:Special:MyLanguage/Commons:Upload tools">upload tools</a> </td> <td>Multimedia contribution software by third parties, usually made for integration in their software (e.g. digiKam, Gwenview). </td> <td> </td> <td> </td> <td> </td> <td> </td></tr> <tr> <td>(what else?) </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Web_browsers" data-mw-thread-id="h-Web_browsers-Miscellaneous"><span data-mw-comment-start="" id="h-Web_browsers-Miscellaneous"></span>Web browsers<span data-mw-comment-end="h-Web_browsers-Miscellaneous"></span></h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Upstream_projects&action=edit&section=8" title="Edit section: Web browsers"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r6353907">.mw-parser-output .hatnote{font-style:italic;padding-bottom:0.4em;margin-bottom:0.4em;border-bottom:1px solid #ccc}.mw-parser-output .hatnote.no-border{border-bottom:none}</style><div role="note" class="hatnote mw-tpl-seealso">See also: <a href="/wiki/Compatibility" title="Compatibility">Compatibility</a></div> <p><br/> </p> <table class="wikitable sortable" align="top" width="100%"> <tbody><tr> <th>Name & URL</th> <th style="min-width:300px;">Description</th> <th>Language(s)</th> <th>Repository</th> <th>Bug tracker</th> <th>Main contacts </th></tr> <tr> <td>Chrome </td> <td>Browser by Google </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://bugs.chromium.org/p/chromium/issues/list">chromium.org</a> (<a rel="nofollow" class="external text" href="https://bugs.chromium.org/p/chromium/issues/detail?id=463348">Wikimedia issues</a> are specifically tracked) </td> <td><a href="/wiki/Performance_Team" class="mw-redirect" title="Performance Team">Performance Team</a> </td></tr> <tr> <td>Firefox </td> <td>Browser by Mozilla </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://bugzilla.mozilla.org/">mozilla.org</a> </td> <td><a href="/wiki/Performance_Team" class="mw-redirect" title="Performance Team">Performance Team</a> </td></tr> <tr> <td>Opera </td> <td>Browser by Opera Software </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://bugs.opera.com/wizard/">opera.com</a> </td> <td> </td></tr> <tr> <td>Internet Explorer </td> <td>Browser by Microsoft </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://issues.microsoftedge.com/">microsoft.com</a> </td> <td> </td></tr> <tr> <td>Safari </td> <td>Browser by Apple </td> <td> </td> <td> </td> <td><a rel="nofollow" class="external text" href="https://bugs.webkit.org/">webkit.org</a> </td> <td> </td></tr> <tr> <td>(what else?) </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td></tr></tbody></table> <div class="mw-heading mw-heading2 ext-discussiontools-init-section"><h2 id="Notes" data-mw-thread-id="h-Notes"><span data-mw-comment-start="" id="h-Notes"></span>Notes<span data-mw-comment-end="h-Notes"></span></h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Upstream_projects&action=edit&section=9" title="Edit section: Notes"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span><!--__DTELLIPSISBUTTON__{"threadItem":{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Notes","replies":[]}}--></div> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a></span> <span class="reference-text">For instance, whether volunteers or for work: <a href="/wiki/Developers/Maintainers" title="Developers/Maintainers">maintainers</a> and <a rel="nofollow" class="external text" href="https://www.openhub.net/orgs/wikimedia">contributors</a> of MediaWiki core and extensions and other developers; <a href="https://meta.wikimedia.org/wiki/Wikimedia_projects" class="extiw" title="m:Wikimedia projects">Wikimedia projects</a> editors and sysadmins; sysadmins of <a href="//wikiapiary.com/wiki/Websites" class="extiw" title="wikiapiary:Websites">MediaWiki wikis</a>.</span> </li> </ol></div> <div class="mw-heading mw-heading2 ext-discussiontools-init-section"><h2 id="See_also" data-mw-thread-id="h-See_also"><span data-mw-comment-start="" id="h-See_also"></span>See also<span data-mw-comment-end="h-See_also"></span></h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Upstream_projects&action=edit&section=10" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span><!--__DTELLIPSISBUTTON__{"threadItem":{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-See_also","replies":[]}}--></div> <ul><li><a href="/wiki/Developers/Maintainers" title="Developers/Maintainers">Developers/Maintainers</a></li> <li><a href="https://wikitech.wikimedia.org/wiki/Key_Wikimedia_software_projects" class="extiw" title="wikitech:Key Wikimedia software projects">Key Wikimedia software projects</a> (As of August 2015 is out of date)</li> <li>Wikimedia projects mirrored on GitHub: <a rel="nofollow" class="external free" href="https://github.com/wikimedia">https://github.com/wikimedia</a></li> <li><a class="external text" href="https://doc.wikimedia.org">Wikimedia Open Source</a></li> <li><a href="/wiki/Library_infrastructure_for_MediaWiki" title="Library infrastructure for MediaWiki">Library infrastructure for MediaWiki</a></li> <li><a href="https://meta.wikimedia.org/wiki/FLOSS-Exchange" class="extiw" title="m:FLOSS-Exchange">m:FLOSS-Exchange</a></li></ul> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐78fc6dc798‐qtqzk Cached time: 20241121075600 Cache expiry: 2592000 Reduced expiry: false Complications: [show‐toc] DiscussionTools time usage: 0.042 seconds CPU time usage: 0.163 seconds Real time usage: 0.212 seconds Preprocessor visited node count: 474/1000000 Post‐expand include size: 624/2097152 bytes Template argument size: 106/2097152 bytes Highest expansion depth: 15/100 Expensive parser function count: 2/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 922/5000000 bytes Lua time usage: 0.016/10.000 seconds Lua memory usage: 663783/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 55.886 1 -total 67.14% 37.520 1 Template:TNT 29.76% 16.630 1 Template:As_of 23.72% 13.255 1 Template:Rellink 21.46% 11.992 1 Template:Tmpl 13.38% 7.478 1 Template:Ym 8.22% 4.594 1 Template:I18n_month 3.90% 2.178 1 MediaWiki:August/en --> <!-- Saved in parser cache with key mediawikiwiki:pcache:idhash:202681-0!canonical and timestamp 20241121075600 and revision id 6740382. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://www.mediawiki.org/w/index.php?title=Upstream_projects&oldid=6740382">https://www.mediawiki.org/w/index.php?title=Upstream_projects&oldid=6740382</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Special:Categories" title="Special:Categories">Categories</a>: <ul><li><a href="/wiki/Category:MediaWiki_development" title="Category:MediaWiki development">MediaWiki development</a></li><li><a href="/wiki/Category:Libraries" title="Category:Libraries">Libraries</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden category: <ul><li><a href="/wiki/Category:Pages_containing_potentially_dated_statements" title="Category:Pages containing potentially dated statements">Pages containing potentially dated statements</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 6 September 2024, at 08:21.</li> <li id="footer-info-copyright">Text is available under the <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-ShareAlike License</a>; additional terms may apply. Text in <a class="external text" href="https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents">the Help: namespace</a> is available under the <a rel="nofollow" class="external text" href="https://creativecommons.org/publicdomain/zero/1.0/">Creative Commons CC0 License</a>. By using this site, you agree to the <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use">Terms of Use</a> and <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy Policy</a>.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Project:About">About mediawiki.org</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Project:General_disclaimer">Disclaimers</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/www.mediawiki.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//m.mediawiki.org/w/index.php?title=Upstream_projects&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-2c6ql","wgBackendResponseTime":112,"wgDiscussionToolsPageThreads":[{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Motivation","replies":[]},{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Invented_here","replies":[]},{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-MediaWiki_dependencies","replies":[]},{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Development_and_operations","replies":[]},{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Miscellaneous","replies":[{"headingLevel":3,"name":"h-","type":"heading","level":0,"id":"h-Integrated_on_Wikimedia_projects-Miscellaneous","replies":[]},{"headingLevel":3,"name":"h-","type":"heading","level":0,"id":"h-Editing_tools-Miscellaneous","replies":[]},{"headingLevel":3,"name":"h-","type":"heading","level":0,"id":"h-Web_browsers-Miscellaneous","replies":[]}]},{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-Notes","replies":[]},{"headingLevel":2,"name":"h-","type":"heading","level":0,"id":"h-See_also","replies":[]}],"wgPageParseReport":{"discussiontools":{"limitreport-timeusage":"0.042"},"limitreport":{"cputime":"0.163","walltime":"0.212","ppvisitednodes":{"value":474,"limit":1000000},"postexpandincludesize":{"value":624,"limit":2097152},"templateargumentsize":{"value":106,"limit":2097152},"expansiondepth":{"value":15,"limit":100},"expensivefunctioncount":{"value":2,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":922,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 55.886 1 -total"," 67.14% 37.520 1 Template:TNT"," 29.76% 16.630 1 Template:As_of"," 23.72% 13.255 1 Template:Rellink"," 21.46% 11.992 1 Template:Tmpl"," 13.38% 7.478 1 Template:Ym"," 8.22% 4.594 1 Template:I18n_month"," 3.90% 2.178 1 MediaWiki:August/en"]},"scribunto":{"limitreport-timeusage":{"value":"0.016","limit":"10.000"},"limitreport-memusage":{"value":663783,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-78fc6dc798-qtqzk","timestamp":"20241121075600","ttl":2592000,"transientcontent":false}}});});</script> </body> </html>