.. _contributing: Contributing Guidelines ======================= Contributing to :code:`watex` goes beyond code submission. It encompasses improving documentation, designing algorithms, reporting bugs, and engaging with the community to discuss enhancements and features. This section provides a roadmap for all potential contributors, ensuring a welcoming and productive environment. Getting Started --------------- Before contributing, we recommend familiarizing yourself with the :code:`watex` codebase and contribution process: - Review the `Development Guide <#development>`_ and `Report Bugs <#report-bugs>`_ sections. - Explore open issues to find areas where you can contribute. - Engage with the community on forums or chats to discuss your ideas and gather feedback. General Support ---------------- For queries like "how do I do X?" we recommend using [StackOverflow]. It has a broader audience to assist you. When posting: - Include runnable code to illustrate your question. - Clearly define your objective and the issues encountered. - Tag your question with `watex` to increase visibility. Visit StackOverflow here: `https://stackoverflow.com/questions/tagged/watex` Code Contributions ------------------ For code contributions, including new features or bug fixes: 1. Fork the repository and create your branch from *main*. 2. Write clear, concise code and adhere to the coding standards mentioned in PEP8. 3. Ensure your code is accompanied by tests proving its functionality. 4. Include documentation for every new feature or algorithm. 5. Submit a pull request with a detailed description of the changes and reference any related issue(s). Documentation Improvements -------------------------- Good documentation is crucial for any open-source project. To contribute: - Identify gaps or improvements in the existing documentation. - Use reStructuredText format for consistency. - Submit a pull request with your suggested changes. Bug Reporting --------------- Found a bug? Help us improve watex by reporting it on the [GitHub issue tracker](https://github.com/WEgeophysics/watex/issues/new). A useful `bug report` should have: - A reproducible code snippet that demonstrates the bug. - The unexpected output or error message received. - An explanation of why the observed behavior is incorrect. - Version information for watex and any relevant dependencies like matplotlib. To facilitate reproduction of the issue, try using synthetic data or datasets available via `watex.datasets.load_XXX`. If your issue is data-specific, anonymize and share it as a `.txt` file attached to your GitHub issue. Before submitting a new bug report, reviewing the error message and existing issues can often provide a quick resolution and prevent duplicate reports. See more `Report Bugs` section. New Features ------------- For feature suggestions, open an issue to initiate a discussion. Keep in mind, our current focus is on refining the API and internals. As such, we might prioritize features that align with our development roadmap over novel functionalities. To suggest a new feature, visit: `https://github.com/WEgeophysics/watex/issues/new` Development ------------ If you're interested in contributing code, especially new algorithms, refer to our [Development Guide](https://watex.readthedocs.io/en/latest/development.html). It outlines the preferred syntax and practices for integrating with the watex `API`. Contributors are encouraged to familiarize themselves with watex's coding conventions and contribution processes outlined in this document and the linked `Development Guide`. Community and Support --------------------- Join our community forums or chat channels to ask questions, offer help, or discuss watex developments. Your participation strengthens :code:`watex` and benefits all users. .. note:: We strive for a respectful and inclusive environment. Please adhere to watex development to create interacting community. Engage with the :code:`watex` community for support, discussion, and collaboration. Your participation will help solve your queries but also contributes to the collective knowledge base. Remember, contributing to watex isn't just about code; it's about supporting each other, improving documentation, and making watex more accessible to everyone. Whether you're reporting a bug, suggesting a feature, or helping a fellow user, you're contributing to the project's success. By following these guidelines, you contribute to the sustainability and success of watex. We appreciate your contributions and look forward to your innovative ideas and improvements! Thank you for contributing to watex!