diff --git a/contributing.md b/contributing.md new file mode 100644 index 0000000..528a8c7 --- /dev/null +++ b/contributing.md @@ -0,0 +1,133 @@ +# Contributing to Meshview + +First off, thanks for taking the time to contribute! ❤️ +All types of contributions are encouraged and valued. See the [Table of Contents](#table-of-contents) for ways to help and details about how this project handles contributions. Please read the relevant section before getting started — it will make things smoother for both you and the maintainers. + +The Meshview community looks forward to your contributions. 🎉 + +> And if you like the project but don’t have time to contribute code, that’s fine! You can still support Meshview by: +> - ⭐ Starring the repo on GitHub +> - Talking about Meshview on social media +> - Referencing Meshview in your own project’s README +> - Mentioning Meshview at local meetups or to colleagues/friends + +--- + +## Table of Contents + +- [Code of Conduct](#code-of-conduct) +- [I Have a Question](#i-have-a-question) +- [I Want to Contribute](#i-want-to-contribute) + - [Reporting Bugs](#reporting-bugs) + - [Suggesting Enhancements](#suggesting-enhancements) + - [Your First Code Contribution](#your-first-code-contribution) + - [Improving the Documentation](#improving-the-documentation) +- [Styleguides](#styleguides) + - [Commit Messages](#commit-messages) +- [Join the Project Team](#join-the-project-team) + +--- + +## Code of Conduct + +Meshview is an open and welcoming community. We want everyone to feel safe, respected, and valued. + +### Our Standards +- Be respectful and considerate in all interactions. +- Welcome new contributors and help them learn. +- Provide constructive feedback, not personal attacks. +- Focus on collaboration and what benefits the community. + +Unacceptable behavior includes harassment, insults, hate speech, personal attacks, or publishing others’ private information without permission. + +--- + +## I Have a Question + +> Before asking, please read the [documentation](docs/README.md) if available. + +1. Search the [issues list](../../issues) to see if your question has already been asked. +2. If not, open a [new issue](../../issues/new) with the **question** label. +3. Provide as much context as possible (OS, Python version, database type, etc.). + +--- + +## I Want to Contribute + +### Legal Notice +By contributing to Meshview, you agree that: +- You authored the content yourself. +- You have the necessary rights to the content. +- Your contribution can be provided under the project’s license. + +--- + +### Reporting Bugs + +Before submitting a bug report: +- Make sure you’re using the latest Meshview version. +- Verify the issue is not due to a misconfigured environment (SQLite/MySQL, Python version, etc.). +- Search existing [bug reports](../../issues?q=label%3Abug). +- Collect relevant information: + - Steps to reproduce + - Error messages / stack traces + - OS, Python version, and database backend + - Any logs (`meshview-db.service`, `mqtt_reader.py`, etc.) + +How to report: +- Open a [new issue](../../issues/new). +- Use a **clear and descriptive title**. +- Include reproduction steps and expected vs. actual behavior. + +⚠️ Security issues should **not** be reported in public issues. Instead, email us at **meshview-maintainers@proton.me**. + +--- + +### Suggesting Enhancements + +Enhancements are tracked as [issues](../../issues). Before suggesting: +- Make sure the feature doesn’t already exist. +- Search for prior suggestions. +- Check that it fits Meshview’s scope (mesh packet analysis, visualization, telemetry, etc.). + +When submitting: +- Use a **clear and descriptive title**. +- Describe the current behavior and what you’d like to see instead. +- Include examples, screenshots, or mockups if relevant. +- Explain why it would be useful to most Meshview users. + +--- + +### Your First Code Contribution + +We love first-time contributors! 🚀 + +If you’d like to start coding: +1. Look for issues tagged with [good first issue](../../issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22). +2. Fork the repository and clone it locally. +3. Set up the development environment: +4. Run the app locally +5. Create a new branch, make your changes, commit, and push. +6. Open a pull request! + +--- + +### Improving the Documentation + +Docs are just as important as code. You can help by: +- Fixing typos or broken links. +- Clarifying confusing instructions. +- Adding examples (e.g., setting up Nginx as a reverse proxy, SQLite vs. MySQL setup). +- Writing or updating tutorials. + +--- + +## Join the Project Team + +Meshview is a community-driven project. If you consistently contribute (code, documentation, or community help), we’d love to invite you as a maintainer. + +Start by contributing regularly, engaging in issues/PRs, and helping others. + +--- + +✨ That’s it! Thanks again for being part of Meshview. Every contribution matters. \ No newline at end of file