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
This commit is contained in:
205
CONTRIBUTING.md
Normal file
205
CONTRIBUTING.md
Normal file
@@ -0,0 +1,205 @@
|
||||
# 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!
|
||||
Reference in New Issue
Block a user