This contributor guide is mainly for Zapier employees. However, zapier-platform is a public repo. Everyone is welcome to submit a pull request (PR). For non-employees, you must agree to the terms of service listed at https://zapier.com/developer-platform/tos (the link is also included in the LICENSE file) before submitting a PR.
Install pnpm if you haven't. We recommend using asdf to install and manage your Node.js and pnpm versions.
Clone this repo with git:
git clone git@github.com:zapier/zapier-platform.git
cd zapier-platformIn the repo directory, install dependencies with pnpm:
pnpm installThat's it! Now you have a local environment for development.
For detailed testing commands and workflow, see docs-dev/commands.md.
Quick overview:
pnpm test- Run all tests for all packagespnpm validate- Full validation (test + smoke-test + lint)- Individual packages:
cdinto package directory first, thenpnpm test
When writing tests, especially for generators and complex components, follow these guidelines to ensure tests are robust and maintainable:
Always test the actual behavior of the component being tested.
Never extract logic from the component and test it in isolation. This creates brittle tests that don't reflect actual behavior.
- Duplication: Simulated logic can diverge from actual implementation
- False confidence: Tests may pass while actual functionality is broken
- Maintenance burden: Changes require updating both implementation and simulation
- Missing integration issues: Doesn't test how components interact with their environment
For setting up the development version of the CLI, see docs-dev/install-dev.md.
For linking development versions of core and schema packages to your integration projects, see the "Package Linking" section in docs-dev/commands.md.
Zapier employees only. Refer to this internal doc on how to cut a release.