First off, thank you for considering contributing to this npm package template! 🎉
This template is designed to help developers quickly bootstrap production-ready npm packages. Your contributions help make this template even better for the community.
- Code of Conduct
- How Can I Contribute?
- Development Setup
- Pull Request Process
- Style Guidelines
- Community
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Before creating bug reports, please check the existing issues to avoid duplicates. When you create a bug report, please include:
- Clear title and description
- Steps to reproduce the issue
- Expected behavior vs actual behavior
- Environment details (Node.js version, OS, etc.)
- Code samples if applicable
Enhancement suggestions are welcome! Please provide:
- Clear title and description of the enhancement
- Use case explaining why this would be useful
- Possible implementation if you have ideas
- Examples of how it would work
Documentation improvements are always welcome:
- Fix typos or grammar issues
- Add missing examples
- Improve setup instructions
- Add troubleshooting guides
- Build system improvements
- Testing enhancements
- CI/CD workflow improvements
- Development tooling
- More usage examples
- Better TypeScript examples
- Edge case handling
- Performance optimizations
- Node.js 16+ (18+ recommended)
- npm 8+
- Git
- PowerShell (for Windows-specific scripts)
-
Fork and Clone
git clone https://github.com/xarlizard/react-temporal.git cd react-temporal -
Install Dependencies
npm install
-
Run Development Tasks
# Run all checks npm run dev # Individual tasks npm run build npm run test npm run lint npm run typecheck
-
Test the Template
# Test package installation npm pack mkdir test-install cd test-install npm init -y npm install ../react-temporal-*.tgz
├── src/ # Source code
│ ├── __tests__/ # Test files
│ ├── index.ts # Main entry point
│ ├── types.ts # Type definitions
│ └── utils.ts # Utility functions
├── scripts/ # Build and release scripts
├── examples/ # Usage examples
├── .github/ # GitHub workflows and templates
├── .vscode/ # VS Code configuration
└── docs/ # Documentation
We use Jest for testing. Please ensure:
- All tests pass:
npm test - Coverage remains high:
npm run test:coverage - New features have tests: Add tests for new functionality
- Tests are descriptive: Use clear test names and descriptions
We use ESLint and Prettier for code formatting:
- Linting:
npm run lint - Auto-fix:
npm run lint:fix - Prettier: Runs on save (if configured)
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow the style guidelines
- Add tests for new functionality
- Update documentation as needed
-
Test your changes
npm run dev # Run all checks -
Commit your changes
git add . git commit -m "feat: add your feature description"
We follow Conventional Commits:
type(scope): description
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changesrefactor: Code refactoringtest: Test changeschore: Maintenance tasks
Examples:
feat: add TypeScript configuration template
fix: resolve build issue with Windows paths
docs: update README with new setup instructions
chore: update dependencies to latest versions
- Fill out the PR template completely
- Link related issues using "Closes #123"
- Update documentation if needed
- Ensure CI passes (all checks green)
- Request review from maintainers
- Automated checks must pass
- At least one maintainer must approve
- No unresolved conversations should remain
- Squash and merge is preferred
- Use strict TypeScript configuration
- Export types and interfaces
- Document public APIs with JSDoc
- Use meaningful variable names
- Keep functions small and focused
- Use async/await over promises
- Handle errors gracefully
- Write self-documenting code
- Use clear, concise language
- Include code examples
- Update README for new features
- Add inline comments for complex logic
- GitHub Issues: For bugs and feature requests
- GitHub Discussions: For questions and ideas
- Discord/Slack: If available, for real-time chat
Contributors will be recognized in:
- README.md contributors section
- CHANGELOG.md release notes
- GitHub releases (when applicable)
By contributing, you agree that your contributions will be licensed under the same MIT License that covers the project.
Thank you for contributing to make this template better for everyone! 🚀
Happy coding! 💻✨