How to Contribute - Ktiseos-Nyx/Dataset-Tools GitHub Wiki
How to Contribute to Dataset-Tools
Welcome! We're thrilled you're interested in contributing to Dataset-Tools. We believe that diverse perspectives and skill levels make our community stronger. Whether you're a seasoned coder, a UI/UX designer, a meticulous writer, a thorough tester, or just someone passionate about improving AI dataset management and metadata viewing, there's a place for you here.
Ways to Contribute
There are many ways to contribute, even if you don't code! Here are some ideas:
- Code Contributions:
- Tackling bugs (look for "good first issue" or "bug" labels on our issue tracker).
- Implementing new features or enhancements (please discuss your ideas on the issue tracker or our Discord server first to align with project goals).
- Improving code quality (e.g., refactoring, adding type hints, optimizing performance, writing unit tests).
- Documentation:
- Enhancing existing documentation (improving clarity, correcting inaccuracies, adding more examples, updating screenshots).
- Writing new tutorials, guides, or how-to articles for the wiki.
- Helping translate documentation into other languages (if this becomes a project goal).
- Design (UI/UX):
- Proposing UI/UX improvements or creating mockups for new features.
- Designing icons or other visual assets.
- Providing feedback on the overall look, feel, and usability of the application.
- Testing & Quality Assurance:
- Reporting bugs with detailed steps to reproduce, environment information, and expected vs. actual results.
- Testing new features from development branches and providing constructive feedback.
- Helping write or improve automated tests (e.g., PyTest unit tests, integration tests).
- Community Engagement & Support:
- Answering questions and helping others on the issue tracker or our Discord server.
- Sharing how you use Dataset-Tools and contributing to use-case discussions.
- Promoting the project on relevant platforms or communities.
- Ideas and Feedback:
- Suggesting new features or improvements by creating a "feature request" issue.
- Providing thoughtful feedback on existing features or proposed changes.
- Participating in discussions about the project's roadmap and direction.
Contribution Workflow
Here's how you can get started with code contributions:
- Set Up Your Development Environment:
- Ensure you have Python, Git, and can set up a virtual environment as described in our Requirements and Installation and Usage sections.
- Find an Issue or Propose an Idea:
- Browse our issue tracker. Look for issues tagged "good first issue" if you're new, or pick any unassigned issue that interests you.
- If you have a new idea or want to work on a larger feature, please create a new issue or discuss it on our Discord server before starting significant work. This helps ensure alignment and avoids duplicated effort.
- Fork the Repository:
- Go to the Dataset-Tools GitHub page and click the "Fork" button to create your own copy of the project under your GitHub account.
- Clone Your Fork:
- Clone your forked repository to your local machine:
(Replacegit clone https://github.com/YOUR_USERNAME/Dataset-Tools.git cd Dataset-Tools
YOUR_USERNAME
with your actual GitHub username.)
- Clone your forked repository to your local machine:
- Create a Feature Branch:
- Create a new branch from the
main
branch for your changes. Use a descriptive branch name (e.g.,fix/login-bug
,feat/add-filter-by-tag
,docs/update-readme
):git checkout main git pull origin main # Ensure your main branch is up-to-date git checkout -b name-of-your-branch
- Create a new branch from the
- Make Your Changes:
- Implement your code changes, documentation updates, or other contributions.
- Remember to follow any coding style guidelines (e.g., run a linter/formatter if configured for the project).
- Commit Your Changes:
- Commit your changes with clear and descriptive commit messages. We recommend following the Conventional Commits specification.
git add . git commit -m "feat: Add ability to filter images by metadata tag" # Example: git commit -m "fix: Correct image preview aspect ratio" # Example: git commit -m "docs: Clarify installation steps for Linux"
- Commit your changes with clear and descriptive commit messages. We recommend following the Conventional Commits specification.
- Push Your Changes:
- Push your branch and its commits to your forked repository on GitHub:
git push origin name-of-your-branch
- Push your branch and its commits to your forked repository on GitHub:
- Create a Pull Request (PR):
- Go to your forked repository on GitHub. You should see a prompt to create a Pull Request from your recently pushed branch.
- Click "New pull request" or "Compare & pull request."
- Ensure the base repository is
Ktiseos-Nyx/Dataset-Tools
and the base branch ismain
. - Write a clear title and description for your PR. Explain what your changes do and why you made them. Link to any relevant issues (e.g., "Closes #123").
- Review and Iterate:
- Project maintainers and other contributors will review your pull request.
- Be responsive to feedback and be prepared to make further changes or answer questions. This is a collaborative process!
- Merge:
- Once your pull request is approved and passes any automated checks, a maintainer will merge it into the main branch. Congratulations, and thank you for your contribution!
Code of Conduct
We are dedicated to providing a welcoming and harassment-free experience for everyone. All contributors and participants are expected to abide by our Code of Conduct. Please read it thoroughly.
Key Principles:
- Be respectful, constructive, and considerate in all interactions.
- Use inclusive language.
- Focus on ideas and code, not personal attributes.
- Report any violations of the Code of Conduct to the project maintainers.
Using LLMs (Large Language Models) for Development
We are open to the use of Large Language Models (LLMs) like ChatGPT, GitHub Copilot, etc., as tools to assist with development. However, it's crucial to use them responsibly and ethically:
- Understand the Output: Never blindly copy and paste code generated by an LLM. You must understand what the code does, how it works, and its implications.
- Verify and Test Thoroughly: You are responsible for all code you submit. Rigorously review, test, and debug any LLM-generated code before committing it.
- Use as a Learning Aid, Not a Crutch: LLMs can be great for learning, brainstorming, or overcoming a specific block. However, the goal is to enhance your understanding and skills, not to replace them.
- Attribute Appropriately: If a significant or novel portion of your contribution was directly generated by an LLM, it's good practice to acknowledge this in a comment within the code or in your pull request description. Transparency is key.
- No Sensitive Data: Do not input any proprietary, sensitive, or private code/data from this project (or any other) into public LLMs.
- Originality and Licensing: Ensure that any code assisted by LLMs still adheres to the project's license (GPL-3.0) and doesn't introduce incompatible code snippets or licensing issues.
Learning and Growing Together
You don't need to be an expert to contribute! Dataset-Tools is a project where everyone is encouraged to learn and grow.
- Ask Questions: If you're unsure about something, don't hesitate to ask for clarification on the issue tracker or our Discord server.
- Mistakes are Learning Opportunities: Everyone makes mistakes. The important thing is to learn from them.
- Be Patient: Learning and contributing take time. Be patient with yourself and with others in the community.
We deeply appreciate all contributions and look forward to collaborating with you!