- Bootstrap script for creating monorepo projects - FastAPI backend templates with uv, ruff, mypy, pytest - React frontend templates with TypeScript, ESLint, Prettier - Docker Compose setup with backend, frontend, and database - 9 development and CI scripts - Gitea Actions CI/CD workflows - Comprehensive documentation (8 files) - 45 template files for complete project structure - Automated verification script (all tests pass) - Based on coding-agent-rules standards
4.0 KiB
4.0 KiB
Contributing to Project Bootstrap
Thank you for your interest in contributing to the Project Bootstrap! This document provides guidelines for contributing.
How to Contribute
Reporting Issues
If you find a bug or have a suggestion:
- Check if the issue already exists
- Create a new issue with:
- Clear title
- Detailed description
- Steps to reproduce (for bugs)
- Expected vs actual behavior
- Your environment (OS, versions, etc.)
Suggesting Enhancements
For new features or improvements:
- Open an issue first to discuss
- Explain the use case
- Describe the proposed solution
- Consider backward compatibility
Pull Requests
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
Development Guidelines
Code Style
Shell Scripts
- Use bash for scripts
- Include error handling (
set -e) - Add comments for complex logic
- Use meaningful variable names
- Follow existing script patterns
Template Files
- Follow the coding-agent-rules standards
- Maintain consistency with existing templates
- Include comments where helpful
- Keep files focused and modular
Testing
Before submitting:
-
Test the bootstrap script:
./bootstrap.sh test-project --no-git cd test-project -
Verify the generated project:
# Test Docker Compose docker compose -f deploy/compose.yml up -d # Test backend cd backend uv sync uv run pytest # Test frontend cd ../frontend npm install npm test -
Clean up:
cd .. rm -rf test-project
Documentation
- Update README.md if needed
- Update USAGE.md for new features
- Add examples for new functionality
- Keep documentation clear and concise
Project Structure
Bootstrap Files
project-bootstrap/
├── bootstrap.sh # Main script - core logic
├── templates/ # Template files
│ ├── backend/ # Backend templates
│ ├── frontend/ # Frontend templates
│ ├── deploy/ # Docker templates
│ ├── scripts/ # Script templates
│ └── docs/ # Documentation templates
└── *.md # Documentation
Adding New Templates
- Create the template file in appropriate directory
- Update
bootstrap.shif needed - Test the bootstrap process
- Update documentation
Modifying Scripts
- Maintain backward compatibility
- Add error handling
- Test on clean environment
- Update script documentation
Coding Standards
Shell Scripts
#!/bin/bash
# Description of what the script does
set -e # Exit on error
# Use functions for organization
function main() {
# Main logic here
}
# Call main function
main "$@"
Python Templates
- Follow PEP 8
- Use type hints
- Include docstrings
- Write tests
TypeScript Templates
- Use strict mode
- Follow ESLint rules
- Include JSDoc comments
- Write tests
Commit Messages
Use clear, descriptive commit messages:
Add feature: Brief description
Longer explanation if needed.
- Detail 1
- Detail 2
Commit Message Format
- Add: New features or files
- Update: Changes to existing features
- Fix: Bug fixes
- Remove: Removed features or files
- Refactor: Code restructuring
- Docs: Documentation changes
- Test: Test additions or changes
Release Process
- Update CHANGELOG.md
- Update version numbers
- Test thoroughly
- Create release tag
- Update documentation
Questions?
- Open an issue for questions
- Check existing documentation
- Review coding-agent-rules
Code of Conduct
- Be respectful and inclusive
- Provide constructive feedback
- Focus on the code, not the person
- Help others learn and grow
License
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank You!
Your contributions help make this project better for everyone. We appreciate your time and effort!