First off, thank you for considering contributing to Excel TUI! 🎉
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Before creating bug reports, please check the existing issues. When you create a bug report, include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples
- Describe the behavior you observed and what you expected
- Include screenshots if possible
- Include your environment details (OS, Go version, terminal)
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, include:
- Use a clear and descriptive title
- Provide a detailed description of the suggested enhancement
- Explain why this enhancement would be useful
- List any alternatives you've considered
- Fork the repo and create your branch from
main - If you've added code, add tests
- Ensure the test suite passes
- Make sure your code follows the existing style
- Write a clear commit message
- Create a pull request!
# Clone your fork
git clone https://github.com/SreeAditya-Dev/Cello-TUI.git
cd cello-tui
# Add upstream remote
git remote add upstream https://github.com/SreeAditya-Dev/Cello-TUI.git
# Install dependencies
go mod download
# Build
go build -o cello-tui .
# Run
./cello sample_data.csvcello/
├── main.go # Entry point
├── internal/ # Private application code
│ ├── app/ # Application logic
│ ├── loader/ # File operations
│ ├── theme/ # Theme management
│ └── ui/ # UI utilities
└── pkg/ # Public packages
└── models/ # Data models
- Follow Effective Go
- Run
go fmtbefore committing - Run
go vetto catch common mistakes - Use meaningful variable and function names
- Add comments for exported functions
- Keep functions small and focused
- Separate concerns (UI, logic, data)
- Use interfaces for testability
- Handle errors explicitly
# Run all tests
go test ./...
# Run with coverage
go test -cover ./...
# Run with race detector
go test -race ./...Follow the conventional commits specification:
feat: add new theme
fix: resolve search crash
docs: update README
style: format code
refactor: reorganize UI package
test: add loader tests
chore: update dependencies
- Documentation improvements
- Adding new themes
- UI polish and refinements
- Performance optimizations
- Test coverage
- Column resizing
- Cell editing
- Filter capabilities
- Custom keybindings
- Configuration file support
- Chart visualization
- Diff mode
- Test with various file formats (.xlsx, .csv)
- Test with large files (50k+ rows)
- Test all themes
- Test all keyboard shortcuts
- Test on different terminals (iTerm, Terminal.app, alacritty, etc.)
- Test on different OS (macOS, Linux, Windows)
When adding new features:
- Update README.md
- Add examples
- Update keyboard shortcuts section
- Add inline code comments
- Consider adding a tutorial
- Use lazy loading for large files
- Minimize allocations in hot paths
- Profile before optimizing
- Consider memory usage for large datasets
Feel free to:
- Open an issue with your question
- Join discussions in existing issues
- Reach out to maintainers
Contributors will be:
- Listed in the README
- Mentioned in release notes
- Credited in commit history
Thank you for contributing! 🚀