Thank you for your interest in contributing to the Dev Apps & Extensions monorepo! This guide will help you get started.
We expect all contributors to follow our code of conduct:
- Be respectful and inclusive
- Welcome newcomers and help them learn
- Focus on constructive criticism
- Respect differing viewpoints and experiences
- Node.js >= 18.0.0
- pnpm >= 8.0.0
- Git
- VS Code (recommended)
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/Dev-Apps-And-Extensions.git cd Dev-Apps-And-Extensions - Install dependencies:
pnpm install
- Create a feature branch:
git checkout -b feature/your-feature-name
- Write code following our style guide
- Add tests for new functionality
- Update documentation as needed
- Run linting:
pnpm lint
- Build the project:
pnpm build
- Run tests:
pnpm test
We follow Conventional Commits:
type(scope): subject
body
footer
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Examples:
feat(extensions): add new command palette feature
fix(cloudflare): resolve auth token validation issue
docs(readme): update installation instructions
extensions/- VS Code extensionscloudflare/- Cloudflare Workersvercel/- Vercel Edge/API functionswebsite/- Documentation websitetools/- Shared utilitiesautomation/- CLI and scriptsconfig/- Shared configurations
Use the CLI to scaffold new packages:
pnpm cli scaffold-extension
pnpm cli scaffold-worker
pnpm cli scaffold-vercel# Run all tests
pnpm test
# Run tests for specific package
pnpm --filter @repo/package-name test
# Run tests in watch mode
pnpm --filter @repo/package-name test:watch- Place tests in
__tests__directories or*.test.tsfiles - Use descriptive test names
- Follow the Arrange-Act-Assert pattern
- Mock external dependencies
- Use JSDoc comments for functions and classes
- Include examples where helpful
- Document complex algorithms
- Keep comments up-to-date
- Update relevant markdown files
- Add screenshots for UI changes
- Update the website if needed
- Include migration guides for breaking changes
- Push your changes to your fork
- Create a pull request
- Fill out the PR template
- Wait for review from maintainers
- Address feedback
- Once approved, a maintainer will merge
- Code follows style guidelines
- Tests pass locally
- Documentation is updated
- Commit messages follow convention
- No merge conflicts
- PR description is complete
- Use TypeScript for all code
- Enable strict mode
- Prefer interfaces over types for objects
- Use meaningful variable names
- Avoid
anytype
We use Prettier for formatting:
pnpm format # Format all files
pnpm format:check # Check formattingWe use ESLint:
pnpm lint # Lint all files- Check existing issues
- Verify the bug in the latest version
- Collect relevant information
**Describe the bug**
A clear description of the bug.
**To Reproduce**
Steps to reproduce:
1. Go to '...'
2. Click on '...'
3. See error
**Expected behavior**
What you expected to happen.
**Screenshots**
If applicable, add screenshots.
**Environment:**
- OS: [e.g., Windows 11]
- Node: [e.g., 18.0.0]
- VS Code: [e.g., 1.80.0]We welcome feature requests! Please:
- Check if the feature already exists
- Describe the use case
- Explain the expected behavior
- Consider implementation complexity
Maintainers follow this process:
- Update version numbers
- Update CHANGELOG.md
- Create git tag
- Build and test
- Publish to registries
- Create GitHub release
- Issues: Report bugs or request features
- Discussions: Join conversations
- Discord: Join our community server
By contributing, you agree that your contributions will be licensed under the project's licenses:
- Monorepo infrastructure: MIT
- Extensions: See individual LICENSE files
Contributors are recognized in:
- GitHub contributors page
- Release notes
- README acknowledgments
Thank you for contributing! 🎉