Contributing to UCLI Tools¶
We welcome contributions from everyone! UCLI Tools is an open-source project that thrives on community involvement. Whether you're fixing bugs, adding features, improving documentation, or helping with testing, your contributions are valuable.
Ways to Contribute¶
๐ Report Bugs¶
Found a bug? Help us improve by reporting it:
- Check if the issue already exists in GitHub Issues
- If not, create a new issue with:
- Clear title describing the problem
- Steps to reproduce
- Expected vs actual behavior
- Your environment (OS, shell, tool versions)
๐ก Suggest Features¶
Have an idea for a new tool or feature?
- Check existing Discussions and issues
- Start a Discussion to gather feedback
- If well-received, create a feature request issue
๐ ๏ธ Code Contributions¶
Development Setup¶
# Fork the repository you want to contribute to
# Clone your fork
git clone https://github.com/your-username/tool-name.git
cd tool-name
# Create a feature branch
git checkout -b feature/amazing-improvement
# Set up development environment
make dev-setup # or follow tool-specific setup instructions
# Make your changes
# Write tests
# Test thoroughly
# Commit with clear message
git commit -m "Add amazing feature
- What it does
- Why it's needed
- How to use it"
# Push and create PR
git push origin feature/amazing-improvement
Pull Request Process¶
- Fork the repository
- Create a feature branch from
main - Make your changes with tests
- Test thoroughly (see Testing section)
- Update documentation if needed
- Commit with clear, descriptive messages
- Push to your fork
- Create a Pull Request with:
- Clear title and description
- Reference to any related issues
- Screenshots/videos for UI changes
- Test results
Code Standards¶
- Shell Scripts: Follow Google Shell Style Guide
- Python: Follow PEP 8 with Black formatting
- Documentation: Clear, concise, and comprehensive
- Commits: Use Conventional Commits
๐ Documentation Improvements¶
- Fix typos or unclear explanations
- Add missing examples
- Create tutorials or guides
- Translate documentation
- Improve navigation or structure
๐งช Testing¶
Help ensure quality by:
- Writing unit tests for new features
- Testing on different platforms (Linux, macOS, Windows)
- Reporting compatibility issues
- Improving test coverage
๐จ Design & UX¶
- Improve user interfaces
- Create better error messages
- Enhance command-line help
- Design logos or graphics
Tool-Specific Contribution Guides¶
ucli (Tool Manager)¶
- Focus on cross-platform compatibility
- Improve error handling and user feedback
- Add support for new package managers
- Enhance security and sandboxing
gits (Git Workflow)¶
- Add support for new Git hosting platforms
- Improve batch operation performance
- Enhance AI commit message generation
- Add new workflow automations
mdtexpdf (PDF Generation)¶
- Support new LaTeX packages
- Improve template system
- Add new output formats
- Enhance math equation rendering
mdaudiobook (Text-to-Speech)¶
- Add new TTS engines
- Improve voice quality
- Support more languages
- Enhance audio processing
Development Workflow¶
1. Choose an Issue¶
- Look for good first issues
- Check help wanted labels
- Comment on issues you're interested in
2. Set Up Development Environment¶
Each tool has its own setup requirements. Check the tool's README.md or CONTRIBUTING.md file.
3. Make Changes¶
- Write clear, focused commits
- Include tests for new functionality
- Update documentation
- Follow the existing code style
4. Test Thoroughly¶
- Run existing tests
- Test on multiple platforms if possible
- Check for regressions
- Verify documentation builds
5. Submit Pull Request¶
- Reference related issues
- Provide clear description of changes
- Include before/after examples
- Request review from maintainers
Getting Help¶
Communication Channels¶
- GitHub Issues: Bug reports and feature requests
- GitHub Discussions: General questions and ideas
- Community Chat: Real-time discussion (if available)
Finding Mentors¶
- Look for issues labeled
good first issueorhelp wanted - Ask questions in GitHub Discussions
- Join community meetings or calls
Documentation Resources¶
Recognition¶
Contributors are recognized through:
- GitHub Contributors: Listed in repository insights
- Changelog Credits: Mentioned in release notes
- Community Recognition: Featured in community updates
- Maintainer Status: Active contributors may become maintainers
Code of Conduct¶
Please review and follow our Code of Conduct in all interactions.
License¶
By contributing to UCLI Tools, you agree that your contributions will be licensed under the same license as the project (Apache 2.0).
Questions?¶
- Check existing Discussions
- Search Issues
- Ask in the community chat
We're excited to have you contribute to UCLI Tools! ๐
UCLI Tools Ecosystem
Professional CLI tools for developers