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

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:

  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:

    ./bootstrap.sh test-project --no-git
    cd test-project
    
  2. 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
    
  3. 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

  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

#!/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!