CONTRIBUTING.md
October 22, 2024 · View on GitHub
First off, thanks for taking the time to contribute!
Table Of Contents
- Code of Conduct
- I Don't Want to Read This Whole Thing, I Just Have a Question!!!
- What Should I Know Before I Get Started?
- How Can I Contribute?
- Styleguides
- Additional Notes
- Attribution
Code of Conduct
This project and everyone participating in it is governed by the Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to @rreinecke.
I don't want to read this whole thing, I just have a question!!!
If you have a software issue please take a look at the open issues. If your isn't mentioned yet feel free to contact @rreinecke directly.
What should I know before I get started?
Packages
Install the required packages using:
pip install -r requirements.txt
Design Decisions
Design Decisions
Understanding the project's design principles will help you align your contributions:
-
Streamlit for Interactive Front-End: The project uses Streamlit to create a user-friendly and interactive web interface. This allows the presentation of groundwater models, data visualization, and user inputs through an accessible, Python-based framework. Contributors should ensure that new features maintain compatibility with Streamlit's functionality and follow best practices for building intuitive user interfaces.
-
Modular Architecture: The application is organized into modules, each handling specific aspects of the project, such as data retrieval, visualization, and user interactions. This modular approach allows for easier maintenance and scalability of the codebase.
-
Community-Driven Data Collection: GroMoPo relies on contributions from the global groundwater modeling community. The design focuses on ease of data submission and review, making it straightforward for users to contribute new groundwater models.
-
Test-Driven Development (TDD): We prioritize writing tests alongside code to ensure that both the front-end and back-end components function as expected. Automated tests help maintain the reliability of the project as new features are added.
-
Data Integration with HydroShare: The project integrates closely with HydroShare, where the groundwater model data is hosted. Contributions that involve data handling should consider the compatibility with HydroShare's APIs and data formats.
-
Code Readability and Maintainability: Clean and readable code is highly valued. We prioritize clarity and consistency over clever shortcuts, making it easier for new contributors to understand and work on the codebase.
How Can I Contribute?
If you want to become a full contributor please PM rreinecke
Reporting Bugs
Please use the issue tracking system and this template:
### Overview Description
# Steps to Reproduce
1.
2.
3.
# Actual Results
# Expected Results
# Reproducibility
# Additional Information:
Suggesting Enhancements
Have an idea to improve the project? We’d love to hear it! To suggest an enhancement:
- Search Existing Issues: Before suggesting a new feature, please check the existing issues to see if a similar suggestion has been made.
- Create a New Issue: If your suggestion is unique, open a new issue with a clear and detailed description of the enhancement.
- Describe the Use Case: Explain why this feature would be useful for users or developers.
- Be Open to Discussion: Engage in any discussions related to your suggestion. We value feedback from the community!
Your First Code Contribution
Ready to make your first contribution? Follow these steps:
- Fork the Repository: Click the "Fork" button on the project page.
- Clone Your Fork:
git clone https://github.com/your-username/GroMoPo/
- Create a Branch: Use a descriptive name for your branch.
git checkout -b branch_name
- Make Changes: Implement your feature or fix a bug.
- Write Tests: Make sure new code is covered by tests.
- Commit Your Changes: Use a clear and concise commit message.
git commit -m “Add feature that does X”
- Push Your Changes:
git push origin branch_name
- Open a Pull Request: Go to the original repository and open a pull request. Fill in the template and provide a detailed description of your changes.
Pull Requests
Pull requests (PRs) are the best way to propose changes:
- Link to Issues: Reference any relevant issue numbers (e.g.,
Closes #123). - Include Tests: If you add new features or fix bugs, include tests to verify your changes.
- Follow the Styleguides: Make sure your code adheres to the project's style guidelines.
- Be Responsive: Engage with any feedback or review comments on your PR.
Add validation for user input in form
Ensures that user input is properly validated before submission.
Fixes #123.
Styleguides
Git Commit Messages
Python Styleguide
Documentation Styleguide
Additional Notes
Issue and Pull Request Labels
Attribution
Adapted from the Atom editor project