「Firehose」は、コード分析ツール(コンパイラ警告、静的分析、リナーなど)の結果を管理するためのPythonパッケージです。
現在、GCC、Clang-Analyzer、Cppcheck、およびFindBugsの出力のパーサーを提供しています。これらのパーサーは、結果をPythonオブジェクトの一般的なデータモデルに変換します。 JSON同等のものもあります。
Firehoseはフリーソフトウェア、LGPLV2.1の下でライセンスされているか、(オプションで)後のバージョンです。
Python 2.7または3.2以降が必要であり、Pypyで正常にテストされています。
現在、アルファ品質です。
APIおよびシリアル化形式はまだ石に設定されていません(そして、私たちは物事をもっとロックダウンする前にフィードバックを聞くことに熱心です)。
動機:http://lists.fedoraproject.org/pipermail/devel/2012-december/175232.html
静的コード分析の結果をデータベースに丸めたいと思います。これは、すべての結果をいくつかの一般的なインターチェンジ形式「Firehose」(これもデータベースの名前である可能性がある)に強制することを意味します。
Pythonオブジェクトのコレクションとしてフォーマットを操作するためのシンプルなPython APIとともに(XMLを作成、XMLから読み取り、変更など)
私は最初にJSONを使用することを検討しましたが、XMLを使用しました。複数のツールがこれを発している場合、スキーマに対して物事を検証できるのは良いことです(firehose.rng、リラックスngスキーマを参照)。
フォーマットのソースファイルへの参照には、ソースファイル自体(SHA-1など)のハッシュを含めることができ、話しているソースファイルを一意に識別できます。
この形式は、Web UIのDBに丸extされ、サーバーを必要とせずに他のことを行うことができます。
- GCCコンピレーションエラーのテキスト形式に変換して、Emacsなどがそれを解析してソースに連れて行くことができるようにします
- ワークステーションでローカルにシンプルなHTMLレポートになります
Firehoseを使用したプロジェクト:
- 模擬分析は、ソースRPMを再構築し、Firehose形式の4つの異なるコード分析ツールの結果をキャプチャできます(レポートで言及されているすべてのソースファイルとともに)。
- CPYCheckerの「Firehose」ブランチは、Firehose XMLレポートをネイティブに発することができます
- https://github.com/paultag/storz/blob/master/wrappers/storz-lintian