Thanks for your interest in contributing! 🚀
To ensure consistency and stability, all contributions must be verified against a Salesforce scratch org before opening a pull request.
- Salesforce CLI (sf) installed
- Access to the Dev Hub (ask a maintainer if you need access)
- A properly set up local repo (
force-appor equivalent source directory)
Every contribution must be tested in a fresh scratch org with the required features enabled.
Recommended (uses the project scratch definition):
sf org create scratch \
--target-dev-hub <your-dev-hub-username-or-alias> \
--definition-file config/project-scratch-def.json \
--set-alias <your-alias>Alternative (simple developer edition):
sf org create scratch \
--target-dev-hub <your-dev-hub-username-or-alias> \
--edition developer \
--set-alias <your-alias>Open the org to verify it was created:
sf org open --target-org <your-alias>Set it as your default org for this project:
sf config set target-org=<your-alias>All contributions must deploy cleanly with no errors. From the project root:
sf project deploy start --source-dir force-appIf you prefer a manifest-based deploy, generate and use manifest/package.xml:
sf project generate manifest --source-dir force-app --output-dir manifest
sf project deploy start --manifest manifest/package.xmlYour deployment must pass all relevant Apex test classes with no failures. At minimum, you should run the core test classes for this repo (ask a maintainer if unsure).
Run them as part of your deployment:
sf project deploy start --source-dir force-app --tests "CoreTestClass1,CoreTestClass2"Or run them separately (if code is already deployed):
sf apex run test --tests "CoreTestClass1,CoreTestClass2" --wait 10 --verboseOnce your scratch org is validated:
- Push your changes to a feature branch.
- Confirm all tests pass.
- Open a PR and clearly describe the change. Maintainers may request your scratch org alias for verification.
✅ Checklist Before PR
- Scratch org created successfully
- Metadata deployed without errors
- All required Apex tests passed successfully