Compose-ready workspace: packages/zappier (rate card, portal, Stripe), packages/verae-zapier-middleware (timestamp + NATS), packages/verae-zapier (CLI app), vendor/zapier-platform, and research/zapier vendor corpus. Gate 0 structure checks pass. Product code and research are not yet wired.
73 lines
2.6 KiB
Markdown
73 lines
2.6 KiB
Markdown
# Contributing
|
|
|
|
## Terms
|
|
|
|
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](license) file) before submitting a PR.
|
|
|
|
## Local Setup
|
|
|
|
Install [pnpm][pnpm] if you haven't. We recommend using [asdf](asdf) to install and manage your
|
|
Node.js and pnpm versions.
|
|
|
|
Clone this repo with git:
|
|
|
|
```bash
|
|
git clone git@github.com:zapier/zapier-platform.git
|
|
cd zapier-platform
|
|
```
|
|
|
|
In the repo directory, install dependencies with pnpm:
|
|
|
|
```bash
|
|
pnpm install
|
|
```
|
|
|
|
That's it! Now you have a local environment for development.
|
|
|
|
## Running Tests
|
|
|
|
For detailed testing commands and workflow, see [docs-dev/commands.md](docs-dev/commands.md).
|
|
|
|
Quick overview:
|
|
- `pnpm test` - Run all tests for all packages
|
|
- `pnpm validate` - Full validation (test + smoke-test + lint)
|
|
- Individual packages: `cd` into package directory first, then `pnpm test`
|
|
|
|
## Testing Guidelines
|
|
|
|
### Writing Quality Tests
|
|
|
|
When writing tests, especially for generators and complex components, follow these guidelines to ensure tests are robust and maintainable:
|
|
|
|
#### ✅ DO: Test Actual Component Behavior
|
|
|
|
Always test the actual behavior of the component being tested.
|
|
|
|
#### ❌ DON'T: Use Simulation-Based Testing
|
|
|
|
Never extract logic from the component and test it in isolation. This creates brittle tests that don't reflect actual behavior.
|
|
|
|
#### Why Simulation Testing is Problematic
|
|
|
|
1. **Duplication**: Simulated logic can diverge from actual implementation
|
|
2. **False confidence**: Tests may pass while actual functionality is broken
|
|
3. **Maintenance burden**: Changes require updating both implementation and simulation
|
|
4. **Missing integration issues**: Doesn't test how components interact with their environment
|
|
|
|
## Development CLI Setup
|
|
|
|
For setting up the development version of the CLI, see [docs-dev/install-dev.md](docs-dev/install-dev.md).
|
|
|
|
## Package Linking for Integration Development
|
|
|
|
For linking development versions of core and schema packages to your integration projects, see the "Package Linking" section in [docs-dev/commands.md](docs-dev/commands.md).
|
|
|
|
## Releasing a New Version
|
|
|
|
**Zapier employees only.** Refer to this [internal doc][releasing] on how to cut a release.
|
|
|
|
|
|
[license]: https://github.com/zapier/zapier-platform/blob/main/LICENSE
|
|
[pnpm]: https://pnpm.io/installation
|
|
[asdf]: https://asdf-vm.com
|
|
[releasing]: https://coda.io/d/_di0MgBhlCWf/Releasing-a-New-zapier-platform-Version_su5eD
|