This is a quick guide to help you contribute to Metaplex Bubblegum.
The root folder has a private package.json
containing a few scripts and JavaScript dependencies that help generate IDLs; clients and start a local validator. First, ensure you have pnpm installed and run the following command to install the dependencies.
pnpm install
You will then have access to the following commands.
pnpm programs:build
- Builds all programs.pnpm programs:test
- Runs BPF tests for all programs (logs disabled).pnpm programs:debug
- Runs BPF tests for all programs.pnpm programs:clean
- Deletes all generated program binaries.pnpm clients:rust:test
- Runs BPF tests for the Rust client SDK.pnpm clients:js:test
- Runs the JavaScript tests (you must first start the local validatorpnpm validator
).pnpm generate
- Shortcut forpnpm generate:idls && pnpm generate:clients
.pnpm generate:idls
- Generate IDLs for all programs, as configured in theconfigs/shank.cjs
file.pnpm generate:clients
- Generate clients using Kinobi, as configured in theconfigs/kinobi.cjs
file.pnpm validator
- Start a local validator using Amman, as configured in theconfigs/validator.cjs
file (logs disabled).pnpm validator:debug
- Start a local validator using Amman, as configured in theconfigs/validator.cjs
file.pnpm validator:stop
- Stop the local validator.pnpm validator:logs
- Show the logs of the local validator.
Each client has its own README with instructions on how to get started. You can find them in the clients
folder.
Most of the CI/CD should already be set up for you and the .github/.env
file can be used to tweak the variables of the workflows.
However, the "Deploy JS Client" workflow — configured in .github/workflows/deploy-js.yml
— requires a few more steps to work. See the CONTRIBUTING.md file of the JavaScript client for more information.