فرق ومنتجاتقراءة دقيقتين

أداة checkowners تستنتج ملكية الكود من تاريخ git وتقارنها بملف CODEOWNERS

في أغلب المشاريع البرمجية ملف أو ملفان لا يفتحهما إلا شخص واحد، وإذا غاب هذا الشخص توقف العمل على ذلك الجزء. وتتعامل أداة جديدة مفتوحة المصدر باسم checkowners مع هذه المشكلة من زاوية مختلفة: لا تسأل الفريق من المسؤول عن ماذا، بل تقرأ تاريخ git وتستنتج بنفسها من كتب كل مسار في المشروع، ثم تقارن ما استنتجته بملف CODEOWNERS المحفوظ في المستودع.

وملف CODEOWNERS هو الملف الذي يحدد في GitHub من يُطلب منه مراجعة التغييرات على كل جزء من الكود. والمشكلة أنه يُكتب مرة واحدة، ثم يتغير الفريق ويبقى الملف كما هو.

وتعمل الأداة بعدة أوامر. فأمر drift يُظهر المواضع التي يختلف فيها الملف عن الواقع. وأمر risk يرتب مسارات المشروع بحسب المخاطر، أي الأجزاء التي تتركز معرفتها في شخص واحد، وهو ما يُعرف بالـ bus factor. وأمر suggest يقترح الأنسب لمراجعة تغيير بعينه.

والأداة مكتوبة بلغة Python، وتُثبَّت عبر pip، ورخصتها MIT. وتقرأ تاريخ git محليًا على جهاز المستخدم، ومع خيار offline لا تفتح أي اتصال بالشبكة، وهو ما يهم الفرق التي لا تريد إرسال تاريخ مستودعاتها إلى أي خدمة خارجية.

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

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

المصادر

  1. ملف README للمشروع
  2. مستودع المشروع على GitHub
  3. الحزمة على PyPI
  4. دليل الاستخدام
  5. شرح طريقة الاستنتاج

من عدد الاثنين 22 جمادى الأولى - 2 نوفمبر

أخبار ذات صلة

فرق ومنتجات

تحليل لتاريخ git في مشاريع مفتوحة: كل ساعة تطوير جديد تولّد نحو 3 ساعات صيانة على 6 سنوات

المغزى: الـ sprint المليء بالميزات الجديدة يقترض من المستقبل، والدين لا يظهر في الربع نفسه بل بعد سنوات، حين يصرف الفريق جزءًا متزايدًا من وقته على ما بُني وانتهى.

5 جمادى الأولى - 16 أكتوبر

أخبار الاثنين 22 جمادى الأولى - 2 نوفمبر