First off, thank you for considering contributing to Alien React Signals! 🎉 Your help is greatly appreciated and will make this project better for everyone.
The following is a set of guidelines for contributing to Alien React Signals, which are intended to make the process smooth and efficient for everyone involved.
Click to expand
Please read and follow our Code of Conduct to ensure a welcoming and respectful environment for all contributors.
If you find a bug in Alien React Signals, please open an issue detailing the problem. Include as much information as possible to help us reproduce and fix the issue.
- Search existing issues to see if the bug has already been reported.
- If not, click on "New Issue".
- Choose the appropriate template (Bug Report).
- Fill in the necessary details:
- Description: A clear and concise description of the bug.
- Steps to Reproduce: Detailed steps to help us understand and reproduce the issue.
- Expected Behavior: What you expected to happen.
- Actual Behavior: What actually happened.
- Environment: Include information about your environment (OS, browser, version, etc.).
- Screenshots: If applicable, add screenshots to help explain your problem.
We welcome suggestions for new features or improvements to Alien React Signals.
- Search existing issues to see if your idea has already been proposed.
- If not, click on "New Issue".
- Choose the appropriate template (Feature Request).
- Provide a detailed description of the enhancement, including:
- Problem Statement: What problem does this enhancement solve?
- Proposed Solution: How do you envision this enhancement being implemented?
- Benefits: Why is this enhancement beneficial?
Contributions via pull requests are highly encouraged! Here's how to make a good pull request:
- Fork the Repository: Click the "Fork" button at the top right of the repository page.
- Clone Your Fork:
git clone https://github.com/your-username/alien-react-signals.git
- Create a Branch:
git checkout -b feature/your-feature-name
- Make Your Changes: Implement your feature or fix.
- Run Tests: Ensure all tests pass before committing.
- Commit Your Changes:
git commit -m "Add feature: describe your feature"
- Push to Your Fork:
git push origin feature/your-feature-name
- Open a Pull Request: Navigate to the original repository and click "Compare & pull request".
- Follow the Code Style: Ensure your code adheres to the project's style guidelines.
- Write Clear Commit Messages: Use descriptive commit messages that explain the "why" behind your changes.
- Include Tests: If applicable, add tests to cover your changes.
- Update Documentation: If your changes require updates to the documentation, please include them.
- Be Responsive: Engage in the discussion if reviewers have questions or feedback.
- Consistency: Follow the existing code style for readability and maintainability.
- TypeScript: Ensure type safety and leverage TypeScript features effectively.
- Naming Conventions: Use clear and descriptive names for variables, functions, and components.
- Documentation: Provide JSDoc comments for public APIs and complex logic within the codebase.
To set up the project locally for development and testing, follow these steps:
- Clone the Repository:
git clone https://github.com/your-username/alien-react-signals.git cd alien-react-signals
- Install Dependencies:
bun install
- Build the Project:
bun run build
Ensure all tests pass before submitting a pull request.
- Run All Tests:
bun test
- Run Tests in Watch Mode:
bun test --watch
- Check Test Coverage:
bun test --coverage
Use clear and descriptive commit messages to make it easier to understand the history of changes.
-
Format:
[type]: [subject] [body] [footer]
-
Types:
feat
: A new featurefix
: A bug fixdocs
: Documentation changesstyle
: Code style changes (no logic changes)refactor
: Code refactoringtest
: Adding or updating testschore
: Other changes (build process, dependencies, etc.)
-
Examples:
feat: add support for async computed signals
fix: resolve type errors in test suite
docs: update README with usage examples
- Alien Signals by StackBlitz for the foundational signal implementation.
- Jotai for inspiring the API design.
- React for the UI library integration.
- @testing-library/react for the testing utilities.
- Happy DOM for the DOM environment in testing.
- Bun for the fast JavaScript runtime and testing framework.
Thank you again for your interest in contributing to Alien React Signals! If you have any questions or need further assistance, feel free to reach out by opening an issue or contacting the maintainers directly.
Happy Coding! 🚀