Thank you for your interest in contributing to ckitty! This document provides guidelines and instructions for contributing.
- Be respectful and inclusive
- Welcome newcomers and help them get started
- Focus on constructive criticism
- Check if the bug has already been reported in Issues
- If not, create a new issue with:
- Clear title and description
- Steps to reproduce
- Expected vs actual behavior
- System information (OS, terminal, ncurses version)
- Check existing issues for similar suggestions
- Create a new issue with the
enhancementlabel - Describe the feature and its use case
- Include ASCII art mockups if relevant!
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-kitty) - Make your changes
- Run tests and ensure compilation works
- Commit with clear messages
- Push to your fork
- Create a Pull Request
- Follow the existing C style in the codebase
- Use meaningful variable names
- Comment complex algorithms
- Keep functions focused and small
- Test on multiple terminals if possible
When creating new kitty poses or animations:
- Keep within 80 column width
- Test with and without colors
- Ensure it looks good in different terminal sizes
- Make it recognizable as a cat!
# Clone the repo
git clone https://github.com/yourusername/ckitty.git
cd ckitty
# Install dependencies (macOS)
brew install ncurses
# Install dependencies (Ubuntu/Debian)
sudo apt-get install libncurses5-dev
# Build
make
# Test
./ckitty_v3 -cBefore submitting:
- Test all command line options
- Test in different terminal emulators
- Test with/without color support
- Verify no memory leaks with valgrind (if available)
- Update README.md if adding new features
- Add comments for new algorithms
- Ensure all tests pass
- Update version numbers if applicable
- PR will be merged after review
Popular requests:
- New kitty poses (stretching, grooming, hunting)
- More environmental elements
- Different cat breeds
- Sound effects (purring via terminal bell?)
- Network multiplayer kitties
Feel free to open an issue for any questions about contributing!