🤝 Contributing to Flowey
Help make the Underground a better place!
"Despite everything, it's still you."
🌟 Ways to Contribute
🐛 Bug Reports
Found a bug? Help us squash it!
- Check if the issue already exists in GitHub Issues
- Provide detailed steps to reproduce
- Include your system information (OS, Perl version, etc.)
- Add screenshots or error messages if applicable
Bug Report Template:
**Bug Description:**
Brief description of the issue
**Steps to Reproduce:**
1. Run command: `flowey -c sans "test"`
2. Expected behavior
3. Actual behavior
**Environment:**
- OS: Ubuntu 22.04
- Perl Version: 5.34.0
- Flowey Version: 1.0.0
**Additional Context:**
Any other relevant information
💡 Feature Requests
Have an idea for a new feature? We'd love to hear it!
- Describe the feature and why it would be useful
- Provide examples of how it would work
- Consider backward compatibility
- Be open to discussion and feedback
🎨 Character Contributions
Add new characters to the Flowey universe!
- Create ASCII art using the
chafa
tool - Follow the .flowey file format
- Include appropriate metadata
- Test thoroughly before submitting
Character File Format:
Meta:
author = your_username
Context:
Data:
[ASCII art content with ANSI color codes]
📝 Documentation
Help improve our documentation!
- Fix typos and grammatical errors
- Add missing information
- Improve examples and tutorials
- Translate documentation
🔧 Code Contributions
Ready to dive into the code? Here's how:
Development Setup:
# Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/flowey.git
cd flowey
# Create a new branch for your feature
git checkout -b feature/awesome-feature
# Install dependencies
cpan install Getopt::Long::Descriptive
# Make your changes and test them
./flowey.pl "Test your changes"
# Commit and push
git add .
git commit -m "Add awesome feature"
git push origin feature/awesome-feature
📋 Contribution Guidelines
Code Style
- Follow Perl best practices
- Use meaningful variable names
- Add comments for complex logic
- Maintain backward compatibility when possible
- Test your changes thoroughly
Perl Style Guidelines:
# Use strict and warnings
use strict;
use warnings;
# Meaningful variable names
my $character_file = $opt->character . ".flowey";
my $assets_directory = $opt->assets;
# Proper indentation (4 spaces)
if ($condition) {
do_something();
}
# Add comments for complex logic
# Parse the flowey file format
# Format: Meta:, Context:, Data:
sub parse_flowey_file {
# Implementation here
}
Pull Request Process
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Update documentation if needed
- Submit a pull request
Pull Request Template:
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Character addition
## Testing
- [ ] Tested on Linux
- [ ] Tested on macOS
- [ ] Added new tests
- [ ] All existing tests pass
## Checklist
- [ ] Code follows style guidelines
- [ ] Self-review completed
- [ ] Documentation updated
- [ ] No breaking changes
👥 Community
Code of Conduct
We follow the principle of determination - be kind, helpful, and respectful to all contributors.
- Be respectful and inclusive
- Welcome newcomers and help them learn
- Focus on constructive feedback
- Respect different viewpoints and experiences
🌟 Contributors
Thanks to all the amazing people who have contributed to Flowey!
- lazypwny751 - Project creator and maintainer
- Your name could be here!
🚀 Development Roadmap
Planned Features
- 🎨 Better ASCII art rendering
- 🔧 Plugin system for custom character formats
- 🌐 Web interface for character generation
- 📱 Mobile-friendly character viewer
- 🎵 Sound effects integration
- 🏗️ Build system improvements
Help Wanted
Looking for contributors in these areas:
- Character Artists - Create new Undertale characters
- Perl Developers - Improve core functionality
- Package Maintainers - Help with distribution packages
- Documentation Writers - Improve guides and examples
- Testers - Test on different platforms and report issues
📞 Getting Help
Resources
- GitHub Issues: Report bugs and request features
- Discussions: General questions and ideas
- Wiki: Detailed documentation
- Examples: Check out the
examples/
directory
🎉 Thank You!
Every contribution, no matter how small, helps make Flowey better for everyone.
"You feel like you're going to have a good time contributing."
Ready to contribute?
Start by forking the repository and making your first contribution!