حوكمة Scikit-learn وصنع القرار#

الغرض من هذه الوثيقة هو إضفاء الطابع الرسمي على عملية الحوكمة التي يستخدمها مشروع Scikit-learn، لتوضيح كيفية اتخاذ القرارات وكيفية اختلاف عناصر مجتمعنا تتفاعل. تؤسس هذه الوثيقة هيكلًا لصنع القرار يأخذ في الاعتبار التعليقات من جميع أعضاء المجتمع وتسعى جاهدة لإيجاد توافق في الآراء، بينما تجنب أي طريق مسدود.

هذا مشروع مجتمعي قائم على الجدارة وتوافق الآراء. أي شخص لديه يمكن لأي شخص مهتم بالمشروع الانضمام إلى المجتمع والمساهمة في المشروع التصميم والمشاركة في عملية صنع القرار. تصف هذه الوثيقة كيف تتم هذه المشاركة وكيفية البدء في كسب الجدارة داخل مجتمع المشروع.

الأدوار والمسؤوليات#

نحن نفرق بين المساهمين والمساهمين الأساسيين والتقنية لجنة. يتمثل الاختلاف الرئيسي بينهم في حقوق التصويت الخاصة بهم: المساهمين ليس لديهم حقوق تصويت، بينما تتمتع المجموعتان الأخريان بحقوق التصويت، وكذلك أذونات للأدوات ذات الصلة بأدوارهم.

المساهمون#

المساهمون هم أعضاء المجتمع الذين يساهمون بطرق ملموسة في المشروع. يمكن لأي شخص أن يصبح مساهمًا، ويمكن أن تتخذ المساهمات أشكالًا عديدة - ليس فقط الكود - كما هو مفصل في دليل المساهمين. لا توجد عملية لتصبح مساهمًا: بمجرد أن يساهم شخص ما في المشروع بأي شكل من الأشكال، فهم مساهمون.

المساهمون الأساسيون#

يتمتع جميع أعضاء المساهمين الأساسيين بنفس حقوق التصويت والحق في الاقتراح أعضاء جدد في أي من الأدوار المدرجة أدناه. يتم تمثيل عضويتهم كعضو في المنظمة على Scikit-learn منظمة GitHub.

هم أيضًا موضع ترحيب للانضمام إلينا اجتماعات المساهمين الأساسيين الشهرية.

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

المساهمون الأساسيون الذين لم يساهموا في المشروع، المقابلة لـ دورهم، في الأشهر الـ 12 الماضية سيتم سؤالهم عما إذا كانوا يريدون أن يصبحوا فخريين أعضاء ويعلنون عن حقوقهم حتى يصبحوا نشطين مرة أخرى. قائمة الأعضاء، النشطون والفخريون (مع التواريخ التي أصبحوا فيها نشطين) علنيون على موقع Scikit-learn.

تشكل الفرق التالية مجموعة المساهمين الأساسيين:

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

    تحقيقًا لهذه الغاية، لديهم الأذونات المطلوبة على github لوضع العلامات وإغلاقها القضايا. عملهم ضروري لتحسين التواصل في المشروع والحد من ازدحام متعقب المشكلات.

  • فريق التواصل يساعد أعضاء فريق الاتصال في التوعية والتواصل لـ Scikit-learn. هدف الفريق هو تطوير الوعي العام بـ Scikit-learn، من ميزاته واستخدامه، وكذلك العلامات التجارية.

    لهذا، يمكنهم تشغيل حسابات Scikit-learn على مختلف الشبكات الاجتماعية وإنتاج المواد. لديهم أيضًا الحقوق المطلوبة لمدونتنا مستودع وحسابات ومنصات أخرى ذات صلة.

  • فريق التوثيق ينخرط أعضاء فريق التوثيق في توثيق المشروع من بين أمور أخرى. قد يشاركون أيضًا في جوانب أخرى من المشروع، ولكن تعتبر مراجعاتهم لمساهمات التوثيق موثوقة، ويمكن دمج هذه المساهمات.

    تحقيقًا لهذه الغاية، لديهم أذونات لدمج طلبات السحب في Scikit-learn's مستودع.

  • فريق الصيانة المحافظون هم أعضاء المجتمع الذين أظهروا أنهم مكرسون لـ التطوير المستمر للمشروع من خلال المشاركة المستمرة مع المجتمع. لقد أظهروا أنه يمكن الوثوق بهم للحفاظ على Scikit-learn مع رعاية. كونك مسؤول صيانة يسمح للمساهمين بالمضي قدمًا بسهولة أكبر في الأنشطة المتعلقة بالمشروع من خلال منحهم الوصول المباشر إلى المشروع مستودع. من المتوقع أن يقوم المسؤولون عن الصيانة بمراجعة مساهمات الكود، ودمجها طلبات السحب المعتمدة، والإدلاء بأصوات لصالح وضد دمج طلب السحب، والمشاركة في تقرير التغييرات الرئيسية على واجهة برمجة التطبيقات.

