We greatly appreciate your interest in contributing! Our goal is to make contributing to this project as smooth and transparent as possible. Whether you're:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Interested in becoming a maintainer
...we welcome your participation!
We use GitHub to host the code, track issues, manage feature requests, and accept pull requests. All contributions happen via GitHub.
We Follow GitHub Flow
We use the GitHub Flow workflow, so all code changes are made via pull requests. Here's how you can contribute:
- Fork the repository and create a new branch from
main. - Write tests for any new code you've added.
- Update documentation if you’ve made changes to any APIs.
- Run the test suite to ensure everything is working.
- Submit your pull request!
We use Conventional Commits to standardize commit messages. This makes it easier to automate versioning and changelog generation.
The commit message should be structured as follows:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
- Type: one of the commit types listed above (e.g., feat, fix, docs, etc.)
- Scope: the part of the project the change affects (optional but recommended)
- Append a
!after the type/scope to indicate the commit contains a breaking API change. - Message: a concise description of what was changed (use the present tense)
This ensures a consistent history that is easy to read and understand.
Here's a quick guide:
- feat!: A breaking API change.
- Example:
feat!: remove deprecated fields from response
- Example:
- feat: A new feature or enhancement.
- Example:
feat(auth): add login functionality
- Example:
- fix: A bug fix.
- Example:
fix(button): resolve issue with hover state
- Example:
- docs: Documentation changes.
- Example:
docs(readme): update contributing guidelines
- Example:
- style: Changes to code style (e.g., formatting, spacing).
- Example:
style(css): refactor button styling
- Example:
- refactor: Code changes that neither fix a bug nor add a feature, but improve code quality or structure.
- Example:
refactor(auth): clean up token handling
- Example:
- test: Changes related to tests.
- Example:
test(auth): add unit tests for login
- Example:
- chore: Routine tasks such as updating dependencies or build configurations.
- Example:
chore(deps): update npm packages
- Example:
By contributing, you agree that your contributions will be licensed under the Apache-2.0 license, which applies to this project. If you have any concerns, feel free to reach out to the maintainers.
To report bugs, please open an issue on our GitHub Issues page.
Great bug reports help us resolve issues faster! When reporting a bug, please include:
- A brief summary of the issue.
- Steps to reproduce:
- Be as specific as possible.
- If possible, provide sample code that others can run to replicate the problem.
- Expected behavior — What you thought should happen.
- Actual behavior — What actually happened.
- Additional notes — Include any ideas or observations you have (e.g., why you think the bug is happening or what you tried that didn’t work).
Thorough bug reports are incredibly helpful, so please provide as much detail as you can.
We appreciate all contributions, whether large or small. Your involvement makes Solid Memo better for everyone!