Product SiteDocumentation Site

15.4. كيف تصبح مشرف حزم

15.4.1. تعلم إنشاء الحزم

Creating a quality Debian package is not always a simple task, and becoming a package maintainer takes some learning, both with theory and practice. It is not a simple matter of building and installing software; rather, the bulk of the complexity comes from understanding the problems and conflicts, and more generally the interactions, with the myriad of other packages available.

15.4.1.1. القواعد

A Debian package must comply with the precise rules compiled in the Debian policy, and each package maintainer must know them. There is no requirement to know them by heart, but rather to know they exist and to refer to them whenever a choice presents a non-trivial alternative. Every Debian maintainer has made mistakes by not knowing about a rule, but this is not a huge problem as long as the error gets fixed when a user reports it as a bug report (which tends to happen fairly soon thanks to advanced users). The Standards-Version field in debian/control specifies the version of the Debian policy with which a package complies. Maintainers should comply to the latest version of the Debian policy.

15.4.1.2. الروتين

ليس دبيان مجموعة بسيطة من الحزم المفردة. تشكل جهود كل واحد جزءاً من مشروع تعاوني؛ ولذلك يجب أن تعرف كيف يعمل مشروع دبيان ككل إذا أردت أن تصبح مطور دبيان. سيتفاعل كل مطور دبيان ‒عاجلاً أم آجلاً‒ مع الآخرين. يُلخّص Debian Developer's Reference (في الحزمة developers-reference) ما يجب أن يعرفه كل مطور حتى يتفاعل بسلاسة مع الفرق المختلفة داخل المشروع، ويستفيد لأقصى حد ممكن من الموارد المتاحة. كما يعدد هذا المرجع مجموعة من المهام التي يتوقع أن ينجزها المطور.

15.4.1.3. الأدوات

هناك أدوات عديدة تساعد مشرفي الحزم على إنجاز أعمالهم. يمرّ هذا القسم عليها سريعاً، لكن لا يتفصل فيها كثيراً، لأن هناك وثائق شاملة لكل منها.
15.4.1.3.1. برنامج lintian
This tool is one of the most important: it is the Debian package checker. It is based on a large array of tests created from the Debian policy, and detects quickly and automatically many errors that can then be fixed before packages are released.
هذه الأداة للمساعدة فقط، وأحياناً تخطئ (مثلاً، سياسة دبيان تتغير مع الوقت، ولذلك قد يتخلف lintian أحياناً). كما أنها ليست شاملة: فإذا لم يظهر Lintain أي أخطاء فلا يجب أن تفهم هذا على أنه برهان على أن الحزمة مثالية؛ بل هي تتفادى أكثر الأخطاء شيوعاً في أفضل الحالات.
15.4.1.3.2. برنامج piuparts
هذه أداة مهمة أيضاً: تؤتمت هذه الأداة تثبيت وتحديث وإزالة وتطهير الحزمة (في بيئة معزولة)، وتتحقق من عدم ظهور أخطاء في أي واحدة من هذه العمليات. يمكنها أن تساعدك على اكتشاف الاعتماديات المفقودة، كما تكتشف بقاء بعض الملفات بالخطأ بعد تطهير الحزمة.
15.4.1.3.3. devscripts
تحوي الحزمة devscripts العديد من البرامج التي تساعد في نواحي كثيرة من عمل مطوري دبيان:
  • يسمح debuild بتوليد حزمة (باستخدام dpkg-buildpackage) وتشغيل lintian للتحقق من توافقها مع سياسة دبيان بعد ذلك.
  • يُنظّف debclean الحزمة المصدرية بعد توليد الحزمة الثنائية.
  • يسمح dch بتحرير الملف debian/changelog في الحزمة المصدرية بسرعة وسهولة.
  • يتحقق uscan من إصدار المؤلف المنبعي نسخة جديدة من البرنامج؛ هذا يحتاج لملف debian/watch يحدد موقع هذه الإصدارات الجديدة.
  • يسمح debi بتثبيت حزمة دبيان المولدة (من خلال dpkg -i) دون الحاجة لكتابة اسمها الكامل ومسارها.
  • كما يسمح debc بأسلوب مشابه بفحص محتويات الحزمة المولدة (باستخدام dpkg -c)، دون الحاجة لكتابة اسمها الكامل ومسارها.
  • يتحكم bts بنظام تتبع العلل من سطر الأوامر؛ حيث يولّد هذا البرنامج الرسائل البريدية المناسبة آلياً.
  • يرفع debrelease الحزمة المولدة إلى مخدم بعيد، دون الحاجة لكتابة الاسم الكامل والمسار لملف .changes الخاص بها.
  • يوقّع debsign ملفات *.dsc و *.changes.
  • يؤتمت uupdate إنشاء مراجعة جديدة للحزمة عندما تصدر نسخة منبعية (upstream version) جديدة.
