دليل:باي ويكي بوت/غريت

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Pywikibot/Gerrit and the translation is 68% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎čeština • ‎українська • ‎العربية • ‎中文 • ‎日本語

مصطلحات

  • Git - نظام تحكم بالإصدار. بديل SVN.
  • Gerrit - منصة مراجعة نصوص برمجية (https://gerrit.wikimedia.org). بديل مراجعة الكود
  • core - الفرع (الرئيسي) الحقيقي المعروف سابقًا باسم "rewrite".

للمستخدمين

عملاء غت

$ git clone --recursive --branch stable https://gerrit.wikimedia.org/r/pywikibot/core.git

للتحديث:

# بافتراض أننا بالفعل بداخل "النواة"
$ git pull origin stable
$ git submodule update # Updates i18n messages

إن كنت كسولاً وتريد المقدرة على فعل ذلك كله مرةً واحدة، يمكنك تنفيذ:

# بافتراض أنك بالفعل بداخل "النواة":
$ git pull origin stable --recurse-submodules # This updates everything

Note that the repositories are somewhat large (~70MB). If this is an issue, use

$ git clone --recursive --branch stable --depth 3 https://gerrit.wikimedia.org/r/pywikibot/core.git

to just retrieve the latest versions.

استخدام سفن

ولكن انتظر... أنا لا أريد استخدام غت. ألا زال يمكنني استخدام سفن؟ أجل! ولكن لا تنسَ أن تقوم بإعداد وتحديث وحدة i18n الفرعية على حدة.

$ svn co https://github.com/wikimedia/pywikibot/tags/stable
$ cd stable/scripts
$ svn co https://github.com/wikimedia/pywikibot-i18n/trunk i18n

التحديث بسيط مثل هذا

$ svn up stable
$ cd stable/scripts
$ svn up i18n
مستخدمو الويندوز قد يستخدمون أيضًا ملحق الواجهة "تورتويز سفن". يمكنك إيجاد التوثيق هنا.

وصلات

عميلك قد يسألك على وصلة المستودع. الوصلات تتبع الشكل الآتي: https://gerrit.wikimedia.org/r/pywikibot/[repo name].

وبالنسبة لنسخة النواة:

https://gerrit.wikimedia.org/r/pywikibot/core.

توزيعات ليلية

يمكنك تحميل كافة الحزم أو تصفح النص المصدري عبر صفحة التحميل في ويكيميديا فورج


لو كنت بحاجة لمساعدة في إعداد بوت Pywikibot الخاص بك، يرجى زيارة قناة #pywikibot على آي آر سي تواصل أو القائمة البريدية pywikibot@.


للمطورين

كيفية إرسال الإصلاحات...تهيئة غيت أو غريت إلخ.

اقرأ القواعد الإرشادية، ثم اتبع الخطوات في Gerrit/Getting started وشغِّل هذا:

#لتعديل النواة
$ git clone --recursive ssh://USERNAME@gerrit.wikimedia.org:29418/pywikibot/core.git

وبعد تعديل النصوص اتبع الخطوات في Gerrit/Tutorial

ويندوز
المطور الذي يستخدم ويندوز قد يستخدم أيضًا Gerrit/TortoiseGit tutorial لمعلومات أكثر.

مثال (خطوة بخطوة)

نفَّذ الآتي، خطوةً بخطوةً:

  1. ثبت البرنامج:
    1. إن لم يُثبت بالفعل للولوج لسفن، اصنع "مفتاح إس إس إتش" و"حساب مطور" و"أضِف مفتاحك العام" إلى غريت أيضًا إلى ويكيتك
    2. ثبت حزمة "git"
    3. ثبت حزمة "git-review"
      • الحزمة من أوبنستاك [١]، لا الحزمة من فيسبوك
      • أي إصدار مثل 1.12 أو 1.21 لا 1.18
  2. انسخ المستودع وثبته:
    1. انسخ مستودع غيت بجميع وحداته الفرعية باستخدم (مثل svn checkout)
      $ git clone --recursive ssh://USERNAME@gerrit.wikimedia.org:29418/pywikibot/core.git pywikibot-git
      
      وانتظر، فهذه الخطوة ستستغرق بعض الوقت
    2. أدخل المجلد
      $ cd pywikibot-git
      
    3. هيئ إعدادات غيت لهذا المستودع أو المجلد فقط (وليس عام، مثلاً كما في حالة أن تمتلك مستودع زائف لعدة مشاريع)
      $ git config user.email "EMAIL"
      
      و
      $ git config user.name "USERNAME"
      
      لكي تهيئ هذا في النصوص كافة، استخدم وسيط --global
    4. هيئ الطرفية لإخراج رسائل إنجليزية (للعمل كما ينبغي مع مراجعة غيت، انظر غريت/مراجعة-غيت#استكشاف المشاكل)
      $ alias git="LANG=C git"
      
      ويجب عمل هذا كل مرة تبدأ فيها طرفية جديدة، لتهيئة هذا بصورة دائمة، ضع هذا bashrc في ملف التثبيت
    5. ثبت مراجعة غيت لهذا المستودع فقط
      $ git review -s
      
      وأدخل USERNAME الخاص بك مرةً أخرى، وهذه خطوة مهمة - إن نسيتها، طبقًا غريت/الدليل#دفع مجموعة تغييراتك إلى غريت، فإن git review النهائية أدناه (التي تحتاجها لتنفذ تغييراتك للمراجعة) ستفشل - ومع ذلك يمكن حل هذا لاحقًا
  3. اعمل بالمستودع، كتنفيذ إصلاحات للمراجعة:
    1. حوِّل إلى الفرع الرئيسي (قد لا تحتاج هذا)
      $ git checkout master
      
    2. حدِّث الفرع الحالي للمراجعة على الإنترنت (مثل svn update)
      $ git pull
      
    3. create your own local temporary branch for working $ git checkout -b MEANINGFUL_BRANCH_NAME and try to choose a MEANINGFUL_BRANCH_NAME with the help of the branch naming tips available – the branch can be removed when not needed anymore with $ git branch -D MEANINGFUL_BRANCH_NAME
    4. now write some code; see the Git commands add, rm and mv to add, remove or rename files - when you're ready go to the next step
    5. commit your changes to your local temporary branch with
      $ git commit --all
      
      (you can use -a instead of --all and -R instead of --no-rebase) and, as used from svn, enter a meaningful commit message, e.g. a short description of your code changes
    6. optionally check your changes by looking at the committed data
      $ git show HEAD
      
      and make sure that you are sending what you wanted to
    7. send the data to the online repository, resp. gerrit for review (like svn commit)
      $ git review
      
    8. finally go to Gerrit, click on your change and write a reviewer name in the input box near the "Add Reviewer" button
  4. optionally/opt-in further settings:

Phabricator

Patches will be linked to a فبريكاتور task automatically if you mention 'Bug: T12345' in a line just before 'Change-Id: ....'. See Gerrit/Commit message guidelines for more information.

Problems, issues and work-a-rounds

jenkins-bot messages

https://integration.wikimedia.org/ci/job/pywikibot-core-tox-flake8/2591/console : FAILURE in ?s (non-voting)

The patchset committed did not pass flake8 code style checks. That says nothing about the functionality of the code but about the syntax and style.

https://integration.wikimedia.org/ci/job/pywikibot-core-tox-flake8-docstrings-mandatory/560/console : FAILURE in ?s (non-voting)

The patchset committed did not pass mandatory pep257 code style checks. That says nothing about the functionality of the code but about the inline documentation.

https://integration.wikimedia.org/ci/job/pywikibot-core-tox-nose/1448/console : FAILURE in ?s (non-voting)

The patchset committed did not pass pre-merge test suite. That indicates the code fails the basic tests, but a pass says nothing about the functionality of the modified code. There is a more extensive set of tests which developers should run pre-submission, and will run post merge.

This change could not be automatically merged with the current state of the repository. Please rebase your change and upload a new patchset.

The pachset cannot be merged automatically into current HEAD. Please consider Gerrit/Advanced usage#Build failed due to merge conflict for a solution.

More info about this can be found in Gerrit/Tutorial#How to submit a patch and Gerrit/Tutorial#git review complains about multiple commits.