Firstly, thank you for considering contributing to MetalState! It's contributors like you that help make MetalState a great tool. This guide outlines how you can contribute to this project.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project, you agree to abide by its terms.
Before you begin, you will need to clone the repository and install its dependencies:
git clone https://github.com/K-NRS/metalstate.git
cd metalstate
yarn install
When you are ready to start working on a feature or a fix:
- Fork the repository on GitHub.
- Create a new branch for your changes.
- Make the changes you want.
- Add tests for your changes. I aim for high test coverage, so ensure any new features or fixes are adequately covered by tests.
- Push your branch to your fork on GitHub.
- Submit a pull request to the main repository.
The fundamental philosophy of MetalState is to provide a minimal and simple state management solution. The core tenet of this philosophy is that accessing and manipulating data should be as easy as using useState
in React.
I aim to offer the smallest, most practical, and extendible state management library that can be used in any React application. With that in mind, contributions should honor this philosophy by maintaining simplicity, minimalism, and extendibility.
Here are some guidelines to keep in mind when contributing:
- Simplicity: The API should be small and easy to understand. Avoid adding unnecessary complexity.
- Consistency: Coding style, file structure, and API naming should be consistent throughout the project.
- Testability: Code should be written in a way that makes it easy to test. Always write tests for new features or bug fixes.
- Documentation: If your changes alter the API or add new features, please also add or update the relevant documentation.
By contributing to the project, you acknowledge that you've read and understand the philosophy and guidelines of the project.
Again, thanks for contributing. Your effort is highly appreciated!