عن المشروع
يقوم ripr بإجراء تحليل استاتيكي لتعرض الطفرات لتحديد الفجوات حيث تصل الاختبارات إلى سلوك متغير ولكنها تفتقر إلى تأكيدات مركزة لرصد الأعطال. تقوم الأداة بقراءة فروقات PR وتوجيه إصلاحات مستهدفة مخصصة للاختبارات فقط، سواء كان ذلك للبشر أو لوكلاء البرمجة.
القدرات الرئيسية:
- تحديد الفجوات: السلوك المتغير الذي تكون اختباراته ضعيفة جداً لملاحظة العطل، مع منح كل فجوة معرفاً معيارياً ثابتاً.
- إنشاء بطاقات الإصلاح: تحديد ما يجب تأكيده، وأين، ولماذا يعتبر الإثبات الحالي ضعيفاً.
- إنتاج حزم محدودة: أوامر عمل مخصصة للاختبارات فقط تحدد الملفات المسموح بها، والملفات المحظورة، وشروط التوقف.
- توفير أوامر التحقق (مثل cargo test و pytest) لفحص الإصلاحات.
- تسجيل إيصالات قبل/بعد لإثبات ما إذا كانت الفجوات قد أغلقت بالفعل.
تعمل الأداة من خلال حلقة (فجوة ← إصلاح ← تحقق). يقوم الأمر الأساسي `ripr check` بتحليل التغييرات وإرجاع مسار بداية محدود مع فجوات مختارة ومؤشرات أدلة. وتدير عملية إصلاح ثنائية المرحلة (`ripr agent repair --phase before/after`) تدفق الأدلة، بينما يتولى الإنسان أو الوكيل الخارجي تعديل الاختبار.
يضع ripr نفسه بين التغطية (هل تم تشغيل الأسطر؟) واختبار الطفرات (هل فشلت الاختبارات مع وجود طفرات حقيقية؟). الأداة استاتيكية واستشارية؛ فهي لا تشغل الطفرات، ولا تبلغ عن نتائج القتل/البقاء، ولا تستبدل التغطية، ولا تدعي كفاية الاختبارات.
دعم اللغات: إصلاح الفجوات في Rust/Cargo متاح في نسخة alpha قابلة للاستخدام. توجيه الإصلاح في Python pytest/unittest متاح في نسخة alpha قابلة للاستخدام. TypeScript في مرحلة معاينة اختيارية. Perl في مرحلة معاينة/استشارية.
أسطح التوزيع: واجهة سطر الأوامر CLI (عبر cargo install)، إضافة VS Code، Open VSX، والتكامل مع CI عبر `ripr init --ci github`. تتطلب Rust ≥1.95 و Git، ويجب تشغيلها داخل مستودع Git. مرخصة بموجب MIT OR Apache-2.0.
هذا المستودع (ripr-swarm) هو الجذع التطويري لطلبات السحب (PRs) الموثوقة من الوكلاء والمطورين؛ بينما يعد مستودع EffortlessMetrics/ripr هو المرجع الرسمي للإصدارات والتوزيع.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.