Files
project-bootstrap/CONTRIBUTING.md
Bill 8dd4f0ca63 Initial commit: Complete project-bootstrap tool
- 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
2025-10-15 21:34:08 -04:00

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!