- We use the active NodeJS LTS. If you need to work with multiple versions of Node, you might consider using nvm.
- This repository uses yarn to manage node dependencies. Please install yarn globally using
npm install --global yarn
. - Tests are executed on the latest NodeJS as well as all active and maintained NodeJS LTS versions.
The packages directory contains the different npm packages.
You would only do this once after you cloned the repository.
- Clone this repository from git.
cd
intosfdx-dev-packages
.- We develop using feature brances off
main
and release from themain
branch. At this point, it should be set tomain
by default. If not, rungit checkout -t origin/main
. yarn
to bring in all the top-level dependencies and bootstrap.- Open the project in your editor of choice.
- We enforce commit message format. We recommend using commitizen by installing it with
yarn global add commitizen
then commit usinggit cz
which will prompt you questions to format the commit message. - Before commit and push, husky will run several hooks to ensure the message and that everything lints and compiles properly.
These commands assume that they are executed from the top-level directory.
Internally, they delegate to lerna
to call them on each npm module in the
packages directory.
This bootstraps the packages by issuing a yarn install
on each package and
also symlinking any package that are part of the packages folder.
You would want do this as the first step after you have made changes in the modules.
If you change the dependencies in your package.json, you will also need to run this command.
This runs yarn compile
on each of the package in packages.
This run yarn clean
on each of the package in packages. Running yarn cleal-all
will also clean up the node_module directories.
This runs yarn test
on each of the packages.
This runs yarn lint
on each of the packages.