Set up Python project with uv environment management and FastAPI stack. Project structure: - src/gondulf/ - Main application package - tests/ - Test suite directory - pyproject.toml - Project configuration with dependencies - README.md - Project documentation - uv.lock - Dependency lock file Dependencies configured: - FastAPI + Uvicorn for web framework - SQLAlchemy for database ORM - pytest + coverage for testing - ruff, black, mypy, flake8 for code quality - Development environment using uv direct execution model All project standards reviewed and implemented per: - /docs/standards/coding.md - /docs/standards/testing.md - /docs/standards/git.md - /docs/standards/development-environment.md - /docs/standards/versioning.md
61 lines
1.7 KiB
Markdown
61 lines
1.7 KiB
Markdown
# Project Standards
|
|
|
|
This directory contains all project-wide standards and conventions for the IndieAuth server implementation.
|
|
|
|
## Standard Documents
|
|
|
|
### Core Standards
|
|
- **[versioning.md](versioning.md)** - Semantic versioning approach (v2.0.0)
|
|
- **[git.md](git.md)** - Trunk-based development workflow
|
|
- **[testing.md](testing.md)** - Testing strategy with 80% minimum coverage
|
|
- **[coding.md](coding.md)** - Python coding standards and conventions
|
|
- **[development-environment.md](development-environment.md)** - uv-based environment management and workflow
|
|
|
|
## Key Decisions
|
|
|
|
### Technology Stack (Approved)
|
|
- **Language**: Python 3.10+
|
|
- **Framework**: FastAPI
|
|
- **Database**: SQLite
|
|
- **Environment Management**: uv (with direct execution model)
|
|
- **Testing**: pytest with 80% minimum coverage
|
|
- **Code Quality**: Black, Ruff, mypy
|
|
|
|
### Development Workflow
|
|
- **Git**: Trunk-based development on `main` branch
|
|
- **Environments**: Direct execution via `uv run` (no activation)
|
|
- **Testing**: TDD preferred, behavior-focused tests
|
|
- **Documentation**: Comprehensive before implementation
|
|
|
|
## Quick Reference
|
|
|
|
### Daily Commands
|
|
```bash
|
|
# Run application
|
|
uv run uvicorn src.main:app --reload
|
|
|
|
# Run tests
|
|
uv run pytest
|
|
|
|
# Add dependency
|
|
uv pip install package
|
|
uv pip freeze > requirements.txt
|
|
|
|
# Code quality
|
|
uv run ruff check .
|
|
uv run mypy src
|
|
```
|
|
|
|
### Standards Compliance
|
|
All code must:
|
|
- Pass linting (Ruff)
|
|
- Pass type checking (mypy)
|
|
- Have 80%+ test coverage (90% for new code)
|
|
- Follow PEP 8 and project conventions
|
|
- Be documented with clear docstrings
|
|
|
|
## Status
|
|
|
|
✅ **Standards Finalized**: 2025-11-20
|
|
|
|
All foundational standards have been defined and documented. These standards form the basis for all implementation work on the IndieAuth server project. |