New Developers/Introduction to the Wikimedia Technical Ecosystem/cs

Tato stránka poskytuje přehled softwaru a infrastruktury Wikimedie pro nové technické přispěvatele. Jeho cílem je pomoci vývojářům porozumět hlavním oblastem, kde můžete uplatnit své technické dovednosti, abyste pomohli podpořit a rozvíjet Hnutí.



Open source
Technický ekosystém Wikimedie se řídí principy bezplatného open source software (FLOSS). Přispěvatelé z celého světa dobrovolně věnují svůj čas údržbě a rozšiřování technologie za projekty Wikimedie. To znamená, že technický ekosystém Wikimedie se skládá z mnoha jedinečných projektů s různými přispívajícími pokyny, návrhovými vzory, umístěním hostitelů a procesy kontroly kódu.

Hodnoty open source, jako je sdílené vlastnictví a silné závazky týkající se ochrany osobních údajů, jsou ústředním bodem technické infrastruktury, softwaru a služeb Wikimedie. Například:


 * Pro kontrolu verzí a kontrolu kódu používá Wikimedia Foundation (WMF) Git a Gerrit. Git je bezplatný a open source distribuovaný systém správy verzí a Gerrit je bezplatný webový nástroj pro kolaborativní kontrolu kódu, který se integruje s Git.
 * Wikimedia Cloud Services (WMCS) poskytuje infrastrukturu cloud computingu, sdílený hosting (platforma jako služba) a datové služby pro přispěvatele do softwarových projektů Wikimedie. Tyto služby můžete použít k hostování svých softwarových nástrojů pro hnutí Wikimedi, a to zdarma, namísto používání proprietárních, placených nebo neopen source služeb.

Kromě poskytování nástrojů a služeb pro technické přispěvatele WMF spravuje základní infrastrukturu, jako jsou datová centra, vyhledávání, sítě a globální směrování provozu. Nemusíte se o nich učit, abyste mohli přispívat do wiki projektů, ale měli byste vědět o základním softwaru, který pohání Wikipedii a další wikiny: MediaWiki.

MediaWiki
Projekty Wikimedie, včetně Wikipedie, běží na softwarové platformě MediaWiki. MediaWiki je bezplatný a otevřený software vytvořený speciálně pro shromažďování a organizování svobodných a otevřených znalostí. Je vícejazyčný, rozšiřitelný, přizpůsobitelný a spolehlivý. MediaWiki umožňuje uživatelům na celém světě upravovat, organizovat, udržovat a spolupracovat na wikinách. Spravuje zobrazení obsahu, jako je text, fotografie, formátování a revize. MediaWiki je více než jen systém pro správu obsahu: Poskytuje také nástroje pro řešení spamu a vandalismu a další funkce, které podporují komunitní správu volně znovu použitelných znalostí na otevřené platformě.



Klíčové oblasti, kam mohou vývojáři přispívat


Vyvíjet MediaWiki, aplikace a rozšíření


Jádro MediaWiki a rozšíření
The MediaWiki software is developed collaboratively by people from all around the world. The Wikimedia technical community has added many key features to MediaWiki and built a large ecosystem of extensions to the core software. Due to its complexity, contributing to MediaWiki may be more challenging than other types of technical contributions. As a new contributor, focus on features and bugs that only touch a small region of code. Avoid building new MediaWiki skins and extensions: every new extension adds to the software's overall maintenance burden, and can block the launch of new, crucial features. Instead, look into working on one of the many existing extensions.

To learn more, visit.

Wikimedia mobile apps
Mobile apps expand the reach of Wikimedia content by allowing users to interact with Wikimedia without using a browser. There are apps for the Android, iOS, and KaiOS platforms, apps for different Wikimedia projects like Commons, Wikipedia, and Wiktionary, and apps for activities like reading, contributing, and more. Many apps have vibrant developer communities and welcome new contributors.

To learn more, visit.

Templates and modules
Templates enable one piece of content to appear on multiple wiki pages ("transclusion"). Many wikis rely heavily on templates: there are thousands of them, they're used on almost every page, and they're integral to wiki functionality. You can pass parameters to templates to customize how content is handled in different contexts.

You don't need a developer account to edit or create a template, and they're written in wikitext. That makes templates an easy way to get started with customizing wiki behavior.

Modules are similar to templates, but instead of being written in wikitext, they use the Lua programming language. While templates are part of the core MediaWiki application, support for modules is implemented by an extension called.

To learn more about templates, visit. To learn more about modules and how Lua is used on MediaWiki, visit the Scribunto Lua manual.

User scripts and gadgets
MediaWiki supports front-end customization, or "on-wiki" development, to enhance the software's core functionality. User scripts are Javascript and/or CSS that provide additional features on top of MediaWiki. Code lives on the wiki, and is injected from the client side on MediaWiki via user preferences. You can modify your local Javascript and CSS to change the appearance and behavior of your own interface. Individual users can add features for themselves as long as they follow expectations and guidelines around doing so. If you build something that others can use, you can share your scripts informally, or work with a wiki community to investigate making your customizations available to other users and projects as a "gadget".

Gadgets are user-generated customizations that are available for installation on a wiki, via the Gadgets MediaWiki extension. Many gadgets originated as user scripts that became widely-used on their home wiki, and admins wanted to make them easier for everyone to find and use. Admins can configure which gadgets are available and enabled by default for an entire MediaWiki site or skin.

To learn more about user scripts and gadgets, visit .

Build tools and bots to help Wikimedia projects
MediaWiki APIs provide direct access to the data contained in the MediaWiki database. This includes wiki content, metadata, analytics data, and more. You can use these APIs to build apps that contribute content or new functionality to the Wikimedia ecosystem. The API modules provide programmatic access to much of the same functionality provided by the MediaWiki web interface.

Bots
Bots are automated programs that help wiki projects by doing crucial but repetitive tasks. Bots save human effort by correcting missing or extra spaces, suggesting articles to newcomers, fixing broken links, and more. Bot automation supports Wikimedia volunteers by allowing them to spend more of their time on tasks that require human intelligence, like writing articles, finding sources, fact checking, and synthesizing multiple points of view.

Bots can request pages and submit edits to wikis just like how human users do the same tasks in a web browser. Because bots access pages the same way people do, they can get caught in edit conflicts, have page timeouts, or run across other unexpected complications while requesting pages or making edits. Since bots generally complete high-volume work, you should consider these situations when writing a bot.

To learn more about bots, visit.

Tools
Tools are software applications that help people working on Wikimedia projects. Tools can do all kinds of tasks, like help editors discover content to improve, simplify edit-a-thon planning, visualize wiki content, help fight vandalism, and much more.

The MediaWiki Action API gives you programmatic access to content on any Wikimedia wiki. You can use the Action API to search and display wiki pages, get media files, edit pages, and manage wikis. Client libraries implementing the MediaWiki API are available in many languages, including Python and JavaScript.

To explore more Wikimedia tools, visit Toolhub.

Join the Wikimedia tech community
A great way to find ways to contribute is to get connected to the technical community. You can meet people and discuss development work on various communication channels and at events like Hackathons. The Wikimedia Foundation also offers outreach programs to mentor new developers.

Get started as a new contributor

 * Visit the New Developers page to learn more about getting started with development and contributing to Wikimedia open source.
 * Use the Developer Portal to find curated resources and tutorials for your area of interest.