第二世代管理パッケージのプロジェクトファイルでの上位パッケージの指定
ここでは、上位パッケージを設定する 3 種類の方法を説明します。
HIGHEST キーワードを使用する (推奨)
sfdx-project.json ファイルの ancestorId 属性または ancestorVersion 属性のいずれかで、HIGHEST キーワードを使用します。このキーワードを使用すると、上位パッケージは自動的に最も高い昇格済みパッケージバージョン番号に設定されます。
1"packageDirectories": [
2{
3"path": "util",
4"package": "Expense Manager - Util",
5"versionNumber": "4.7.0.NEXT",
6"ancestorVersion": "HIGHEST"
7},このキーワードを使用することで、線形バージョン管理を中断してもかまわなくなるまで、線形バージョン管理を使用するように上位パッケージを簡単に設定できます。
上位バージョン属性を使用する
sfdx-project.json ファイルの ancestorVersion 属性をパッケージバージョンの major.minor.patch 番号に設定します。この方法では、メジャー、マイナー、パッチの値が変更されるたびに、上位バージョン番号を更新する必要があります。
1"packageDirectories": [
2{
3"path": "util",
4"package": "Expense Manager - Util",
5"versionNumber": "4.7.0.NEXT",
6"ancestorVersion": “4.6.0”
7},上位 ID 属性を使用する
sfdx-project.json ファイルの ancestorId 属性を 04t ID またはパッケージバージョンの別名のいずれかに設定します。この方法では、パッケージバージョンを作成するたびに、上位バー��ョン番号を更新する必要があります。
1"packageDirectories": [
2{
3"path": "util",
4"package": "Expense Manager - Util",
5"versionNumber": "4.7.0.NEXT",
6"ancestorId": "04tB0000000cWwnIAE"
7},1"packageDirectories": [
2{
3"path": "util",
4"package": "Expense Manager - Util",
5"versionNumber": "4.7.0.NEXT",
6"ancestorId": "expense-manager@4.6.0.1"
7},線形上位パッケージの動作を上書きする
線形のパッケージバージョン管理を中断するには、パッケージバージョンの作成時に、最も高い昇格済みパッケージバージョンではない上位パッケージを指定して、Salesforce CLI パラメーター --skip-ancestor-check を使用します。
1sf package version create --package "Expenser App" --skip-ancestor-checkCLI パラメーターは、最も高い昇格済みパッケージバージョンではないパッケージバージョンの指定が意図的に選択されていることを示します。
sfdx-project.json ファイルの ancestorId 属性または ancestorVersion 属性のいずれかで NONE というキーワードを使用すると、上位パッケージを指定しないように選択できます。
1"packageDirectories": [
2{
3"path": "util",
4"package": "Expense Manager - Util",
5"versionNumber": "4.7.0.NEXT",
6"ancestorVersion": "NONE"
7},上位パッケージによりパッケージのアップグレードパスが決まるため、既存のユーザーは上位パッケージを指定しないで作成されたパッケージバージョンにアップグレードすることはできません。作成するパッケージバージョンを昇格する予定がない場合は、NONE を使用してください。
以前のパッケージバージョンをすでに昇格していて、同じパッケージに関連付けられた新しいパッケージバージョンで上位パッケージを NONE に設定する場合は、そのパッケージバージョンの作成時に --skip-ancestor-check を含めてください。最初のパッケージバージョンを作成するときは、上位を NONE に設定して --skip-ancestor-check を指定することもできます。
上位パッケージに関する留意点
- 上位パッケージによって、既存のパッケージをより新しいパッケージバージョンにアップグレードできるかが決まります。線形バージョン管理を中断する場合、または顧客の組織にインストールされているパッケージバージョンを破棄する予定がある場合は、既存の顧客にどのような影響が及ぶか、またアップグレードパスを既存の顧客が利用できるかどうかを検討してください。
- パッケージバージョンを破棄する場合は、Salesforce CLI コマンド sf package version delete を使用して、そのバージョンを削除します。
パッケージバージョンを削除できない場合は、破棄されたパッケージバージョンが誤ってインストールされないようにパッケージバージョンのインストールキーを更新します。インストールキーを更新するには、sf package version update を使用します。