خاص بالمطورين الجدد
هذه الصفحة عبارة عن صفحة إرشاد بسيطة وموجهة لمطوري ويكيميديا الجُدد. هي جزء من مُبادرة تأهيل المطورين الجُدد.
لخياراتٍ أُخرى للانضمام، طالع كيفية المساهمة .
مرحبًا!
هل ترغب بالعمل على كود ويكيميديا وتحتاج إلى أفكار من أين تبدأ؟
يُرحب مجتمع ويكيميديا التقني دائمًا بالمساهمين الجُدد في مشروعنا.
كُن جزءًا من المجتمع العالمي وساعد في جعل الوصول إلى المعرفة المجانية أسهل للجميع!
المساهمة في ويكيميديا هي عمليةٌ من أربع خطوات:
- قم باختيار مشروع برمجي
- قم باعداد بيئة التطوير
- قم بإختيار،و برمجة المهمة (برْمِجْ وأختبر البرمجية)
- قم بارسال البرمجية المعدلة
- Choose and solve a task (write and test your code)
- Submit your code changes
بعض الأساسيات المهمة
يمكنك تجاوز هذا القسم، اذا كنت معتادًا على البرمجيات مفتوحة المصدر
Wikimedia لديها العديد من المشاريع ذات المصدر المفتوح في مجالات مختلفة. راجع هذه العروض اذا كنت ترغب بالحصول على نبذة تعريفية.
يتمتع مشرفو المشاريع البرمجية على حرية اختيار البنية الأساسية التي يفضلونها. بشكل عام جميع المشاريع البرمجية لديها
- a task tracking tool where software bugs and enhancement requests are reported, managed and discussed. Examples are Wikimedia Phabricator, GitHub, or Sourceforge.
- a code repository where the source code can be "checked out" to everybody. Examples are Wikimedia Git/Gerrit, GitHub, or Sourceforge.
- a code review tool where proposed code changes (so-called patches) get discussed and improved. Examples are Wikimedia Git/Gerrit, GitHub, or Sourceforge. Once your proposed patch is good and is merged into the code repository, your code changes will become available to everybody. (You could read more about good practices for code review here.)
- general places for discussion of the software project and/or for receiving help and support. Those places can be mailing lists or IRC chat channels or wiki pages or other places. The exact places depend on each project. You could also contact specific mentors via "Email this user" on their user pages, but note that "questions asked in private don't help others".
At any point, if you run into problems or need help, please ask. If you want to ask good questions in the right places, we recommend you read the section "Feedback, questions and support".
قم بإختيار مشروع برمجي
هذه هي الطريقة الموصى بها للبدء. اختر أحد المشاريع التالية واتبع وثائق المشروع لإعداد بيئة التطوير الخاصة بك ، واختر مهمة للعمل عليها ، وحل المهمة ، وأرسل تغييرات التعليمات البرمجية للمراجعة:
تطبيق سطح مكتب لمكافحة التخريب لمشاريع ويكيميديا
- المهارات المطلوبة: C++ with Qt
- تواصل معنا Mailing list / Chat in #huggle تواصل on irc.freenode.net
- أحصل على الكود المصدري: GitHub
- Read the user and programmer documentation
- تحقق من المهام الموصى بها للعمل عليها: Phabricator
- Mentor(s): Peter Bena
An offline reader for Wikipedia web content
- المهارات المطلوبة: Java (Android app), Swift (iOS app)
- Get in touch: Mailing list / Chat in #kiwix تواصل on irc.freenode.net
- أحصل على الكود المصدري: GitHub
- Read the general documentation and the README.md file of the corresponding project
- Check the recommended tasks to work on: Android, iOS, JS on GitHub
- Mentor(s): Matthieu Gauthier, Emmanuel Engelhart, Stephane Coillet-Matillon
Commons App for Android
An app for Android devices to upload your pictures to Wikimedia Commons
- Skills required: Java
- Get in touch: Google Groups
- أحصل على الكود المصدري: GitHub
- Read the documentation
- Check the recommended tasks to work on: GitHub
- Mentor(s): Josephine Lim
Wiki Education Dashboard
A web application that supports Wikipedia education assignments, provides data and course management for instructors and students
- Skills required: Ruby, JavaScript
- Get in touch: #wikimedia-ed تواصل on irc.freenode.net
- أحصل على الكود المصدري: GitHub
- Read the documentation
- Check the recommended tasks to work on: GitHub
- Mentor(s): Sage Ross
ORES
A web service and API that provides machine learning as a service for Wikimedia projects. Machine predictions are used to catch vandalism, measure article quality, and support other wiki work.
- Skills required:
- Translation and language assets: Speak and write any non-English Language
- Front-end development: HTML, JavaScript, CSS
- Back-end development: Python, Redis, Postgres
- Modeling: Python, Scikit-learn
- Extension: PHP (mediawiki), MariaDB
- Get in touch: Mailing list / Chat in #wikimedia-ai تواصل on irc.freenode.net
- أحصل على الكود المصدري: wiki-ai/ores, wiki-ai/revscoring, wiki-ai/wikilabels
- Read the documentation.
- Check the recommended tasks to work on: Phabricator
- Mentor(s): Aaron Halfaker & Adam Wight
Library Card platform
A tool allowing Wikimedia contributors to apply for free access to paywalled resources.
- Skills required: Python, Django
- Get in touch: #wikipedia-library تواصل on irc.freenode.net / wikipedialibrary wikimedia.org
- أحصل على الكود المصدري: GitHub
- Read the documentation
- Check the recommended tasks to work on: Phabricator
- Mentor(s): Sam Walton
Pywikibot
A Python library and collection of scripts that automate work on MediaWiki sites.
- Skills required: Python
- Get in touch: #pywikibot تواصل on irc.freenode.net / Mailing list
- أحصل على الكود المصدري: إستعمل منصة git للحصول على الكود المصدري
- Read the documentation
- Check the recommended tasks to work on: Phabricator
- Mentor(s): Dvorapa
AfC Helper Script
A user script to review draft articles on Wikipedia.
- Skills required: JavaScript, CSS, HTML
- Get in touch: #enwiki-afch at https://wikimedia.zulipchat.com (info)
- Get the source code: GitHub
- Read the documentation
- Check the recommended tasks to work on: GitHub
- Mentor(s): Enterprisey
VideoCutTool
A tool to edit the videos on Wikimedia Commons.
- Skills required: React JS, Node Js.
- Get in touch: #VideoCutTool in Zulip
- Get the source code: See link in description in Phabricator
- Read the documentation
- Check the recommended tasks to work on: Phabricator
- Mentor(s): Gopa Vasanth
Are you a maintainer and want your project to be included in the list of software projects above? Find out more and join!
Outreach programs and single tasks
Apart from the recommended software projects above, there are more ways to choose a project or task to work on:
Outreach programs
Good first tasks
However, you are more on your own here: We cannot guarantee that mentors are available or that your proposed patches will receive fast reviews.
Looking for additional resources?
- How to become a MediaWiki hacker: For potential new developers who want to specifically work on MediaWiki core or MediaWiki extensions.
- Developer hub: Resources to more documentation and information for established Wikimedia developers.
- There are also several email lists for discussion of Wikimedia software.
- Wikimedia tutorials: An index of tutorials that feature various languages, APIs, and frameworks in the Wikimedia technology stack.
تريد المساهمة بشيء أخر ؟
- How to contribute lists many more ways to contribute, also in non-technical areas.
Some general communication tips
- ابحث في الأمر قبل أي شيء: حينما تقرر العمل عل مهمة ما، نتوقع منك أن تجري بعض الأبحاث الأساسية بنفسك قبل أي شيء: ألق نظرة على الكود البرمجي وحاول استيعاب ما هو المفترض أن ينفذه واقرأ أعمال التوثيق ذات الصلة وحاول البحث عن المكان أو الأماكن التي يحتمل أن يتطلب الأمر منك أن تغير الكود البرمجي فيها. للاطلاع على نظرة عامة على الموضوع، يرجى قراءة مبادئ يجب أن تعلمها.
- انظر إلى وسوم المشروع المبينة في أي مهمة على Phabricator في الشريط الجانبي كي تعرف أي من مستودعات الكود المصدري تتناوله هذه المهمة.
- اطرح أسئلة وناقش الأمر في أفضل مكان:
- ناقش في مهام فبريكاتور أسئلة محددة فقط تتناول الموضوع الذي تتناوله مهمة فبريكاتور ذاتها. إن الأسئلة الفنية العمومية (مثل كيفية إنشاء بيئة تطوير برمجي أو مشاكل على غيريت) خارج الموضوع في مهام فبريكاتور.
- فيما يخص الأسئلة الفنية العمومية، اطرحها على مجتمع ويكيميديا الشاسع واستخدم قنوات عمومية مثل آي آر سي أو القوائم البريدية. (لو كنت تشارك في برنامج تواصل، يمكنك أيضا استخدام تدفق الدعم الفني Zulip.)
- لو كنت تشارك في برنامج تواصل، سيكون Zulip مخصص لنقاش الأسئلة المتعلقة ببرامج التواصل ذاتها.
- اطرح أسئلة سديدة: «هل يمكنك أن تقد ملي المزيد من المعلومات؟» أو «أرجو أن ترشدني» أو «أرجو أن تخبرني كيف ابدأ» ليست تعليقات ملائمة يمكنك البدء بها: كلما كان سؤالك دقيقا ومحددا، زاد احتمال إجابة شخص ما عن سريعا. إن لم تكن تعلم على الإطلاق كيفية تصويب المشكلة، ربما هذه المشكلة ليست ملائمة لك (حتى الآن). يرجى التفكير جديا في البحث عن مشكلة أيسر من هذه في الوقت الحالي.
- تقديم سياق: حينما تطرح سؤال، بيّن ما الذي ترغب في تحقيقه وما الذي حاولت تنفيذه وتعلم عن المشكلة حتى الآن، حتى يمكن للآخرين المساعدة على المستوى المناسب. كن دقيقا – على سبيل المثال، انسخ أوامرك وألصقها وكذلك ما نتج عنها (إن لم يكن ذلك طويلا) بدلا من إعادة صياغة الأمر بأسلوبك أنت. ينتج عن هذا تجنب سوء الفهم. استخدم عناوين محددة وسطور عنوان واضحة («مسودة اقتراح» أو «أحتاج للمساعدة» ليست محددة أو واضحة).
- استخدم inclusive language: لا تفترض هوية أي شخص النوعية («رفاق» أو «سيدتي» أو «سيدي»). استخدم اسم الشخص ذاته عوضًا عن ذلك.
- اطرح سؤالك على العامة: لا ترسل رسائل خصوصية لو كان موضوع النقاش غير سري. الرسائل الخصوصية لا تقدم العون للآخرين.
- تحلى بالصبر حينما تطلب من الآخرين التعليق أو الإدلاء برأيهم، خاصة أثناء أيام نهاية الأسبوع والعطلات.
- على آي آر سي، لا تسأل إن كان يمكنك أن تسأل، اطرح سؤالك مباشرة: أغلب الأسئلة يمكن لأعضاء المجتمع الآخرين الإجابة عنها أيضا لو طرحتها على قناة آي آر سي. إن لم يجب عن سؤالك أحد، يرجى المحاولة مرة أخرى في وقت مختلف؛ لا تستسلم للإحباط.
- لا تطلب من الآخرين مراجعة الكود على الفور في رسالة منفصلة. يتلقى الأفراد إشعارات من غيريت وفبريكاتور.
- حافظ على يسر قراءة النقاش: حينما ترسل رد على Zulip أو مهام فبريكاتور أو على قوائم بريدية، يرجى تجنب اقتباس تعليق سابق كاملا إن لم يكن الأمر ضروريا. قدم سياق كافي وحافظ على يسر قراءة سلسلة النقاش.
- اتبع مدونة قواعد السلوك المخصصة لمساحات ويكيميديا الفنية.
- حينما تعتزم العمل على مهمة فبريكاتور:
- لست بحاجة لطلب الإذن: عادة لا يوجد سبب يدفعك أن تسأل إن كان يمكنك العمل على شيء أو إن كان ثمة شخص يمكنه أن يخصص مهمة إليك. لا توجد سلطات تخصص المهام أو أشخاص يجب أن تطلب الإذن منهم.
- لا داع للإعلان عن خططك قبل الشروع في العمل على مهمة إلا أن هذا الأمر محل ترحاب. من الجيد أن تعلن أنك تعمل على شيء ما قرب نهاية اقتراح رقعة برمجية للمهمة، حتى لا يتولى آخرين عمل نفس الشيء: لو لم يخصص الأمر لأي شخص آخر، خصص المهمة لنفسك عن طريق القائمة المنسدلة Add Action… → Assign/Claim.
- المهام ذات الرقاع البرمجية القائمة:
- لو كانت مهمة ما تحتوي على رقعة برمجية أضيفت مؤخرا على غيريت، اختر مهمة أخرى كي تعكف عليها – تجنب تكرار ذات العمل.
- لو لم تدمج رقعة برمجية سابقة في غيريت أو لم تشهد أي تغيير لمدة طويلة، يمكنك أيضا تحسين هذه الرقعة القائمة، استنادا إلى الآراء والملاحظات لموجودة في غيريت وفي المهمة.
- حينما تتغير خططك أو اهتماماتك: إن لم تعد تعمل على مهمة ما، يرجى رفع اسمك من المخصصة لهم المهمة، حتى يعلم الآخرين أنه بوسعهم العمل على المهمة وألا يتوقعوا أنك لا زلت تعمل عليها.
حينما تتواصل مع الآخرين تواصلا واضحا ومبكرا سوف تجذب انتباه أفراد المجتمع وتحصل على آرائهم وملاحظاتهم ومساعدتهم كذلك.