"Firehose" عبارة عن حزمة Python مخصصة لإدارة النتائج من أدوات تحليل الكود (EG التحذيرات البرمجيات ، التحليل الثابت ، المبيدات ، إلخ).
ويوفر حاليًا محلات لإخراج GCC و Clang-Analyzer و CppCheck و FindBugs. تقوم هذه المحللات بتحويل النتائج إلى نموذج بيانات شائع لكائنات Python ، مع طرق مستديرة الخسارة من خلال تنسيق XML المقدم. هناك أيضا ما يعادل JSON.
Firehose هو برنامج مجاني ، مرخص له بموجب LGPLV2.1 أو (في خيارك) أي إصدار لاحق.
يتطلب Python 2.7 أو 3.2 فصاعدًا ، وتم اختباره بنجاح باستخدام Pypy.
وهو حاليا من جودة ألفا.
لم يتم تعيين تنسيقات API وتسلسل التسلسل في الحجر (ونحن حريصون على سماع التعليقات قبل أن نقفل الأمور أكثر).
الدافع: http://lists.fedoraproject.org/pipermail/devel/2012-december/175232.html
أرغب في تفكيك النتائج من تحليل الكود الثابت إلى قاعدة بيانات ، مما يعني إكراه جميع النتائج في تنسيق تبادل شائع ، اسم "Firehose" (والذي يمكن أن يكون أيضًا اسم قاعدة البيانات).
جنبا إلى جنب مع واجهة برمجة تطبيقات Python بسيطة للعمل مع التنسيق كمجموعة من كائنات Python (إنشاء ، اكتب إلى XML ، اقرأ من XML ، التعديل ، إلخ)
لقد فكرت في البداية في استخدام JSON ، لكنني ذهبت مع XML لأنه إذا كانت الأدوات المتعددة ستنبعث منها ، فمن الجيد أن تكون قادرًا على التحقق من صحة الأشياء ضد المخطط (انظر Firehose.rng ، مخطط الاسترخاء-NG).
يمكن أن تتضمن الإشارات إلى ملفات المصدر بالتنسيق تجزئة من الملف المصدر نفسه (على سبيل المثال SHA-1) بحيث يمكنك تحديد ملف المصدر الذي كنت تتحدث عنه بشكل فريد.
سيتم تفكيك هذا التنسيق في DB لواجهة المستخدم على الويب ، ويمكن أن يتم القيام بأشياء أخرى لها دون الحاجة إلى خادم: على سبيل المثال:
- قم بتحويله إلى النموذج النصي لخطأ في تجميع GCC ، بحيث يمكن لـ EMACs تحليله وتأخذك إلى المصدر
- يتم تحويلها إلى تقرير HTML بسيط محليًا على محطة العمل الخاصة بك
مشاريع باستخدام Hipphose:
- يمكن لتحليل وهمية مع إعادة بناء مصدر RPM ، والتقاط نتائج 4 أدوات تحليل رمز مختلفة في تنسيق Firehose (جنبا إلى جنب مع جميع ملفات المصدر التي تم ذكرها في أي تقرير).
- يمكن أن ينبعث فرع "Hosts" لـ Cpychecker تقارير Firehose XML
- https://github.com/paultag/storz/blob/master/wrappers/storz-lintian