Contributing¶
Welcome to the Genifest project! We appreciate your interest in contributing.
Work in Progress
This documentation page is being developed. Please check back soon for complete content.
Getting Started¶
Prerequisites¶
- Go 1.24 or later
- Git
- Make (optional but recommended)
Development Setup¶
-
Fork and clone the repository:
-
Install dependencies:
-
Install development tools:
-
Run tests:
-
Build the project:
Development Workflow¶
Making Changes¶
-
Create a feature branch:
-
Make your changes
-
Run quality checks:
-
Commit your changes:
Commit Message Format¶
We follow conventional commit format:
feat:- New featuresfix:- Bug fixesdocs:- Documentation updatestest:- Test additions/updateschore:- Maintenance tasks
Pull Request Process¶
-
Push your branch:
-
Create a pull request
-
Address review feedback
-
Ensure CI passes
Code Style¶
- Follow Go conventions and best practices
- Use
gofmtfor formatting - Run
golangci-lintbefore submitting - Write tests for new functionality
- Add documentation for user-facing features
Testing¶
Running Tests¶
# All tests
make test
# Tests with coverage
make test-coverage
# Race detection
make test-race
# Short tests only
make test-short
Writing Tests¶
- Write unit tests for new functions
- Add integration tests for complex features
- Use the guestbook example for end-to-end testing
Documentation¶
Building Documentation¶
# Install docs dependencies
make docs-install
# Serve locally
make docs-serve
# Build static site
make docs-build
Documentation Guidelines¶
- Update documentation for user-facing changes
- Use clear, concise language
- Provide examples where helpful
- Test documentation locally before submitting
Release Process¶
Releases are handled by maintainers. Contributors should:
- Update CHANGELOG.md for significant changes (use the heading
## WIP TBDto start a new section at the top of the file) - Ensure version compatibility
- Update documentation as needed
Getting Help¶
- GitHub Issues: Report bugs or request features
- GitHub Discussions: Ask questions or discuss ideas
- Documentation: Check existing documentation first
Code of Conduct¶
We expect all contributors to follow our code of conduct:
- Be respectful and inclusive
- Focus on constructive feedback
- Help create a welcoming environment
See Also¶
- Architecture - System architecture
- Testing - Testing guidelines
- Release Process - Release procedures