Documentation Index
Fetch the complete documentation index at: https://imcui.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Development
This section covers development setup, testing, and contributing to Image Matching WebUI.Development Installation
First, clone the repository and install in development mode:Running Tests
Test Structure
The project uses pytest for testing. Tests are organized in thetests/ directory.
Running All Tests
Running Specific Tests
Test Coverage
Pre-commit Hooks
The project includes pre-commit hooks for code quality checks:- Code formatting (ruff-format)
- Linting (ruff)
- Type checking (mypy)
- C++ formatting (clang-format)
Code Quality Standards
Python Code
- Formatting: Uses
ruff-format - Linting: Uses
ruff - Type Checking: Uses
mypy
C++ Code
- Formatting: Uses
clang-format
Adding New Features
Steps for Adding Features
- Create a feature branch
- Implement your changes
- Write tests for new functionality
- Update documentation
- Run all tests and pre-commit checks
- Submit a pull request
Branch Naming
Use descriptive branch names:Debugging
Verbose Mode
Enable verbose output for debugging:Debug Logs
Logs are written tolog.txt by default. Check this file for detailed error messages.
Common Debugging Steps
- Enable verbose mode
- Check log outputs
- Verify configuration files
- Test with simple examples
- Check GPU availability if using CUDA
Contributing
Contribution Guidelines
- Follow the existing code style
- Write tests for new functionality
- Update relevant documentation
- Ensure all tests pass
- Get code review before merging
Issue Reporting
When reporting issues, include:- Operating system and version
- Python version
- Installed package versions
- Error messages and logs
- Steps to reproduce
- Expected vs actual behavior
Pull Request Process
- Fork the repository
- Create a feature branch
- Implement changes
- Add tests and documentation
- Run pre-commit checks
- Submit pull request with clear description
Architecture
System Overview
Project Structure
Component Details
imcui/- Main packagecli/- Command-line interfaceui/- User interface componentsapi/- Core API implementationconfig/- Configuration files
tests/- Test suitecpp/- C++ API implementation
Key Components
- ImageMatchingAPI: Core matching API
- ImageMatchingApp: Gradio web interface
- MatcherZoo: Dynamic matcher loading
- Visualization: Result visualization utilities
Release Process
Version Management
Version is managed inpyproject.toml. Update the version number when preparing a release.
Creating a Release
- Update version in
pyproject.toml - Ensure all tests pass
- Update CHANGELOG.md
- Create git tag:
git tag v1.0.0 - Push tag:
git push origin v1.0.0 - Build and publish to PyPI
Resources
- Project Repository: https://github.com/Vincentqyw/image-matching-webui
- Issues: https://github.com/Vincentqyw/image-matching-webui/issues
- Discussions: https://github.com/Vincentqyw/image-matching-webui/discussions
- Related Projects:
- Vismatch - Matcher collection library