Files
backup-tool/openspec/changes/dockerize-and-pyproject-setup/specs/python-packaging/spec.md
T
alex cc694e71b4 feat: dockerize app and convert to pyproject setup
- Add pyproject.toml with proper metadata and dependency groups
- Create multi-stage Dockerfile for backend
- Add docker-compose.yml with dev/prod profiles
- Create frontend Dockerfile with nginx
- Add .dockerignore for optimized builds
- Update README with Docker instructions and troubleshooting
- Remove requirements.txt in favor of pyproject.toml
- Ensure data persistence with Docker volumes
2026-05-11 22:50:11 +02:00

1.4 KiB

ADDED Requirements

Requirement: pyproject.toml replaces requirements.txt

The project SHALL use pyproject.toml as the primary dependency and build configuration file.

Scenario: Install from pyproject.toml

  • WHEN developer runs pip install -e .
  • THEN all runtime dependencies are installed correctly
  • AND the package is installed in editable mode

Requirement: Dependencies are properly declared

The pyproject.toml SHALL declare all runtime, development, and optional dependencies in appropriate groups.

Scenario: Install with dev dependencies

  • WHEN developer runs pip install -e ".[dev]"
  • THEN testing tools (pytest, pytest-asyncio) are installed
  • AND development tools are available

Requirement: Package metadata is complete

The pyproject.toml SHALL include project metadata such as name, version, description, authors, and license.

Scenario: Package info is accessible

  • WHEN user queries package metadata via pip show backup-tool
  • THEN name, version, description, and author information are displayed

Requirement: Console scripts are defined

The pyproject.toml SHALL define console entry points for running the application.

Scenario: Run via CLI command

  • WHEN user runs backup-tool or uvicorn backup_tool.main:app
  • THEN the application starts successfully
  • AND the console script is properly registered