- Please read our Code of Conduct
- Create a new issue before starting your project so that we can keep track of what you are trying to add/fix. That way, we can also offer suggestions or let you know if there is already an effort in progress.
- Fork this repository.
- Build the plugin locally
- Create a topic branch in your fork. Note, this step is recommended but technically not required if contributing using a fork.
- Edit the code in your fork.
- Write appropriate tests for your changes. Try to achieve at least 95% code coverage on any new code. No pull request will be accepted without unit tests.
- Sign CLA (see CLA below).
- Send us a pull request when you are done. We'll review your code, suggest any needed changes, and merge it in.
$ yarn install
$ yarn build
External contributors will be required to sign a Contributor's License Agreement. You can do so by going to https://cla.salesforce.com/sign-cla.
- We work in
develop
- Our released (aka production) branch is
main
- Our work happens in topic branches (feature and/or bug-fix).
- feature as well as bug-fix branches are based on
develop
- branches should be kept up-to-date using
rebase
- see below for further merge instructions
- feature as well as bug-fix branches are based on
-
We try to limit merge commits as much as possible.
- They are usually only ok when done by our release automation.
-
Topic branches are:
- based on
develop
and will be squash-merged intodevelop
.
- based on
-
Hot-fix branches are an exception.
- Instead we aim for faster cycles and a generally stable
develop
branch.
- Instead we aim for faster cycles and a generally stable
In VSCode:
-
If you don't have it already, get the JavaScript Debugger extension for VSCode.
-
Go to settings and search for
debug.javascript.autoAttachFilter
-
Recommended setting is
onlyWithFlag
. This will allow the debugger to attach whenever the--inspect
flag is given in Node. -
Now in your VSCode terminal, whenever you want do debug, set up some breakpoints and run the plugin like this:
node --inspect ./bin/run <PLUGIN COMMAND YOU WANT TO RUN> <ADDITIONAL ARGS YOU WANT TO PASS>
<PLUGIN COMMAND YOU WANT TO RUN>: commerce:scratchorg:create
commerce:store:create
etc...
Note: Make sure to run yarn build
whenever you change the javascript so the binary ./bin/run
can be updated.
- Develop features and bug fixes in topic branches.
- Topic branches can live in forks (external contributors) or within this repository (committers).
** When creating topic branches in this repository please prefix with
<developer-name>/
.
- Pull request merging is restricted to squash & merge only.