MediaWiki hackeri olma

From MediaWiki.org
Jump to: navigation, search
This page is a translated version of the page How to become a MediaWiki hacker and the translation is 75% complete.

Outdated translations are marked like this.
Other languages:
العربية • ‎български • ‎dansk • ‎Deutsch • ‎Ελληνικά • ‎English • ‎español • ‎فارسی • ‎français • ‎magyar • ‎Bahasa Indonesia • ‎italiano • ‎日本語 • ‎한국어 • ‎Nederlands • ‎occitan • ‎ਪੰਜਾਬੀ • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎русский • ‎српски / srpski • ‎svenska • ‎ไทย • ‎Türkçe • ‎Tiếng Việt • ‎中文
Bu madde, geliştiricilere MediaWiki geliştirmeye katkıda bulunmak için gereken temel becerileri öğrenmelerinde yardımcı olmak için yazılmıştır.

MediaWiki'yi zaten tanıdık deneyimli bir geliştiriciyseniz, onun yerine GeliştiricilerDeveloper hub sayfasını ziyaret edin.

Genel bakış[edit]

MediaWiki, Wikipedia'nın, onun kardeş projelerinin ve binlerce wikinin tüm dünyada güç sağlayan bir yazılımdır. Çoğu işletim sisteminde çalışır, PHP ile yazılmıştır, öncelikle MySQL ve MariaDB veritabanı sunucularını kullanır ve jQuery'yi istemci JavaScript kitaplığı olarak kullanır. MediaWiki'nin geliştirilmesi öncelikle Wikimedia Vakfı tarafından desteklenir, ancak gönüllü topluluk geliştiricileri de büyük bir rol oynamaktadır.

Bu sayfa, MediaWiki'ye katkıda bulunma yolunda başlamanıza yardımcı olmaktadır. Öğretici değil; gerekli olanı öğrenmek için gidebileceğiniz çeşitli yerlere işaret ediyor.

Başlarken[edit]

Developer accessDeveloper access'e kaydolarak ve Gerrit öğreticisini okurken başlayın. Ardından, kodumuzu indirmek, değişiklik yapmak, test etmek ve yamalar göndermek için devam edebilirsiniz. Geliştirme ortamınızı ayarlamanın iki yolu vardır: önceden yapılandırılmış sanal makine kurulumunu (vagrant) veya elle kullanma.

Vagrantlı Sanal Makine[edit]

  • Vagrant kurulumu - Bu adımlar MediaWiki sunucusunu bir Linux sanal makinesi içerisindeki tüm gereksinimlerle birlikte yükleyecektir (Linux, Windows veya Mac bilgisayarlarda kullanılabilir)

Elle kurulum[edit]

MediaWiki özelliklerini geliştirmek için Vikipedi veritabanı dökümlerini indirmek gerekli değildir. Aslında, çoğu durumda, birkaç özel hazırlanmış sınama sayfası bulunan boş boş bir veritabanını kullanmak daha kolaydır. Bununla birlikte, eğer bir nedenle Vikipedi'nin bir kopyasını almak istiyorsan, bir dökümü cangetlemelisiniz.

Önerilen okuma[edit]

Genel tavsiyeler[edit]

Kod yazmayı veya değiştirmeyi gerektiren bir hata raporunda çalışmayı seçerseniz, en azından şu sayfaları ilk önce gözden geçirmek isteyebilirsiniz:

