Skip to main content

Contributing

When contributing to this project, please first discuss the change you wish to make by creating a new issue. We also established a Code of Conduct for all participants to follow as we foster a positive and inclusive community. Check out these guides:

Code Conventions

Contributors must follow the standard code style and formatting conventions. Check out this guide to learn more.

Pull Requests

Before submitting, please make sure that:

  • Keep it simple: At least (~300 lines of diff). Keep your changes focused and addressing one issue per PR. Otherwise, please split it into separate requests.
  • Make it clear: Write clear and concise commit messages and PR descriptions.
  • Pass all tests: Test your changes thoroughly and ensure they don't introduce any regressions.

Semantic Commit Messages

Semantic commit messages follow a specific format that typically includes a type, an optional scope, and a description. The basic structure is:

<type>(<scope>): <subject>

scopes is optional. Consider adding a scope if the change affects a specific area, such as a module or component. It should be brief yet recognizable, e.g. docs, core.

Example

feat(core): add search to website
^--^^----^ ^-------------------^
| | |
| | +-> Summary in present tense. Use lower case, not title case!
| |
| +-> The package(s) that this change affected.
|
+-------> Type: see above for the list we use.
TypeDescriptionExample Commit message
featA new API or behavior for the end user.allow users to upload profile pictures.
fixA bug fix for the end user.fix mobile login button click issue.
docsA change to the website or other Markdown documents in our repo.update installation guide with troubleshooting steps.
refactorA change to production code that leads to no behavior difference.enhance code readability and maintainability.
testAdding missing tests, refactoring tests; no production code change.add unit tests for user authentication module.
choreUpgrading dependencies, releasing new versions, maintenance tasks.update package.json with latest dependency versions.
miscAnything else that doesn't change production code, yet is not test or chore.update GitHub Actions workflow to include code linting.

More about Conventional Commits.

Contribute

  1. Fork the repository to your GitHub account.
  2. Clone the forked repository to your local machine.
  3. Create a new branch for your feature or bug fix:
git switch -c <'feature/your-feature-name'>
  1. Make your changes and commit them with descriptive commit messages:
git commit -m 'feat:Add some feature'
  1. Push your changes to your forked repository:
git push -u origin <'feature/your-feature-name'>
  1. Open a pull request (PR) against the main repository's main branch.
  2. Ensure that your PR includes a clear description of the changes made and any relevant information.
  3. Our team will review your PR, provide feedback, and merge it if everything looks good.

Licensing

By contributing to this project, you agree that your contributions will be under its MIT license.