- 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
206 lines
4.0 KiB
Markdown
206 lines
4.0 KiB
Markdown
# 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:
|
|
|
|
1. Check if the issue already exists
|
|
2. 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:
|
|
|
|
1. Open an issue first to discuss
|
|
2. Explain the use case
|
|
3. Describe the proposed solution
|
|
4. Consider backward compatibility
|
|
|
|
### Pull Requests
|
|
|
|
1. Fork the repository
|
|
2. Create a feature branch
|
|
3. Make your changes
|
|
4. Test thoroughly
|
|
5. 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:
|
|
|
|
1. Test the bootstrap script:
|
|
```bash
|
|
./bootstrap.sh test-project --no-git
|
|
cd test-project
|
|
```
|
|
|
|
2. Verify the generated project:
|
|
```bash
|
|
# 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
|
|
```
|
|
|
|
3. Clean up:
|
|
```bash
|
|
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
|
|
|
|
1. Create the template file in appropriate directory
|
|
2. Update `bootstrap.sh` if needed
|
|
3. Test the bootstrap process
|
|
4. Update documentation
|
|
|
|
### Modifying Scripts
|
|
|
|
1. Maintain backward compatibility
|
|
2. Add error handling
|
|
3. Test on clean environment
|
|
4. Update script documentation
|
|
|
|
## Coding Standards
|
|
|
|
### Shell Scripts
|
|
|
|
```bash
|
|
#!/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
|
|
|
|
1. Update CHANGELOG.md
|
|
2. Update version numbers
|
|
3. Test thoroughly
|
|
4. Create release tag
|
|
5. 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!
|