15.4.1.3.4. debhelper و dh-make
Debhelper هو مجموعة من السكربتات التي تسهّل إنشاء حزم متوافقة مع السياسة؛ تستدعى هذه السكربتات من debian/rules. لقد اعتمد Debhelper على نطاق واسع ضمن دبيان، ويشهد على ذلك أنه معظم حزم دبيان الرسمية تستخدمه. تحوي أسماء كل الأوامر التي يحويها البادئة dh_.
ينشئ السكربت dh_make (من الحزمة dh-make) الملفات اللازمة لتوليد حزمة دبيان في مجلد يحوي مصادر أحد البرامج. كما يمكنك أن تخمن من اسم البرنامج، سوف تستخدم الملفات المولدة debhelper افتراضياً.
15.4.1.3.5. autopkgtest
autopkgtest runs tests on binary packages, using the tests supplied in the source package.
15.4.1.3.6. reprotest
reprotest builds the same source code twice in different environments, and then checks the binaries produced by each build for differences. If any are found, then diffoscope (if unavailable, diff) is used to display them in detail for later analysis.
15.4.1.3.7. dupload وdput
يسمح الأمران dupload وdput برفع حزمة دبيان إلى مخدم (قد يكون مخدماً بعيداً). يسمح هذا للمطورين بنشر حزمهم على مخدم دبيان الرئيسي (ftp-master.debian.org) بحيث يمكن دمجها في الأرشيف وتوزيعها على المرايا. يأخذ هذا الأمران ملف *.changes كمتغير، وتستنتج بقية الملفات المطلوبة من محتوياته.

15.4.2. عملية القبول

أن تصبح ”مطور دبيان“ ليس قضية إدارية بسيطة. تشمل العملية خطوات عديدة، وهي عملية تأهيل بقدر ما هي عملية انضمام. في جميع الحالات، العملية رسمية وموثقة، ويستطيع أي واحد تتبع تقدمه على الموقع المخصص للوافدين الجدد.

15.4.2.1. المتطلبات الأولية

يتوقع من كافة المرشحين أن يكون لديهم إلمام باللغة الإنكليزية على الأقل. هذا مطلوب في المراحل كلها: في التواصل الأولي مع الممتحن طبعاً، لكن ستحتاج لذلك لاحقاً أيضاً، لأن الإنكليزية هي اللغة المفضلة لمعظم الوثائق؛ كما أن مستخدمي الحزم سيتواصلون معك بالإنكليزية عند الإبلاغ عن العلل، وسيتوقعون منك الرد بالإنكليزية أيضاً.
أما المتطلبات الأخرى فهي تتعلق بالدافع. لا معنى لأن تصبح مطور دبيان إلا إذا كنت تعرف أن اهتمامك بدبيان سيستمر لشهور عديدة. عملية القبول نفسها قد تستغرق عدة شهور، ويحتاج دبيان مطورين على المدى الطويل؛ فكل حزمة تحتاج صيانة دائمة، وليس فقط عند إنشائها أول مرة.

15.4.2.2. التسجيل

أولى الخطوات (الحقيقية) هي العثور على كفيل أو نصير (advocate)؛ أي العثور على مطور دبيان رسمي مستعد للإدلاء بأنه يؤمن أن قبول فلان سيفيد مشروع دبيان. هذا يعني ضمنياً عادة أن المرشح كان نشطاً من قبل ضمن المجتمع، وأن أعماله كانت قيّمة. إذا كان المرشّح خجولاً ولم تكن أعماله منشورة على الملأ، فيمكنه إقناع أحد مطوري دبيان بدعمه عبر عرض أعماله بشكل خاص.
في الوقت نفسه، يجب أن يولّد المرشح زوج مفاتيح RSA عام/خاص باستخدام GnuPG، الذي يجب أن يوقّعه اثنين من مطوري دبيان الرسميين على الأقل. يضمن التوقيع صحة الاسم المكتوب في المفتاح. في الواقع، يجب أن يبرز كل مشارك في تجمعات توقيع المفاتيح هوية رسمية (عادة بطاقة شخصية أو جواز سفر) مع معرّفات مفاتيحه. تؤكد هذه الخطوة الرابطة بينه وبين مفاتيحه. بالتالي، تحتاج عملية التوقيع هذه للقاء المطورين وجهاً لوجه. إذا لم تقابل أي مطور دبيان من قبل في أحد مؤتمرات البرمجيات الحرة العامة، فيمكنك البحث مباشرة عن المطورين الذي يعيشون بالقرب منك باستخدام القائمة في هذه الصفحة كنقطة انطلاق.
بعد أن يصادق على تسجيلك في nm.debian.org أحد الكفلاء، سيوكل أحد Application Manager (مديري التطبيقات) بمتابعة المرشَّح. سيقود مدير التطبيقات بعدها العملية خلال عدة مراحل وفحوصات محددة مسبقاً.
أولى الفحوصات هي التحقق من الهوية. إذا كان لديك مفتاحاً موقعاً من اثنين من مطوري دبيان، فهذه الخطوة سهلة؛ وإلا فسوف يحاول مدير التطبيقات أن يرشدك في عملية البحث عن مطوري دبيان قريبين لترتيب لقاء وتوقيع مفاتيح معهم.

15.4.2.3. قبول المبادئ

