Contributing
Welcome to worma's development and docs — start your first contribution here
Thanks for your interest in worma! worma is a fully open-source, community-driven project. We welcome any kind of contribution — code, docs, issue feedback, or experience sharing.
Before you start
- Search GitHub Issues to see if there is already a related discussion or request.
- For larger feature changes, open an Issue to align with maintainers first to avoid duplicate work.
- Look for tasks labeled
good first issue— great for first-time contributors.
Development environment
worma uses pnpm to manage the monorepo. Node.js ≥ 20.19 and pnpm ≥ 9.1 are recommended:
# Install dependencies
pnpm install
# Start the docs site (dev mode)
pnpm --filter worma-docs devModule development flow
The repo contains multiple sub-packages. Here is how to develop and verify each module.
worma core package (wormajs)
The core code lives in packages/worma. After each change, run unit tests to verify:
# Run only the core package's unit tests
pnpm --filter wormajs test
# Or run all unit tests at repo root (excluding e2e)
pnpm test:unit
# Build the core package
pnpm --filter wormajs buildNote:
pnpm testat repo root runs e2e, unit tests, and coverage (including build) in sequence. For daily dev verification, use the lighterpnpm test:unit.
vscode-extension (worma-vscode)
The extension code lives in packages/vscode-extension. Open that directory in VS Code and press F5 to launch the Extension Development Host for debugging, or start a dev build with:
pnpm --filter worma-vscode devCommit conventions
We follow Conventional Commits and use commitlint to validate messages. Common types:
feat: new featurefix: bug fixdocs: documentation changerefactor: refactor (no behavior change)test: test-relatedchore: build / toolchain change
Example:
git commit -m "feat(core): support oneOf union type generation"Pull Request flow
- Fork the repo and create a feature branch from
main:feat/your-feature. - Make sure
pnpm test:unitand lint checks pass. - In the PR, clearly describe the motivation, scope, and how you verified.
- Wait for maintainer review and adjust based on feedback.
Docs contribution
Docs live in docs/content/docs, written in MDX. You can:
- Fix typos, add sample code
- Translate or improve multi-language content
- Add use cases and best practices
Code of conduct
Keep communication friendly and inclusive, and respect every contributor. We are committed to a welcoming open-source community for everyone.
worma is better because of the community — we look forward to your participation.