Contributing to Monoweave
We offer a devcontainer which takes care of most environment setup for you. If you choose not to use the devcontainer, you will need Corepack installed and enabled.
If not using a devcontainer...
There is a bootstrap script you can source that will validate your environment for local development. It is recommended to have nvm installed, however it is not required. Running the bootstrap script will enable corepack for you. If you do not want this behaviour, run
. script/bootstrap --no-corepack.
You can run
. script/bootstrapwhenever dependencies change, it will run
yarnfor you.
Technologies
This project uses:
- Language: Typescript
- Package Manager: Yarn Modern
- Git Hooks: lint-staged and husky
Tests
Unit & Integration Tests
yarn test:watch
End-to-end Testing (E2Es)
yarn test:e2e
You can run
yarn :e2e test:registry:logsto see a live stream of the registry logs.
Build
You can execute
yarn buildto generate the build assets that ultimately gets uploaded to the NPM registry. It will also leave the intermediate
libartifacts, which contain the transpiled code.
Running the local version of monoweave against a repository
yarn run-local --cwd <PATH_TO_OTHER_MONOREPO>
Tips
Configuring Your IDE
VSCode
You'll need to download the ZipFS extension to be able to use functionality such as "Go To Definition" with the zipped npm packages.
In a Typescript file, Cmd + Shift + P will open the command menu. Select "TypeScript: Select Typescript Version..." and use the version from the workspace.
Debugging Yarn API Packages
You can unpack all yarn zips via:
yarn unplug @yarnpkg/*
This will let you inspect yarn source code to debug stack traces.