Contribution Guidelines
Thank you for considering contributing to this project! Contributions of all kinds are welcome, whether it’s bug reporting, feature requests, improving documentation, or submitting code. Before getting started, please take a moment to read our contribution guidelines.
1. Introduction
The RADFish project is driven by a community of developers, users, and contributors. We believe in open collaboration, and your input helps improve the project. Whether you're new to open-source or a seasoned contributor, we're excited to have you on board. Please follow the guidelines outlined here for a smooth contribution process.
2. Report Bugs
If you encounter any bugs, glitches, or unexpected behavior while using our software, we encourage you to report them.
How to Report a Bug:
- Search through the Project Roadmap or the Issues Log to make sure the bug hasn’t already been reported.
- If it's a new bug, create a new issue using our Bug Report Template.
- Provide as much detail as possible, including the steps to reproduce the bug, the version of the software, and any error messages.
Template Bug Report:
When reporting a bug, please use this template so we can diagnose and resolve the issue efficiently. Providing detailed and accurate information helps us reproduce the problem and implement a fix faster.
Bug Description:
Provide a clear and concise description of the issue. Focus on what the problem is, how it impacts functionality, and any observable symptoms (e.g., error messages or unexpected behavior). The more specific, the better.
Example: "When I try to save a new entry in the form, I get an error message that says 'Failed to save data,' and the form remains unsaved."
Steps to Reproduce:
List the exact steps someone needs to follow in order to replicate the bug. Be as detailed as possible so the bug can be consistently reproduced. This will help our team trace the issue.
- Go to '...'
- Click on '...'
- Scroll down to '...'
- See error '...'
Example:
1. Go to the homepage. 2. Click "Submit" in the top-right corner. 3. Fill in all form fields. 4. Click "Save" and see the error message: "Failed to save data."
Expected Behavior:
Describe what you expected to happen versus what actually happened. This helps us understand the intended functionality and where it's diverging.
Example: "I expected the form to save successfully without showing an error message and for the new entry to appear in the list of entries."
Screenshots:
If applicable, attach screenshots to help illustrate the problem. Highlighting the specific areas in the screenshots that demonstrate the issue is particularly useful.
Example: A screenshot of the error message or the UI element that isn't functioning as expected
System Info:
Provide details about the system you were using when you encountered the issue. Knowing your environment can help us identify compatibility problems or issues specific to certain setups.
- Operating System: [e.g., Windows 11, macOS 13 Ventura]
- Browser/Environment: [e.g., Chrome v114, Firefox v106, Safari]
- Version of RADFish: [e.g., 1.0.0] (If you’re not sure, you can usually find the version in the "About" section of the application.)
Additional Context:
Include any other relevant information about the issue. This could be recent changes made to your system, specific data that triggers the bug, network issues, or other background that may help diagnose the problem.
Example: "This issue started occurring after I updated to the latest version of the software. Prior to the update, everything worked fine."
3. Documentation and Examples
Our documentation is essential to help new users and contributors understand the project. If you notice missing, outdated, or unclear information in the documentation, please help us improve it.
Help us Improve the Documentation:
- If you find a section that is unclear or incomplete, feel free to submit a pull request with your improvements.
- If you’re unsure how to improve the documentation, [open an issue](https://github.com/NMFS-RADFish/boilerplate/issues) and describe what is missing or unclear.
- Examples and tutorials are especially valuable! If you've used the project and created your own examples, we would love to add them to our examples library.
4. Feature Requests
We value your input and welcome ideas that could improve our product! To ensure your feature request gets the attention it deserves, please follow the steps below. Detailed information helps us assess, prioritize, and potentially implement your idea faster.
- Search through the Project Roadmap or the Issues Log to make sure the feature hasn’t already been requested.
- If it's a new feature, create a new issue using our Feature Request Template.
- Provide as much detail as possible to describe the feature.
Feature Request Template
Feature Description:
Provide a clear and concise description of the feature you're proposing. What should the feature do, and how would it benefit users? Try to frame it in terms of functionality rather than just a solution.
Example: "Allow users to export reports in both PDF and Excel formats from the dashboard. This would make it easier to share and analyze data offline."
Why is this Feature Important?
Explain the impact of the feature. Why is it valuable? Does it address a current limitation, streamline a process, or solve a specific problem? Make sure to convey how it improves the user experience or adds significant value to the project.
Example: "Currently, users must manually copy and format data from the dashboard, which is time-consuming. Exporting reports in common formats like PDF and Excel would save users time and reduce errors."
How Should this Feature Work?
Describe how you envision the feature working. This can be high-level or detailed, depending on your familiarity with the project. Include possible interactions, workflows, or any user interface elements you think should be part of the feature. This helps the team better understand the scope of your idea.
Example: "Add an 'Export' button in the upper-right corner of the dashboard that allows users to choose between PDF or Excel formats. When pressed, the data from the visible dashboard should be automatically converted and downloaded in the chosen format."
Additional Context:
Provide any other relevant information that supports your request. This could include links to related documentation, screenshots, or references to similar features in other tools or products. Adding as much detail as possible will help us understand the request from different perspectives.
Example: "See attached screenshots from a similar tool that allows for report exporting. This feature could be adapted to fit our platform's existing layout and style."
By following this format, your feature request will be clear, actionable, and easy for us to evaluate. Thank you for helping us make RADFish better for everyone!
5. Other Contributions
If you would like to contribute in other ways (e.g., translations, community management, testing), we are always open to discussing how you can help! Visit our Community page to learn how to join.
6. How to Make a Pull Request
If you want to propose a code change, here's how to submit a pull request:
- First, make sure there is an issue that describes the problem you are solving. Search the Project Roadmap to find an existing issue. If none exists, create your own bug report or feature request.
- Fork the relevant repo into your GitHub account.
- Create a branch from directly from your issue submission. Use this branch to do your development.
- When your code changes are ready for review, open a pull request. Be sure to fill out all the applicable fields in the generated PR description.
- Link your pull request to the related GitHub issue. This important step helps us know which issue this solution fixes. Tip: You can link your pull request to the related issue in the body of the pull request description by adding the text “Closes #[issue number]” or “Resolves #[issue number]”.
- Submit your pull request against the development branch.
If the pull request is accepted, we will schedule the issue and merge the pull request for you.
7. How We Prioritize Bug Reports and Feature Requests
- Urgency and Impact: Bugs that affect a large number of users or introduce security vulnerabilities will be prioritized.
- Ease of Implementation: Quick fixes or improvements may be fast-tracked, especially if they significantly improve the project.
- Alignment with Roadmap: Feature requests and contributions will be evaluated based on their alignment with our Project Roadmap.
We review bug reports and feature requests regularly. You can track progress by subscribing to updates on the relevant GitHub issue.
8. Project Roadmap
You can view our Project Roadmap on GitHub. The roadmap outlines our upcoming priorities and major features. It shows what we're working on next.
9. Code of Conduct
We ask that all contributors adhere to our Community Conduct. This ensures we maintain a safe, productive, and inclusive environment for everyone.
10. Licenses and Attribution
This project is licensed under the Apache License, Version 2.0. Please make sure that any contributions comply with this license. If you are submitting code or other contributions, you are agreeing to license your contributions under this same license.
For external libraries or code used in the project, we provide attribution as necessary. If you believe an attribution is missing, please open an issue.