Skip to content

Contributing to UCLI Tools

GitHub contributors GitHub issues PRs Welcome

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:

  1. Check if the issue already exists in GitHub Issues
  2. If not, create a new issue with:
  3. Clear title describing the problem
  4. Steps to reproduce
  5. Expected vs actual behavior
  6. Your environment (OS, shell, tool versions)

๐Ÿ’ก Suggest Features

Have an idea for a new tool or feature?

  1. Check existing Discussions and issues
  2. Start a Discussion to gather feedback
  3. 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

  1. Fork the repository
  2. Create a feature branch from main
  3. Make your changes with tests
  4. Test thoroughly (see Testing section)
  5. Update documentation if needed
  6. Commit with clear, descriptive messages
  7. Push to your fork
  8. Create a Pull Request with:
  9. Clear title and description
  10. Reference to any related issues
  11. Screenshots/videos for UI changes
  12. Test results

Code Standards

๐Ÿ“š 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

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 issue or help 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?

We're excited to have you contribute to UCLI Tools! ๐Ÿš€

UCLI Tools Ecosystem

Professional CLI tools for developers