Any and all contributions to Rivet are welcome and encouraged!
If you have any bug reports, questions, ideas, or unexpected behavior feel free to open an issue or start a discussion. It's always a good idea to see if your issue has already been reported before opening a new one.
Due to the size of the repository (package tarballs are committed), it is recommended to use a blobless clone to download the repository more quickly.
- Clone the repository to your local machine, for example using SSH:
git clone --filter=blob:none git@github.com:Ironclad/rivet.git
cd
into your the cloned folder and runyarn
in the root folder- Start the app in development mode by running
yarn dev
Rivet makes use of yarn PnP, so some editor configuration may be necessary:
- Install the ZipFS extension (or install recommended extensions)
- Open the command palette and run
TypeScript: Select TypeScript Version
- Select
Use Workspace Version
More information is available here: https://yarnpkg.com/getting-started/editor-sdks
To build all packages, run yarn build
in the root folder. This will compile the TypeScript for all packages, and build everything for a production release.
To build a specific package, run yarn build
in the package folder. For example, to build the @ironclad/rivet-core
package, run yarn build
in the packages/core
folder.
To run tests, run yarn test
in the root folder. This will run all tests for all packages.
To run tests for a specific package, run yarn test
in the package folder. For example, to run tests for the @ironclad/rivet-core
package, run yarn test
in the packages/core
folder.
Testing will also run linting at the same time.
Rivet uses ESLint for linting and Prettier for formatting. To run linting, run yarn lint
in the root folder. This will run linting for all packages.
In VS Code, ESLint is configured to run automatically on save. We also recommend enabling the Format on Save
option in VS Code to automatically format files with Prettier on save.