بعد هذه الرسميات الإدارية تأتي التقييمات الفلسفية. الفكرة هي التأكد أن المرشّح يفهم العقد الاجتماعي ومبادئ البرمجيات الحرة ويقبل بها. لا يمكن الانضمام إلى دبيان إلا إذا كان المرء يحمل القيم التي توحد المطورين الحاليين، كما هي موضحة في النصوص المؤسِّسة (وملخصة في فصل 1, مشروع دبيان).
بالإضافة إلى ذلك، يُتوقَّع من كل مرشَح ينوي الانضمام لصفوف دبيان أن يعرف طريقة العمل في المشروع، وكيفية التفاعل بشكل مناسب لحل المشاكل التي ستواجهه لا ريب مع مرور الوقت. كل هذه المعلومات موثّقة عموماً في الكتيّبات التي تستهدف المشرفين الجدد، وفي Debian developer reference (مرجع مطوري دبيان). يجب أن تكفي قراءة هذا المستند بتمعن للإجابة عن جميع أسئلة الفاحص. إذا لم تكن الأجوبة مرضية، سوف يخبر المرشّح بذلك. بعدها سيتعيّن عليه قراءة الوثائق المناسبة (ثانية) قبل المحاولة ثانية. إذا لم تكن الإجابة المناسبة عن السؤال موجودة في أحد الوثائق السابقة، يستطيع المرشّح عادة معرفة الجواب من الخبرة العملية في دبيان، أو ربما بالنقاش مع بعض مطوري دبيان الآخرين. تضمن هذه الآلية أن ينخرط المرشّح في دبيان نوعاً ما قبل أن يصبح جزءاً رسمياً منه. هذه السياسة مقصودة، وهي تجعل المرشحين الذين يقبلون في المشروع من خلالها يندمجون مع الآخرين في النهاية كقطعة من قطع أحجية تركيب الصور، أحجية تمتد إلى ما لا نهاية.
تُعرّف هذه الخطوة باسم Philosophy & Procedures (الفلسفة والروتين، أو P&P اختصاراً) حسب لغة المطورين المسؤولين عن سير عملية قبول الأعضاء الجدد.

15.4.2.4. التحقق من المهارات

يجب أن يكون كل طلب يقدم على منصب مطور دبيان الرسمي مبرراً. يجب أن يوضح المرشّح مشروعية طلبه لعضوية في المشروع، وأن حصوله عليها يسهل عمله في مساعدة دبيان حتى ينضم للمشروع. أكثر المبررات شيوعاً هو أن الحصول على رتبة مطور دبيان يسهل صيانة إحدى حزم دبيان، لكنه ليس الوحيد. بعض المطورين ينضمون للمشروع للمساهمة في النقل إلى معمارية معينة، وغيرهم يريدون تحسين الوثائق، وغيرها من الأسباب.
هذه الخطوة هي فرصة المرشّح ليبيّن ماذا يريد أن يفعل ضمن مشروع دبيان ويظهر الأعمال التي أنجزها فعلاً في هذا الصدد. دبيان مشروع عملي/براغماتي (pragmatic) ولا يقبل الحديث عن شيء إذا لم توافق الأفعال الكلمات. عموماً، عندما يكون الدور المقصود في المشروع متعلقاً بصيانة حزمة ما، فيجب التحقق تقنياً من نسخة أولية من هذه الحزمة الجديدة وأن يرفعها أحد الكفلاء من مطوري دبيان السابقين إلى مخدمات دبيان.
أخيراً، يفحص الممتحن مهارات المرشّح التقنية (في التحزيم) في امتحان شامل. الإجابات الخاطئة ممنوعة، لكن وقت الإجابة غير محدود. كل الوثائق متاحة ويسمح بإجراء عدة محاولات إذا لم تكن الإجابات جيدة في المرة الأولى. ليس الهدف من هذه الخطوة إقصاء المرشّح، ولكن الهدف هو ضمان أن جميع المساهمين الجدد يتمتعون ببعض المعرفة اليسيرة على الأقل.
تُعرَف هذه المرحلة باسم Tasks & Skills (المهام والمهارات، أو T&S اختصاراً) حسب مصطلحات الفاحصين.

15.4.2.5. القبول النهائي

في الخطوة الأخيرة، يراجع أحد مديري حسابات دبيان (Debian Account Manager، أو DAM) العملية كلها. سيراجع مدير الحسابات جميع معلومات المرشّح التي جمعها الممتحن، ويقرر فتح حساب على مخدمات دبيان أو عدم فتحه. في حال الحاجة لمزيد من المعلومات، قد يؤخر إنشاء الحساب. الرفض نادر جداً إذا تابع الفاحص العملية بشكل جيد، لكنه يحدث أحياناً. الرفض ليس قاطعاً أبداً، ويسمح للمرشّح بالمحاولة ثانية في وقت لاحق.
قرار مدير الحسابات نهائي وغير قابل للنقض (غالباً)، لذلك كان الأشخاص الموكلين بهذه المهمة يتعرضون للكثير من النقد في الماضي.