Bir geliştirici olarak soruşturma, git commit, gözden geçirme ve birleştirme işlemleri yapma ve Bugzilla biletini kapatma (şu anda PhabricatorPhabricator'ın yerini alması) dahil olmak üzere bir hatayı giderdiği gibi izleyin.


Geri bildirim, sorular ve destek[edit]

  • Öncelikle kendinize bazı temel araştırmalar yapmanız beklenmektedir: Koda bakınız, ne yapmanız gerektiği konusunda fikir sahibi olmaya çalışınız, ilgili dokümanları okumaya çalışın, hatayı düzeltmek için sırayla değişiklik yapmanız gereken muhtemel yerleri bulmaya çalışın.
  • If you have general questions about infrastructure, the software architecture or workflows which are not tied to the specific bug that you want to work on, use generic channels like IRCIRC, mailing lists, or wiki discussion pages. For example, if you have a problem with Gerrit, the Gerrit discussion page could be a good place to ask.
  • Hatalardan kendinizle ilgili özel bir sorunuz varsa, ilgili PhabricatorPhabricator raporunda yorum yapın. "What do I have to do to fix this bug?" is not a good question to start with: The more specific your questions are, the more likely somebody can answer them quickly. Eğer hatanın nasıl düzeltileceği konusunda hiçbir fikriniz yoksa, belki bu hata henüz sizin için değildir - lütfen önce daha kolay bir hata bulmayı düşünün.
  • Sorarken, başkalarının doğru seviyede yardımcı olabilmesi için, denediğiniz ve keşfettiğiniz şeyleri ayrıntılı bir şekilde anlatın. Belirli olmaya çalışın - örneğin, kendi sözcüklerinizde bir ifade vermek yerine, komutlarınızı ve çıktılarını (eğer çok uzun değilse) kopyalayıp yapıştırın. Bu, yanlış anlaşılmaları önler.
  • Avoid private email or support requests in our social media channels.
  • Giriş ve yorumlar ararken lütfen sabırlı olunuz. IRC'de, sormaya sormayın, sormanız yeterlidir: bir IRC kanalında sorarsanız çoğu soru diğer topluluk üyeleri tarafından da cevaplanabilir. Eğer kimse cevap vermezse, sorunla ilgili hata raporunda veya viki sayfasında sorun; Sadece soruyu bırakmayın.
  • İletişimCommunication ile ilgili daha fazla bilgi edinin.
  • You can ask at the weekly Technical Advice IRC Meeting on #wikimedia-tech


Bir hata üzerinde çalıştığınızı bildirme[edit]

Hata raporunda atanan olarak ayarlanmanız veya bir hata üzerinde çalışmaya başlamadan önce planlarınızı duyurmanız gerekmez, ancak hoş karşılanıyor.

En son ne hata için bir yama oluşturmaya yaklaştığınızda, bir yorumda üzerinde çalıştığınızı bildirmek iyidir. Duyurunuz aynı zamanda başkalarının böcek üzerinde aynı anda çalışmamasına ve çoğaltmasına yardımcı olur.

Ayrıca, bir hata raporunda Gerrit'teki bir düzeltme eki için yeni bir bağlantı varsa ve "Derleme İçin Düzeltme Eki" projesi bulunuyorsa, bunun yerine üzerinde çalışmak için farklı bir hata seçmelisiniz - işi çoğaltmaktan kaçının. Gerrit'teki düzeltme eki birleşmediyse ve uzun süredir herhangi bir değişiklik görmediyse, varolan düzeltme ekini alıp iyileştirmeyi deneyebilirsiniz.

Eğer bir görev üzerinde çalışmayı bırakırsanız, kendinizi bir hata raporunun devralanı olarak atamalı ve atanan kişiyi varsayılan ödev sahibine sıfırlamalısınız, böylece başkaları hata raporunda çalışabileceklerini biliyor ve üzerinde çalışmaya devam etmenizi beklemiyor.

Erken iletişim kurarak topluluk üyelerinden daha fazla ilgi, geri bildirim ve yardım alırsınız.


Eklentilerde çalışma[edit]

MediaWiki uzantıları koduyla çalışmayı seçerseniz, aşağıdaki bağlantılar daha fazla bilgi sağlar.

MediaWiki uzantıları astarları
MediaWiki uzantıları kaynakları


El İle İlgili Öneriler[edit]

The following sections describe a few example areas in which you can contribute, but you are not limited to these areas!

In the upper right corner of a task (bug report) in Phabricator you can see the product and component that the problem is located in. This provides you a hint about the Git repository that the code is located in, and about the development team which you could contact if you want to discuss it in a "broader" way (as comments in bug reports should preferably refer to the specific problem described in the report only).

Documentation[edit]

Pywikibot[edit]

PyWikibot is a Python-based framework to write bots for MediaWiki. Ask your general development questions on the Pywikibot mailing list and the #pywikibot IRC channel.

Multimedia[edit]

Ask your general Multimedia development questions on the multimedia mailing list and the #wikimedia-multimedia IRC channel.

Mobile Apps[edit]

There are numerous applications for mobile devices (Android, iOS, Windows Phone, …) to access Wikimedia wikis. Read the general development information and ask your questions on the Mobile mailing list and the #wikimedia-mobile IRC channel.

Okuma[edit]

The reading team builds the software that serves our readers. We also manage the mobile web experience. Read the general development information and ask your questions on the Mobile mailing list and the #wikimedia-mobile IRC channel.

Wikidata[edit]

Wikidata is a centralized knowledge base for structured data, such as interwiki references and statistical information. Ask your general development questions on the Wikidata mailing list, the #wikidata IRC channel and on the wiki.

Huggle[edit]

Huggle is a desktop application for dealing with vandalism on Wikimedia projects, written in C++.

Browser Tests & Quality Assurance[edit]

Automated browser tests help Wikimedia engineers produce quality user facing software faster. See the page on Browser testing for more on what technologies we use and how to get involved. For more general information, see Quality Assurance.

Language Engineering (Localization/Translation/Internationalization)[edit]

Ask your general Language Engineering development questions on the mediawiki-i18n mailing list and the #mediawiki-i18n IRC channel.

VisualEditor and Parsoid[edit]

VisualEditor is MediaWiki's WYSIWYG editor. Ask your general VisualEditor development questions on the wikitech mailing list and the #mediawiki-visualeditor IRC channel.

VisualEditor is powered by Parsoid, a wikitext parser and runtime. Ask your general Parsoid development questions on the wikitext mailing list and the #mediawiki-parsoid IRC channel.

Discovery / Search[edit]

The Discovery team builds the path of anonymous discovery to a trusted and relevant source of knowledge. Ask your general development questions on the Discovery mailing list and on the #wikimedia-discovery IRC channel.

Analytics[edit]

The Analytics team empowers and supports data-informed decision making in Wikimedia. Ask your general development questions on the Analytics mailing list.

Design[edit]

Fixing design bugs or requests requires existing graphics skills working with a Vector graphics application (e.g. Inkscape). Basic knowledge of CSS can also be helpful for integration. Ask your general development questions on the Design mailing list and the #wikimedia-design IRC channel.

Skins[edit]

Skins allow users to customize the look and feel of MediaWiki. Basic knowledge of CSS and PHP is helpful. Check the project page in Phabricator for more information on each skin and contact information.

System messages and localization/translation problems[edit]

System messages in MediaWiki or its extensions often need small corrections to the English text, but the source text can only be changed in the code by developers, contrary to translations. This has grown into a large backlog of usually very easy fixes (which might be as easy as fixing a typo).

Also, many messages are unclear and require better documentation (see Localisation#Message documentation). Missing documentation can also be added by just editing the /qqq subpage of the message on translatewiki.net, like all translations, but may require some study of the code to understand what a message is for: it's therefore optimal to start understanding the code, and very useful for the translators (who do not have such skills).

Collaboration[edit]

The Collaboration team mainly works on Echo and Flow.

Ask questions regarding Collaboration team projects on the #wikimedia-collaboration IRC channel.

MediaWiki[edit]

MediaWiki is the core software which provides basic wiki functionality. It is complex, written in PHP, and some areas might not have clear maintainership. Ask your general development questions on the wikitech mailing list and the #wikimedia-dev and #mediawiki IRC channels.

Phlogiston[edit]

Phabricator is used by Wikimedia for project management, software bug reporting and feature requests. Phlogiston is a set of SQL, Python, and R scripts to report on Phabricator data, particularly burnup reports and forecasting.

Semantic MediaWiki[edit]

Semantic MediaWiki is one of the biggest and most popular MediaWiki extensions.

Maps[edit]

Maps is a popular MediaWiki extension that allows for, amongst other things, embedding of dynamic maps into wiki pages

And many more…[edit]

Still not enough ideas? There are more fields you can explore - MediaWiki has hundreds of extensions and tools! Check out the complete list of bugs recommended for new contributors:

If you have any trouble or questions, please ask for help via IRC or feel free to contact Andre Klapper or Quim Gil.

İlave[edit]

MediaWiki contributors at work in Bangalore, India.

PHP[edit]

MediaWiki PHP ile yazılmıştır, bu nedenle MediaWiki'nin çekirdeğini kesmek için PHP'ye aşina olmanız gerekir.

Learn PHP
  • PHP öğrenimi — Birçok farklı dilde mevcuttur. Eğer PHP hakkında hiçbir bilgiye sahip değilseniz, ancak diğer nesne tabanlı programlama dillerinde nasıl program yapacağınızı biliyorsanız, PHP öğrenmenizi kolaylaştıracaktır.
  • PHP Programming at Wikibooks.
  • PHP topic at Wikiversity.
PHP kaynakları
Bilmeniz gereken şeyler
  • MediaWiki'deki maintenance/eval.php komut dosyası, MediaWiki nesneleri ve sınıfları yüklenen basit bir PHP yorumlayıcı sağlar.

Veritabanı[edit]

Birçok özellik, bir miktar veritabanı manipülasyonu gerektirir, bu nedenle sıklıkla MySQL/MariaDB'yi tanımanız gerekir.

MySQL/MariaDB'yi öğrenin
MySQL/MariaDB kaynakları
Bilmeniz gereken şeyler
  • Kodunuzu MySQL/MariaDB ile test edin.
    • MediaWiki şu anda birincil veritabanı arka uç olarak MySQL ve MariaDB'yi kullanmaktadır. Ayrıca PostgreSQL ve SQLite gibi diğer DBMS'leri de destekler. Bununla birlikte, hemen hemen tüm geliştiriciler MySQL/MariaDB'yi kullanır ve sonuç olarak düzenli olarak kesilen diğer DB'leri test etmezler. Bu nedenle, özellikle başka bir DB için desteği geliştirmeye çalışmadıkça yamaları test ederken MySQL/MariaDB'yi kullanmanız önerilir. İkinci durumda, MySQL/MariaDB'yi kırmamaya özen gösterin (veya içinde korkunç derecede yetersiz olan soruları yazın), çünkü MySQL/ MariaDB herkesin kullandığı şeydir.

JavaScript ve CSS[edit]

JavaScript and CSS have become omnipresent in front-end code. You don't have to be familiar with JavaScript, jQuery and CSS to work on MediaWiki, but you might need to, depending on what you choose to work on.

JavaScript ve CSS'yi öğrenin
JavaScript ve CSS kaynakları

MediaWiki[edit]

The MediaWiki code base is large and some parts are ugly; don't be overwhelmed by it. İlk başlayınca, küçük bir kod bölgesine kısıtlanmış hatalar veya hatalar düzeltmeyi hedefleyin.

MediaWiki primers and must-reads
MediaWiki kaynakları

Ayrıca bakınız[edit]