Thank you for your interest in contributing to RepoReadme! This project uses modern Python architecture patterns and welcomes contributions that maintain its quality and extensibility.
-
Fork and Clone
git clone https://github.com/dev-alt/RepoReadme.git cd reporeadme -
Install Dependencies
pip install -r requirements.txt
-
Verify Installation
python main.py # Test GUI python demo.py . --template modern # Test CLI
- Modular Architecture: Maintain clear separation between analyzers, templates, GUI, and utilities
- Comprehensive Logging: Use the existing logging framework for all operations
- Error Handling: Include robust exception handling for all user-facing operations
- Type Hints: Use type annotations for all functions and class methods
- Docstrings: Provide clear documentation for all public methods
- Clean Code: Follow PEP 8 and maintain readable, maintainable code
- Analyzers (
src/analyzers/): Repository analysis and technology detection - Templates (
src/templates/): README generation and template management - GUI (
src/gui.py): Interface components and user interaction - Config (
src/config/): Settings and configuration management - Utils (
src/utils/): Shared utilities and helper functions
- Follow existing template patterns in
src/templates/readme_templates.py - Add template configuration options to
TemplateConfigdataclass - Test with various repository types and sizes
- Update template selection UI in GUI
- Add new detection logic to
src/analyzers/repository_analyzer.py - Update
ProjectMetadatadataclass if new fields are needed - Ensure caching works correctly for new analysis features
- Test with repositories that use the new technology
- Maintain consistency with existing interface design
- Use the established threading patterns for non-blocking operations
- Update progress tracking for new operations
- Test thoroughly with different screen sizes
Since this project currently lacks automated tests, please manually test:
- Python projects (with requirements.txt, setup.py, pyproject.toml)
- JavaScript/Node.js projects (with package.json)
- Java projects (with pom.xml, build.gradle)
- C/C++ projects (with Makefile, CMakeLists.txt)
- Go projects (with go.mod)
- Local directories and GitHub repositories
Test all templates with your changes:
python demo.py path/to/test/repo --template modern
python demo.py path/to/test/repo --template classic
python demo.py path/to/test/repo --template minimalist
python demo.py path/to/test/repo --template developer
python demo.py path/to/test/repo --template academic
python demo.py path/to/test/repo --template corporate- Repository addition (local and GitHub)
- Analysis and template generation
- Batch operations
- Settings persistence
- Error handling and user feedback
-
Create a Feature Branch
git checkout -b feature/your-feature-name
-
Make Your Changes
- Follow existing code patterns
- Add appropriate logging
- Test thoroughly
-
Commit Your Changes
git add . git commit -m "feat: clear description of your changes"
-
Push and Create PR
git push origin feature/your-feature-name
Then create a pull request using the provided template.
- Automated Checks: Ensure your code follows existing patterns
- Manual Review: Maintainers will review for architecture consistency
- Testing: Changes will be tested with various repository types
- Documentation: Update documentation if needed
- Open an issue for bugs or feature requests
- Use discussions for general questions
- Follow established Python patterns and architectural best practices
Contributors will be acknowledged in the project README and release notes. Thank you for helping make RepoReadme better for everyone!