اللجنة الفنية#

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

تتكون اللجنة الفنية لـ Scikit-learn من Thomas Fan، Alexandre Gramfort، Olivier Grisel، Adrin Jalali، Andreas Müller، Joel Nothman و Gaël Varoquaux.

عملية صنع القرار#

تتم القرارات المتعلقة بمستقبل المشروع من خلال المناقشة مع الجميع أعضاء المجتمع. تجري جميع مناقشات إدارة المشاريع غير الحساسة مكان على قائمة بريدية للمساهمين في المشروع و متعقب المشكلات. من حين لآخر، تحدث مناقشة حساسة على قائمة خاصة.

يستخدم Scikit-learn عملية "البحث عن توافق في الآراء" لاتخاذ القرارات. المجموعة يحاول إيجاد حل ليس له اعتراضات مفتوحة بين المساهمين الأساسيين. في أي وقت أثناء المناقشة، يمكن لأي مساهم أساسي الدعوة للتصويت، والتي ستختتم بعد شهر واحد من الدعوة للتصويت. يجب أن تكون معظم الأصوات مدعومًا بـ SLEP. إذا لم يكن هناك خيار يمكنه جمع ثلثي الأصوات مصبوب، يتم تصعيد القرار إلى TC، والذي بدوره سيستخدم الإجماع البحث مع خيار بديل للتصويت بالأغلبية البسيطة إذا لم يكن هناك إجماع يمكن العثور عليها في غضون شهر. هذا ما قد نشير إليه فيما بعد باسم "القرار عملية صنع القرار ".

تتم القرارات (بالإضافة إلى إضافة مساهمين أساسيين وعضوية TC على النحو الوارد أعلاه) وفقًا للقواعد التالية:

  • تغييرات التوثيق الطفيفة، مثل إصلاحات الأخطاء المطبعية، أو الإضافة / التصحيح من جملة، ولكن لا يوجد تغيير في صفحة الهبوط scikit-learn.org أو صفحة "حول": يتطلب +1 من قبل مسؤول الصيانة، لا -1 من قبل مسؤول الصيانة (كسول الإجماع)، يحدث على صفحة المشكلة أو طلب السحب. الصيانة من المتوقع أن يمنحوا "وقتًا معقولًا" للآخرين لإبداء رأيهم في طلب السحب إذا لم يكونوا واثقين من أن الآخرين سيوافقون.

  • تغييرات التعليمات البرمجية وتغييرات التوثيق الرئيسية تتطلب +1 من قبل اثنين من المسؤولين عن الصيانة، لا -1 من قبل مسؤول الصيانة (كسول الإجماع)، يحدث على إصدار صفحة طلب السحب.

  • التغييرات على مبادئ واجهة برمجة التطبيقات والتغييرات على التبعيات أو المدعومة الإصدارات تحدث عبر مقترحات التحسين (SLEPs) وتتبع عملية صنع القرار موضحة أعلاه.

  • التغييرات على نموذج الحوكمة تتبع العملية الموضحة في SLEP020.

إذا تم الإدلاء بصوت حق النقض -1 على إجماع كسول، فيمكن للمقترح استئناف المجتمع والمحافظين ويمكن الموافقة على التغيير أو رفضه باستخدام إجراء صنع القرار الموضح أعلاه.

تغييرات نموذج الحوكمة#

تحدث تغييرات نموذج الحوكمة من خلال اقتراح تحسين أو GitHub Pull طلب. سيخضع اقتراح التحسين لـ "عملية صنع القرار" موصوفة في القسم السابق. بدلاً من ذلك، قد يقترح المؤلف تغييرًا مباشرة إلى نموذج الحوكمة مع GitHub Pull Request. لوجستيًا، يمكن للمؤلف فتح طلب سحب مسودة للحصول على تعليقات ومتابعة جديدة طلب سحب منقح للتصويت. بمجرد أن يكون المؤلف راضيًا عن حالة طلب السحب، يمكنهم الدعوة للتصويت على القائمة البريدية العامة. خلال فترة التصويت لمدة شهر واحد، لا يمكن أن يتغير طلب السحب. طلب سحب سيُحسب الموافقة على أنها تصويت إيجابي، و "طلب التغييرات" المراجعة سيُحسب على أنه تصويت سلبي. إذا كان ثلثا الأصوات المدلى بها إيجابية، إذن تم قبول تغيير نموذج الحوكمة.

مقترحات التحسين (SLEPs)#

لجميع الأصوات، يجب أن يكون الاقتراح قد تم نشره ومناقشته قبل التصويت. يجب أن يكون هذا الاقتراح وثيقة موحدة، في شكل "اقتراح تحسين Scikit-Learn" (SLEP)، بدلاً من مناقشة طويلة حول قضية. يجب تقديم SLEP كطلب سحب إلى مقترحات التحسين باستخدام قالب SLEP. SLEP000 يصف العملية بمزيد من التفصيل.