Installing Apex Stem

Apex Stem ドキュメント
Apex StemInstallationUnlocked PackageSalesforce
Two install paths for every framework: Unlocked Packages (framework tests excluded from RunLocalTests) and git submodules. Current versions and install IDs.

Apex Stem の各フレームワークは Unlocked Package(2GP、名前空間なし)と git submodule の2つの経路で導入できます。どちらも中身は同じソースです。プロジェクトごとに選べますし、org によって使い分けても問題ありません。

Which path should I take?

Unlocked Package(推奨)Git Submodule
向いている場面新規プロジェクト、本番 orgsubmodule 運用中の既存プロジェクト、コントリビュータ
デプロイ時のフレームワークテストRunLocalTests から除外。validate がフレームワークのテストを実行しない(=落ちない)ローカルテストとして毎回実行される
org のカバレッジ計算フレームワークのコードは計算から除外コードもテストも計算に含まれる
バージョンの可視性sf package installed list で正確なバージョンが見えるsubmodule の git タグを確認する
アップグレード次バージョンをインストールするだけ(上書き)git submodule update --remote

パッケージ経路を用意した理由は、実レコードを作るフレームワークテスト(たとえば ApexBlueprint の結合テスト)が、org 固有の入力規則や必須項目と衝突しうるためです。パッケージとして導入すれば、それらのテストはあなたの org では一切実行されません。この失敗クラスが丸ごと消えます。

Current versions

FrameworkVersionInstall command
ApexEloquentv3.5.0sf package install -p 04tgK000000HaGnQAK -o <your-org> -w 10
ApexBlueprintv2.0.1sf package install -p 04tgK000000HaIPQA0 -o <your-org> -w 10
ApexTracev1.4.0sf package install -p 04tgK000000HaFBQA0 -o <your-org> -w 10
ApexToolsv1.0.0sf package install -p 04tgK000000HaK1QAK -o <your-org> -w 10

各フレームワークは完全に独立しています。インストール順の制約も相互依存もありません。必要なものだけ入れてください。

ブラウザからインストールする場合は https://login.salesforce.com/packaging/installPackage.apexp?p0=<install ID> を開きます(Sandbox は test.salesforce.com に読み替え)。過去バージョンの install ID は各リポジトリの GitHub Releases に載っています:

ApexEloquent / ApexBlueprint / ApexTrace / ApexTools

Git submodule

BASH
cd /path/to/your/project
git submodule add https://github.com/krile136/ApexEloquent.git  force-app/main/default/classes/ApexEloquent
git submodule add https://github.com/krile136/ApexBlueprint.git force-app/main/default/classes/ApexBlueprint
git submodule add https://github.com/krile136/ApexTrace.git     force-app/main/default/classes/ApexTrace
git submodule add https://github.com/krile136/ApexTools.git     force-app/main/default/classes/ApexTools
git submodule update --init --recursive

sf project deploy start -d force-app/main/default/classes/<Name> で通常のソースフォルダと同じようにデプロイできます。submodule を使うプロジェクトをクローンするときは git clone --recurse-submodules を忘れずに。

Next steps