From c620c95e608d382995b19fa40af1cc7f3cedcfbe Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 27 Apr 2026 19:15:34 +0000 Subject: [PATCH 1/3] Initial plan From cfa383904335752689913cb5a7985f794630a0d5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 27 Apr 2026 19:22:10 +0000 Subject: [PATCH 2/3] Add missing GitHub community health files Agent-Logs-Url: https://github.com/tim-dickey/duplicate-finding-tool/sessions/f4a5aac7-217f-470d-8f66-45a7ccf2a35c Co-authored-by: tim-dickey <80638631+tim-dickey@users.noreply.github.com> --- .github/ISSUE_TEMPLATE/bug_report.yml | 71 ++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 + .github/ISSUE_TEMPLATE/feature_request.yml | 57 +++++++++++ .github/PULL_REQUEST_TEMPLATE.md | 32 ++++++ CODE_OF_CONDUCT.md | 33 +++++++ CONTRIBUTING.md | 107 +++++++++++++++++++++ SECURITY.md | 47 +++++++++ SUPPORT.md | 48 +++++++++ 8 files changed, 400 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 SECURITY.md create mode 100644 SUPPORT.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..48a56d7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,71 @@ +name: Bug Report +description: Report a bug in Duplicate Finding Tool +labels: ["bug"] +title: "[Bug] " +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to report a bug! Please provide as much detail as possible. + + - type: textarea + id: description + attributes: + label: Description + description: Clear description of the bug + placeholder: "Describe what's happening..." + validations: + required: true + + - type: textarea + id: steps + attributes: + label: Steps to Reproduce + description: Exact steps to reproduce the issue + placeholder: | + 1. Run this command... + 2. Pass this file... + 3. See the error... + validations: + required: true + + - type: textarea + id: expected + attributes: + label: Expected Behavior + description: What should happen + placeholder: "The program should..." + validations: + required: true + + - type: textarea + id: actual + attributes: + label: Actual Behavior + description: What actually happens + placeholder: "Instead, the program..." + validations: + required: true + + - type: textarea + id: environment + attributes: + label: Environment + description: Your system details + placeholder: | + - OS: [e.g., macOS 12, Ubuntu 22.04, Windows 11] + - Python version: [e.g., 3.9, 3.10, 3.11] + - Package version: [e.g., 0.1.0] + value: | + - OS: + - Python version: + - Package version: + + - type: textarea + id: context + attributes: + label: Additional Context + description: Any other relevant information (optional) + placeholder: "Error output, logs, screenshots, etc..." + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..9ca9d6d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: GitHub Discussions + url: https://github.com/tim-dickey/duplicate-finding-tool/discussions + about: Ask questions and discuss features here diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..11b1405 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,57 @@ +name: Feature Request +description: Propose a new feature +labels: ["enhancement"] +title: "[Feature] " +body: + - type: markdown + attributes: + value: | + Thanks for suggesting an enhancement! Please provide clear details about your idea. + + - type: textarea + id: summary + attributes: + label: Summary + description: Brief description of the feature + placeholder: "I would like to..." + validations: + required: true + + - type: textarea + id: motivation + attributes: + label: Motivation / Use Case + description: Why do you need this feature? + placeholder: "This would help because..." + validations: + required: true + + - type: textarea + id: solution + attributes: + label: Proposed Solution + description: How should this feature work? + placeholder: | + The feature should: + 1. ... + 2. ... + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: Alternatives Considered + description: Other approaches you've considered (optional) + placeholder: "I considered..." + validations: + required: false + + - type: textarea + id: context + attributes: + label: Additional Context + description: Any other details (optional) + placeholder: "Related issues, similar tools, etc..." + validations: + required: false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..c17761f --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,32 @@ +## Description + + +## Related Issue + + +## Type of Change + + +- [ ] Bug fix (non-breaking change that fixes an issue) +- [ ] New feature (non-breaking change that adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to change) +- [ ] Documentation update + +## How Has This Been Tested? + + +- [ ] Unit tests +- [ ] Integration tests +- [ ] Manual testing +- [ ] All tests pass + +## Checklist + + +- [ ] My code follows the style guidelines (`ruff check`, `ruff format`) +- [ ] I have performed a self-review of my own code +- [ ] I have commented my code, particularly in hard-to-understand areas +- [ ] I have made corresponding changes to the documentation +- [ ] My changes generate no new warnings +- [ ] I have added tests that prove my fix is effective or that my feature works +- [ ] New and existing tests pass locally diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..8ae3e74 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,33 @@ +# Contributor Covenant Code of Conduct + +## Our Commitment + +We are committed to providing a welcoming and inspiring community for all. We pledge to create an environment in which every individual feels valued and respected, regardless of background, identity, or experience. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior include: + +- The use of sexualized language or imagery and unwelcome sexual attention or advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or email address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the Contributor Covenant, version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..3efb8f7 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,107 @@ +# Contributing to Duplicate Finding Tool + +Thank you for considering contributing to the Duplicate Finding Tool! We welcome all kinds of contributions, including bug reports, feature requests, documentation improvements, and code contributions. + +## Reporting Bugs + +### Before Submitting a Bug Report + +- Check the issue tracker to ensure the bug hasn't already been reported +- Check the documentation and README +- Collect relevant information about your environment + +### How to Submit a Bug Report + +Please use GitHub Issues with the Bug Report template. Include: +- A clear, descriptive title +- Exact steps to reproduce the issue +- Expected behavior vs. actual behavior +- Your environment (OS, Python version, package version) +- Any relevant logs or error messages + +## Suggesting Enhancements + +Use GitHub Issues with the Feature Request template. Include: +- A clear, descriptive summary of the feature +- The motivation and use case +- Proposed implementation details +- Alternative solutions you've considered +- Any additional context + +## Development Setup + +1. Clone the repository +2. Create a virtual environment: `python -m venv venv` +3. Activate it: `source venv/bin/activate` (or `venv\Scripts\activate` on Windows) +4. Install in development mode: `pip install -e .[dev]` + +## Coding Standards + +This project follows strict code quality standards: + +- **Linting**: Run `ruff check .` to check for style issues +- **Type Checking**: Run `mypy src` for type safety +- **Formatting**: Run `ruff format .` to auto-format code +- **Testing**: Run `pytest` to ensure all tests pass + +Before submitting a PR, ensure: +- All code passes `ruff check` and `ruff format` +- All code passes `mypy` type checking +- All tests pass with `pytest` +- New code includes appropriate unit tests + +## Testing + +Tests are located in the `tests/` directory and use pytest. To run tests: + +```bash +pytest # Run all tests +pytest -v # Verbose output +pytest tests/test_file.py # Run specific test file +pytest -k test_name # Run specific test +``` + +Aim for good test coverage of new code. + +## Pull Request Process + +1. Fork the repository and create a feature branch: `git checkout -b feature/your-feature-name` +2. Make your changes, following the coding standards above +3. Add or update tests as needed +4. Commit your changes with clear, descriptive messages +5. Push to your fork and submit a Pull Request +6. Ensure all CI checks pass +7. Wait for review and address any feedback + +### Pull Request Checklist + +- [ ] My code follows the style guidelines (ruff, mypy) +- [ ] I have performed a self-review of my code +- [ ] All tests pass locally +- [ ] I have added/updated documentation if needed +- [ ] I have added/updated tests for new functionality +- [ ] My commit messages are clear and descriptive + +## Commit Message Guidelines + +Write clear commit messages that: +- Start with a short summary (50 characters or less) +- Use imperative mood ("Add feature" not "Added feature") +- Reference related issues (e.g., "Fixes #123") +- Provide more details in the body if needed, separated by a blank line + +Example: +``` +Add MinHash clustering for duplicate detection + +This implements LSH-based clustering for efficient duplicate +detection. Improves performance by 10x for large datasets. + +Fixes #456 +``` + +## Questions? + +Feel free to open a discussion in GitHub Discussions for questions or open an issue for bugs/features! + +Thank you for contributing! 🎉 diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..e129708 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,47 @@ +# Security Policy + +## Supported Versions + +Security updates are provided for the latest release on the main branch. We recommend always using the latest version for the best security and stability. + +| Version | Supported | +|---------|-----------| +| Latest (main) | ✅ | +| Previous releases | Case-by-case | + +## Reporting a Vulnerability + +**Please do not open a public issue for security vulnerabilities.** + +To report a security vulnerability, please use GitHub's "Report a vulnerability" button on the Security tab, or email the maintainers directly if you have an existing contact. + +### What to Include in a Report + +Please provide: +- A clear description of the vulnerability +- Steps to reproduce (or proof of concept) +- Potential impact assessment +- Suggested fix (if available) +- Your contact information + +## Response Timeline + +We aim to follow this timeline for security issues: + +- **~48 hours**: Acknowledge receipt of the report +- **~7 days**: Provide status update and expected timeline +- **~90 days**: Release a security patch for confirmed vulnerabilities + +Critical vulnerabilities may be expedited. + +## Security Best Practices + +When using the Duplicate Finding Tool: +- Keep the package updated to the latest version +- Be cautious with untrusted input files +- Review file integrity before processing large datasets +- Report any suspicious behavior + +## Acknowledgments + +We appreciate responsible disclosure and will acknowledge security researchers who help improve our project's security. diff --git a/SUPPORT.md b/SUPPORT.md new file mode 100644 index 0000000..50e4963 --- /dev/null +++ b/SUPPORT.md @@ -0,0 +1,48 @@ +# Support + +We're here to help! Here's how to get support for the Duplicate Finding Tool. + +## Getting Help + +### GitHub Discussions (Recommended for Questions) + +Use [GitHub Discussions](https://github.com/tdickey/duplicate-finding-tool/discussions) for: +- General questions about usage +- How-to questions +- Best practices and tips +- Feature discussions + +This is the best place for community-driven answers and conversations. + +### GitHub Issues (For Bugs and Feature Requests) + +Use [GitHub Issues](https://github.com/tdickey/duplicate-finding-tool/issues) for: +- **Confirmed bugs** - reproducible issues with the code +- **Feature requests** - proposals for new functionality +- Please use the provided templates + +⚠️ **Note**: General usage questions should go to Discussions, not Issues. + +## Documentation + +Before asking, please check: +- [README.md](README.md) - Quick start and overview +- [docs/](docs/) folder - Detailed documentation +- Existing Discussions and closed Issues + +## What to Expect + +- We're all volunteers contributing our time +- Response times vary based on availability +- We'll do our best to help, but support is best-effort +- For commercial support needs, please inquire directly + +## Contributing to Support + +You can also help by: +- Answering questions in Discussions +- Improving documentation +- Creating examples and tutorials +- Testing and reporting bugs + +Thank you for being part of our community! From 408c14f9eef82fb1d39aa875fad8697303661890 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 27 Apr 2026 19:22:57 +0000 Subject: [PATCH 3/3] Fix incorrect GitHub username in SUPPORT.md URLs Agent-Logs-Url: https://github.com/tim-dickey/duplicate-finding-tool/sessions/f4a5aac7-217f-470d-8f66-45a7ccf2a35c Co-authored-by: tim-dickey <80638631+tim-dickey@users.noreply.github.com> --- SUPPORT.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SUPPORT.md b/SUPPORT.md index 50e4963..51b130e 100644 --- a/SUPPORT.md +++ b/SUPPORT.md @@ -6,7 +6,7 @@ We're here to help! Here's how to get support for the Duplicate Finding Tool. ### GitHub Discussions (Recommended for Questions) -Use [GitHub Discussions](https://github.com/tdickey/duplicate-finding-tool/discussions) for: +Use [GitHub Discussions](https://github.com/tim-dickey/duplicate-finding-tool/discussions) for: - General questions about usage - How-to questions - Best practices and tips @@ -16,7 +16,7 @@ This is the best place for community-driven answers and conversations. ### GitHub Issues (For Bugs and Feature Requests) -Use [GitHub Issues](https://github.com/tdickey/duplicate-finding-tool/issues) for: +Use [GitHub Issues](https://github.com/tim-dickey/duplicate-finding-tool/issues) for: - **Confirmed bugs** - reproducible issues with the code - **Feature requests** - proposals for new functionality - Please use the provided templates