ビルドのクロスバージョンサポート
このトピックの内容: |
Klocwork は Klocwork サーバーからのビルドサーバーバージョンを切り離しています。このため、古いビルドサーバーツールを、1 バージョン前のフルリリースに戻って Klocwork サーバーのより新しいバージョンで使用できます。これは、たとえば Klocwork 2021.1 から 2021.4 までのバージョンの Klocwork ビルドを、データのインポートまたは移行を行うことなく Klocwork2023.2 にロードできるということです。
大規模な組織にとって、この機能はサーバーやデスクトップのプラグインをアップデートしてより新しいリリースにおける改良を利用しながら、プロジェクトの一部または全部を Klocwork の以前のバージョンで解析できる柔軟性をもたらします。
例: ビルドを Klocwork の以前のバージョンから Klocwork サーバーのより新しいバージョンにロードし、それを以前の設定にロックする
- Klocwork 2021.1 でポータルにログインし、たとえば demosthenes というプロジェクトを作成します。
- 以下のコマンドをビルドマシンから実行して、プロジェクトを 2020.1 設定にロックします。たとえば、
kwadmin lock-project-version --url http://my2021server.acme.com:8084 demosthenes
このコマンドは、ビルドマシン上のエンジンおよびチェッカー設定に関する情報を格納するファイルを作成します。これにはどのカスタムチェッカーも含まれており、また有効なチェッカーも無効なチェッカーも含まれています。サーバーはこの情報をプロジェクトの基本設定として使用します。
- Klocwork 2021.1 ポータルで demosthenes プロジェクトを開きます。必要に応じて、2020.1 チェッカーを有効にも無効にもすることができます。
2020.1 以降に導入されたどのチェッカーも使用できません。それはプロジェクトをそのバージョンの製品にロックしたからです。
- 2020.1 ビルドのマシン上で、通常どおりプロジェクトを構築します。たとえば、
kwbuildproject --url http://my2021server.acme.com:8084/demosthenes -o tablesdir buildspec.out
- 2020.1 ビルドのマシン上で kwadmin load コマンドを使用してビルドを Klocwork 2021.1 サーバーにロードします。たとえば、
kwadmin load demosthenes tablesdir --url http://my2021server.acme.com:8084
プロジェクトが Klocwork の以前のバージョンにロックされている場合に検証する方法
プロジェクトを Klocwork の以前のバージョンにロックする場合は、lock-project-version コマンドが default_checkers_configuration.xml と呼ばれる設定ファイルを作成し、それを Klocwork サーバーのそのプロジェクトディレクトリに移動させます。設定ファイルは、そのリリースで使用可能なチェッカーの情報を、そのビルドマシンに展開されたすべてのカスタムチェッカーも含めて格納します。
default_checkers_configuration.xml のプロジェクトディレクトリを検索し、自分のプロジェクトが Klocwork の以前のバージョンにロックされているかどうかを検証します。
Klocwork の以前のバージョンからのプロジェクト設定をもはや使用しないように、プロジェクトのロックを解除する
プロジェクトを、もはや Klocwork の以前のバージョンにロックしない場合は unlock-project-configuration コマンドを使用します。たとえば、
kwadmin unlock-project-version demosthenes --url http://my2021server.acme.com:8084
プロジェクトはまだ Klocwork の以前のバージョンにより解析されているので、どのチェッカーもそのリリース以降に削除されたり、名前を変更されると、ポータルにレポートが表示されません。同様に、プロジェクトはそのリリース以降に導入されたどの新しいチェッカーもレポートしません。全ての新しいチェッカーを活用するには、プロジェクトを Klocwork の現在のバージョンで解析する必要があります。