記事
· 2023年7月13日 5m read

InterSystems Package Manager と git-source-control で IRIS インターオペラビリティのソース管理を有効にする

開発者の皆さん、こんにちは!

ご存知のように、InterSystems IRIS インターオペラビリティソリューションには、プロダクション、ビジネスルール、ビジネスプロセス、データ変換、レコードマッパーなどの様々なエレメントが含まれています。 また、UI ツールを使用してこれらの要素を作成し、変更することもあります。  もちろん、UI ツールで行った変更をソース管理する便利で堅牢な方法も必要です。

長い間、これは手動(クラス、エレメント、グローバルなどのエクスポート)か面倒な設定作業手順によって行われてきました。そのため、ソース管理 UI の自動化で節約された時間は、設定のセットアップとメンテナンスの時間で相殺されていました。

現在では、この問題はなくなりました。 パッケージファースト開発と @Timothy Leavittgit-source-control という IPM パッケージの使用という 2 つのアプローチによる結果です。

詳細は以下のとおりです!

免責事項: これは、インターオペラビリティのプロダクションのエレメントがリポジトリ内のファイルである場合の、クライアント側の開発アプローチに関連しています。

よって、ソリューションは非常に単純であるため、この記事は長くありません。

Docker で開発しており、IRIS を使って開発環境の Docker イメージをビルドしたら、ソリューションを IPM モジュールとして読み込んでいるとします。 これは、「パッケージファースト」開発と呼ばれ、関連する動画や記事が存在する手法です。 基本的には、開発環境の Docker イメージを IRIS でビルドすると、クライアントのサーバーにデプロイされるときに、ソリューションがパッケージとして読み込まれるという考え方になります。

ソリューションのパッケージファースト開発環境を作るには、module.xml をリポジトリに追加し、そのすべての要素を記述して、Docker イメージのビルドフェーズで「zpm load "repository/folder"」コマンドを呼び出します。

この考え方を、サンプルテンプレートの IRIS Interoperability template とそれに使用する module.xml を使って示しましょう。 パッケージは、Docker ビルド中に以下のように読み込まれています。

zpm "load /home/irisowner/irisdev/ -v":1:1

ソース 

パッケージソース管理を読み込む前に配置された以下の 2 行を見てください。 これにより、ソース管理はパッケージ内のすべての相互運用性要素に対して自動的に動作し始め、適切なフォルダに適切な形式でエクスポートされます。

zpm "install git-source-control"
do ##class(%Studio.SourceControl.Interface).SourceControlClassSet("SourceControl.Git.Extension")

ソース

仕組み

最近、git-source-control アプリは、開発モードで読み込まれるソース管理用の IPM パッケージをサポートするようになりました。 エクスポートするフォルダを読み取り、module.xml からソースの構造をインポートします。 詳細は、@Timothy Leavitt が説明できます。

ターミナルで、環境がビルドされた後の IPM モジュールのリストを確認すると、読み込まれたモジュールが実際に開発モードになっているのが分かります。

USER>zpm
=============================================================================
|| Welcome to the Package Manager Shell (ZPM).                             ||
|| Enter q/quit to exit the shell. Enter ?/help to view available commands ||
=============================================================================
zpm:USER>list
git-source-control      2.1.0
interoperability-sample 0.1.2 (DeveloperMode)
sslclient               1.0.1
zpm:USER>

では試してみましょう。 

このリポジトリをクローンし、VSCode で開いてイメージをビルドしました。 以下では、相互運用性 UI とソース管理をテストしています。 UI に変更を加えるとすぐに、ソースと差分に表示されます。

できました! それだけです! 

まとめると、プロジェクトで相互運用性 UI 要素のソース管理を行うには、以下を行います。

  1. Docker イメージをビルド中に、iris.script に 2 行を追加します。
zpm "install git-source-control"
do ##class(%Studio.SourceControl.Interface).SourceControlClassSet("SourceControl.Git.Extension")

その後、以下のようにして、ソリューションをモジュールとして読み込みます。

zpm "load /home/irisowner/irisdev/ -v":1:1
  1. または、Interoperability template からリポジトリを作成して新規に始めることもできます。

お読みいただきありがとうございました! コメントやフィードバックをお待ちしています!

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください