第二世代管理パッケージに切り替える理由
ソース駆動型の開発
管理 2GP で採用されているソース主導の開発モデルは、管理 1GP で採用されている組織ベースの開発から大きく方向転換したものです。信頼できる情報源として、パッケージ組織は今後は使用されません。代わりに、管理 2GP の信頼できる情報源として、バージョン管理システムのパッケージメタデータが使用されます。管理 2GP パッケージを開発する際には、組織ではなく、バージョン管理システムでパッケージのメタデータを作成して、更新します。
Salesforce 組織の操作を最小限に抑える
��存じのとおり、管理 1GP 開発では、パッケージやパッチのバージョンごとに固有の Salesforce 組織が必要になるため、パッケージのメタデータをリリースする Salesforce 組織を 100 個以上所有することも珍しくありません。これらの組織やその認証情報を管理することは、まさに大変な作業となるでしょう。
管理 2GP では、組織を管理する手間がなくなり、代わりに、Dev Hub 組織という単一の組織を使って、すべてのパッケージを管理できます。また、Dev Hub 組織に接続する必要がある場合でも、Salesforce CLI (コマンドラインインターフェース) やスクリプトを使用してログインできます。
数百のパッケージ組織やパッチ組織 (およびそれらのログイン認証情報) に手動でログインし、追跡する必要がなくなることによって、管理 2GP では、パッケージ開発が簡略化され、最新の管理プログラムによるアプリケーションライフサイクル管理 (ALM) を促進できます。
API および CLI 優先のモデル
API を部分的にしかサポートしていない管理 1GP とは異なり、API または CLI コマンドを使用して、すべての管理 2GP パッケージの操作を行えます。パッケージの操作を完全に自動化して、生産性を高めることができます。再現性があり、スクリプティングが可能で、さらに追跡可能な ALM を管理 2GP によって実現できます。
柔軟なバージョン管理
管理 1GP パッケージは、直線的なバージョン管理モデルに従っており、直前のパッケージバージョンに基づいて作成する必要があります。この方法には制限が多く、パッケージから削除できないメタデータが管理 1GP では残ってしまいます。
管理 2GP を採用して、柔軟なバージョン管理を利用しましょう。管理リリース済みのパッケージバージョンを作成したとき、まだ顧客に配布していない場合には、そのパッケージバージョンを破棄して、ビルドの基になるパッケージとして、以前の祖先のパッケージバージョンを選択できます。また、柔軟なバージョン管理では、ブランチを使用してパッケージを並行開発することが可能です。失敗から学び、すぐに修正して、次に進むことができます。
複数のパッケージで共有する名前空間
管理 1GP パッケージでは、各パッケージに一意の名前空間を与える必要があります。この制限により、パッケージ間でコードを共有するには、Apex のクラスとメソッドをグローバルとして宣言する必要があるため、グローバル Apex が増大してしまいます。
管理 2GP では、複数のパッケージで同じ名前空間を共有できるようになったため、この問題が解消されています。次に、namespaceAccessible アノテーションを使用することで、同じ名前空間内のすべてのパッケージで公開 Apex クラスとメソッドを共有できます。公開 Apex を使用することにより、グローバル API の公開によるグローバル Apex の増加も起こりません。
宣言型の連動関係
管理 2GP パッケージでは、パッケージ間の連動関係を .json ファイルで宣言的に指定します。お気づきのとおり、これは管理 1GP の連動関係を宣言する方法よりも、開発者にとって扱いやすい方法です。
簡略化されたパッチのバージョン管理
管理 2GP のパッチバージョンを作成するのは、新規のメジャーまたはマイナーパッケージバージョンを作成するのと同じくらい簡単です。Salesforce CLI コマンドを使用し、パッチのバージョン番号に 0 以外の数字を指定します。これで完了です。
バージョン管理システムは、管理 2GP の信頼できる情報源であるため、パッチバージョンの作成も単純です。管理 1GP の手間がかかり、ミスが起こりやすいパッチ組織プロセスに戻りたいと思うことはもうないでしょう。
将来の顧客の移行を回避
ご存知かもしれませんが、管理 1GP パッケージを管理 2GP に移行する機能は現在開発中でます。しかし、この機能を起動する場合は、管理 1GP パッケージや顧客を 1GP から 2GP に移行する作業が必要になります。現時点で、新しいパッケージに管理 2GP を採用すれば、将来的な移行の手間を省くことができます。