- 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.
You would only do this once after you cloned the repository.
- Clone this repository from git.
cd
intosfdx-core
.- We develop using feature brances off
main
and release from themain
branch. At this point, you should rungit checkout -t origin/main
. yarn
to bring in all the top-level dependencies.- 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.
This compiles the typescript to javascript.
This cleans all generated files and directories. Run yarn clean-all
to also clean up the node_module directories.
This tests the typescript using ts-node.
This generates documentation into docs.
This lints all the typescript. If there are no errors/warnings from tslint, then you get clean output. But, if there are errors from tslint, you will see a long error that can be confusing – just focus on the tslint errors. The results of this are deeper than what the tslint extension in VS Code does because of semantic lint rules which requires a tsconfig.json to be passed to tslint.