Skip to content

Latest commit

 

History

History
77 lines (51 loc) · 2.9 KB

CONTRIBUTING.md

File metadata and controls

77 lines (51 loc) · 2.9 KB

Contributing

  1. Please read our Code of Conduct
  2. 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.
  3. Fork this repository.
  4. Build the plugin locally
  5. Create a topic branch in your fork. Note, this step is recommended but technically not required if contributing using a fork.
  6. Edit the code in your fork.
  7. 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.
  8. Sign CLA (see CLA below).
  9. Send us a pull request when you are done. We'll review your code, suggest any needed changes, and merge it in.

Build

$ yarn install
$ yarn build

CLA

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.

Branches

  • 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

Merging between branches

  • 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 into develop.
  • Hot-fix branches are an exception.

    • Instead we aim for faster cycles and a generally stable develop branch.

Debugging

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.

Pull Requests

  • 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>/.

Merging Pull Requests

  • Pull request merging is restricted to squash & merge only.