Contributing to CurisJS
Thank you for your interest in contributing to CurisJS! This document provides guidelines for contributing.
Code of Conduct
Be respectful and inclusive. We want CurisJS to be a welcoming community for everyone.
How to Contribute
Reporting Bugs
- Use the GitHub issue tracker
- Include a clear title and description
- Provide code examples and steps to reproduce
- Include system information (OS, Node.js version, etc.)
Suggesting Features
- Open a GitHub issue with the "feature request" label
- Clearly describe the feature and its use case
- Explain why this feature would be useful
Pull Requests
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Write or update tests
- Run the test suite (
pnpm test) - Commit your changes (
git commit -m 'Add amazing feature') - Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request
Development Setup
bash
# Clone the repository
git clone https://github.com/Ameriq8/curisjs.git
cd curisjs
# Install dependencies
pnpm install
# Run tests
pnpm test
# Build all packages
pnpm build
# Run dev mode
pnpm devProject Structure
curisjs/
├── packages/
│ ├── core/ # Core framework
│ ├── db/ # Database ORM
│ └── cli/ # CLI tools
├── docs/ # Documentation
├── examples/ # Example applications
└── template/ # Project templatesCoding Guidelines
TypeScript
- Use TypeScript for all code
- Enable strict mode
- Provide type annotations for public APIs
- Avoid
anytypes
Code Style
- Use Prettier for formatting
- Follow existing code patterns
- Write descriptive variable names
- Add comments for complex logic
Testing
- Write tests for new features
- Maintain test coverage above 80%
- Use descriptive test names
- Test edge cases
Commits
- Use conventional commits format
- Keep commits focused and atomic
- Write clear commit messages
Example:
feat(core): add rate limiting middleware
fix(db): resolve transaction rollback issue
docs(cli): update command examplesTesting
bash
# Run all tests
pnpm test
# Run tests in watch mode
pnpm test:watch
# Run tests with coverage
pnpm test:coverage
# Test specific package
pnpm --filter @curisjs/core testDocumentation
- Update documentation for new features
- Include code examples
- Update the changelog
- Add JSDoc comments for public APIs
Questions?
Feel free to open a GitHub issue with your question or join our community discussions.
License
By contributing, you agree that your contributions will be licensed under the MIT License.