If you're interested in contributing to FontGet! This guide will help you get started.
- Go 1.26.0 or later
- Git
- Basic understanding of Go and CLI development
- Fork the repository
- Clone your fork:
git clone https://github.com/Graphixa/FontGet.git - Navigate to the project:
cd FontGet - Install dependencies:
go mod download
FontGet follows a clean architecture pattern:
cmd/- CLI command implementationsinternal/- Internal packages (not for external use)config/- Configuration managementrepo/- Font repository operationsplatform/- OS-specific functionalityui/- User interface componentsoutput/- Output management (verbose/debug)
- Follow Go standard formatting (
gofmt) - Use meaningful variable and function names
- Add comments for exported functions
- Keep functions focused and small
- Create a new file in
cmd/(e.g.,cmd/newcommand.go) - Use the template in
internal/templates/command_template.go - Register the command in
cmd/root.go - Add documentation to
docs/usage.md
- Write tests for new functionality
- Test on multiple platforms when possible
- Use the
--debugflag for troubleshooting
- Update
docs/usage.mdfor user-facing changes - Update
docs/codebase.mdfor architectural changes - Run the documentation audit:
go run docs/maintenance/audit-flags.go cmd/
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes
- Test thoroughly
- Update documentation if needed
- Run the audit script to check documentation sync
- Submit a pull request with a clear description
When reporting issues, please include:
- Operating system and version
- FontGet version
- Steps to reproduce
- Expected vs actual behavior
- Any error messages
Feel free to open an issue for questions or discussions about the project.