chore: initialize gondulf project structure

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
This commit is contained in:
2025-11-20 10:42:10 -07:00
commit 6d21442705
17 changed files with 4301 additions and 0 deletions

View File

@@ -0,0 +1,80 @@
# Versioning Standard
## Overview
This project follows Semantic Versioning 2.0.0 (https://semver.org/) for all releases.
## Version Format
`MAJOR.MINOR.PATCH`
- **MAJOR**: Incremented for incompatible API changes or breaking changes to IndieAuth protocol implementation
- **MINOR**: Incremented for new features added in a backward-compatible manner
- **PATCH**: Incremented for backward-compatible bug fixes and documentation improvements
## Version Increments for IndieAuth Server
### MAJOR Version Changes (Breaking)
- Changes that break compatibility with existing IndieAuth clients
- Removal or modification of required IndieAuth endpoints
- Changes to token formats that invalidate existing tokens
- Database schema changes that require manual migration
- Configuration format changes that are not backward-compatible
- Removal of previously supported authentication methods
### MINOR Version Changes (Features)
- Addition of new optional IndieAuth endpoints (e.g., metadata endpoint)
- New client registration features
- Additional authentication methods
- Performance optimizations that don't change behavior
- New administrative features
- Support for additional IndieAuth extensions
### PATCH Version Changes (Fixes)
- Bug fixes that don't change API behavior
- Security patches that maintain compatibility
- Documentation improvements
- Internal refactoring without external changes
- Dependency updates that don't affect functionality
- Configuration option additions with sensible defaults
## Pre-release Versions
Pre-release versions may be denoted by appending:
- `-alpha.N` for early development versions
- `-beta.N` for feature-complete testing versions
- `-rc.N` for release candidates
Example: `1.0.0-beta.2`
## Initial Release Target
`1.0.0` - First stable release with:
- Full W3C IndieAuth specification compliance
- Client self-registration capability
- Production-ready security model
## Version Tagging
Git tags follow the format: `v{MAJOR}.{MINOR}.{PATCH}`
Example: `v1.0.0`, `v1.1.0-beta.1`
## Release Notes
Each release must include:
- Version number and release date
- Summary of changes categorized by type (Features, Fixes, Breaking Changes)
- Migration instructions for breaking changes
- Known issues if applicable
- Contributors acknowledgment
## Version Support Policy
- Latest MAJOR version: Full support with bug fixes and security updates
- Previous MAJOR version: Security updates only for 6 months after new MAJOR release
- Older versions: No support
## Development Branch Versioning
The main branch always contains the next unreleased version with `-dev` suffix in any version files.