記事
Toshihiko Minamoto · 2021年2月4日 6m read

InterSystems ObjectScript Package Manager のご紹介

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

InterSystems ObjectScript でライブラリやツール、パッケージなどを開発していると、「このパッケージはどうすればターゲットマシンに展開できるのか?」という疑問がよく浮かびます。

また、私たちは、既に別のライブラリがインストールされていることを想定したり、その特定のバージョンのことを考慮したりしながらパッケージを開発しています。

JavaScript や Python などでコーディングを行うと、依存関係を管理しながらパッケージを展開するのに パッケージ管理システム が必要になります。

これを踏まえ、 InterSystems ObjectScript Package Manager のリリースを発表したいと思います!

注意!

免責事項

pm.community.intersystems.com にある InterSystems ObjectScript Package Manager サーバー、および pm.community.intersystems.com または Github からインストール可能な InterSystems ObjectScript Package Manager クライアントは、インターシステムズではサポートされておらず、MIT ライセンスに従い現状有姿の状態で表示されます。 このツールの使用や開発、このツールに対する貢献は自己責任とさせていただきます。

 

どのような仕組みか?

InterSystems ObjectScript Package Manager は、2 つの部分で構成されています。 Package Manager サーバーは、ObjectScript パッケージをホストし、ZPM クライアントがパッケージを展開、一覧表示できるよう API を 開示します。 現在、 pm.community.intersystems.com より Developers Community Package Manager サーバーをご使用いただけます。

IRIS システムにインストールした ZPM クライアントを使用すれば、どのようなパッケージでも InterSystems IRIS にインストールできます。

InterSystems Package Manager の使用方法とは?

  1. 使用可能なパッケージの一覧を確認する

https://pm.community.intersystems.com/packages/-/all を開き、現在使用可能なパッケージの一覧を確認します。 

[{"name":"analyzethis","versions":["1.1.1"]},{"name":"deepseebuttons","versions":["0.1.7"]},{"name":"dsw","versions":["2.1.35"]},{"name":"holefoods","versions":["0.1.0"]},{"name":"isc-dev","versions":["1.2.0"]},{"name":"mdx2json","versions":["2.2.0"]},{"name":"objectscript","versions":["1.0.0"]},{"name":"pivotsubscriptions","versions":["0.0.3"]},{"name":"restforms","versions":["1.6.1"]},{"name":"thirdpartychartportlets","versions":["0.0.1"]},{"name":"webterminal","versions":["4.8.3"]},{"name":"zpm","versions":["0.0.6"]}]

各パッケージには、それぞれ名前とバージョンがあります。

InterSystems IRIS にパッケージをインストールするには、最初に InterSystems ObjectScript Package Manager クライアント (別名 ZPM クライアント) をインストールする必要があります。

2. Package Manager クライアントをインストールする

ZPM サーバーから ZPM クライアントの最新リリースを取得します
https://pm.community.intersystems.com/packages/zpm/latest/installer

これは XML の ObjectScript パッケージなので、Management Portal を使ってクラスにインポートするか、以下のコマンドを実行すればインストールできます。

USER>Do $System.OBJ.Load("/yourpath/zpm.xml","ck")

ZPM クライアントは %SYS に Z パッケージとしてインストールされるので、インストールが完了した後はどのネームスペースからでも呼び出すことができます。

3. ZPM クライアントの操作

ZPM クライアントには CLI インターフェースがあります。 ZPM は以下のようにどのネームスペースでも呼び出せます。

USER>zpm

zpm: USER>

使用可能なコマンドの完全な一覧は、ヘルプを呼び出してください。

現在使用可能なパッケージの一覧は ZPM サーバーでご確認ください (pm.community.intersystems.com)

zpm: USER>repo -list-modules -n registry

deepseebuttons 0.1.7 dsw 2.1.35 holefoods 0.1.0 isc-dev 1.2.0 mdx2json 2.2.0 objectscript 1.0.0 pivotsubscriptions 0.0.3 restforms 1.6.1 thirdpartychartportlets 0.0.1 webterminal 4.8.3 zpm 0.0.6

パッケージをインストールする

パッケージをインストールするには、以下のコマンドを実行します

install package-name version

これでパッケージとすべての依存関係が一緒にインストールされます。 「version」を省けば、最新のパッケージを取得できます。 ウェブターミナルの最新バージョンは、以下のコマンドでインストールします。

zpm: USER> install webterminal

既にインストールされているものを確認する方法

「list」コマンドを呼び出します

zpm:USER> list

zpm 0.0.6

webterminal 4.8.3

パッケージをアンインストールするコマンド

zpm: USER> uninstall webterminal

サポートされている InterSystems のデータプラットフォーム

現在、ZPM は InterSystems IRIS と InterSystems IRIS for Health をサポートしています。

自分のパッケージを Package Manager の一覧に載せたい

可能です。 要件は以下のとおりです。

  • InterSystems IRIS で実行できるコードを使っている
  • ルートディレクトリに module.xml がある。

Module.xml は、パッケージの構造を示すファイルで、デプロイ段階でセットアップされる必要があります。 module.xml の例はいたって単純です。

ObjectScript の例

比較的シンプルな例:

Samples BI (以前の HoleFoods)

ウェブターミナル

依存関係のあるモジュール

DeepSee Web は MDX2JSON がインストールされていることを前提とします。その時のmodule.xml に記載されている内容はこちらをご覧ください:
DeepSeeWeb

ご自身のアプリケーションが Community Package Manager の一覧に記載されることをご希望の方は、この記事にコメントしていただくか、私まで直接ご連絡ください。

コラボレーションとサポート

ZPM サーバーのソースコードは現時点では使用いただけませんが、近々ご用意いたします。

ZPM クライアントのソースコードは こちら からご使用いただけます。また、現在同ソースコードは、InterSystems開発者コミュニティでサポートされていますが、インターシステムズではサポートされていません。 問題プルリクエストがあれば、お気軽に送信してください。

ロードマップ

現在のロードマップは以下のとおりです。

  • Open Exchange のサポートを導入する
  • パッケージの更新とアップロードを自動化するオートメーションを導入する
  • ZPM サーバーをオープンソースとして提供する

今後も最新情報にご期待ください。InterSystems IRIS で InterSystems ObjectScript パッケージを開発しましょう!

00
2 0 0 24
Log in or sign up to continue