# 🤝 How to Contribute

Thank you for your interest in contributing to Meteors! We welcome contributions from the community to help improve and expand the library. This guide will walk you through the process of contributing to the project.

## 📋 Types of Contributions

There are several ways you can contribute to Meteors:

- 🐛 Reporting bugs
- 💡 Suggesting new features or enhancements
- 📖 Improving documentation
- 💻 Writing code (fixing bugs, implementing new features)
- 🧪 Adding or improving test cases
- 📣 Spreading the word about Meteors

## 🌿 Getting Started

To start contributing to Meteors, follow these steps:

1. 🍴 Fork the Meteors repository on GitHub.
2. 📥 Clone your forked repository to your local machine.
3. 🔀 Create a new branch for your contribution.
4. 📦 Set rye `rye pin <python_version> && rye sync`.
5. 🛠️ Make your changes or additions.
6. ✅ Test your changes to ensure they work as expected `rye test`.
7. 🧹 Lint your code `rye run pre-commit run --all-files`.
8. 📝 Commit your changes with a clear and descriptive commit message.
9. 📤 Push your changes to your forked repository.
10. 🔌 Submit a pull request to the main Meteors repository.
11. 📝 Fill out the pull request template with the necessary information.

## 📐 Code Guidelines

When contributing code to Meteors, please follow these guidelines:

- 📚 Document your code using docstrings and comments.
- ✅ Write unit tests for new features or bug fixes.
- 🧹 Ensure your code is clean, readable, and well-structured.
- 🚨 Run the existing tests and make sure they pass before submitting a pull request.
- 🐍 Run linter to clean the code.

## 📜 Code of Conduct

Please note that by contributing to Meteors, you are expected to adhere to our [Code of Conduct](https://github.com/xai4space/meteors/blob/main/code_of_conduct.md). Be respectful, inclusive, and considerate in your interactions with others.

## 🙌 Recognition

We appreciate all contributions to Meteors, and we make sure to recognize our contributors. Your name will be added to the list of contributors in the project's README file.

If you have any questions or need further assistance, feel free to reach out to the maintainers or open an issue on the GitHub repository.

Thank you for your contribution to Meteors! 🎉🚀
