Files

34 lines
1.9 KiB
Markdown

# Python 3.14 Compatibility and Windows Auto-Start
**Date:** 2025-12-12
**Project:** lego-instructions-manager
**Status:** resolved
**Tags:** python-3.14, dependencies, pymupdf, pillow, sqlalchemy, windows, task-scheduler, waitress
## Context
After the v1.5.0 initial commit (2025-12-09), installing on the Windows host (`E:\LIM`, Python 3.14) failed: several packages had no 3.14 wheels at the pinned versions and SQLAlchemy raised a `TypingOnly` assertion error at import. Jess also wanted the app to start automatically with Windows.
## Key Decisions
- **Raise minimums rather than downgrade Python:** PyMuPDF `>=1.24.0`, Pillow `>=11.0.0`, SQLAlchemy `>=2.0.35` (the `TypingOnly` fix).
- **Flexible version ranges instead of exact pins** — fewer breakages on new Python releases; `requirements-flexible.txt` kept alongside `requirements.txt`.
- **Task Scheduler + batch file for auto-start** rather than a Windows service — simpler to set up and debug.
- **waitress** as the WSGI server on Windows (gunicorn doesn't run on Windows).
## Technical Details
- Install path: `E:\LIM`.
- Startup: `start_lim.bat`; `setup_startup.bat` registers the scheduled task.
- `PYTHON_314_COMPATIBILITY.md` — package/version matrix.
## Code Changes
- `requirements.txt` / `requirements-flexible.txt` — updated minimums and ranges.
- `start_lim.bat`, `setup_startup.bat`, `STARTUP_README.md` — new.
- `PYTHON_314_COMPATIBILITY.md` — new.
## Open Questions / Next Steps
- Repo root contains stray files named `0.6.0`, `1.0.0`, `1.2.0`, `1.23.0`, `2.31.0`, `3.0.0`, `3.1.0` — almost certainly created by running `pip install package>=x.y.z` unquoted in cmd, where `>` redirects output to a file. Safe to delete; quote version specifiers in future (`pip install "Pillow>=11.0.0"`).
## Artifacts
- `c1d6789` — Fix SQLAlchemy version for Python 3.14
- `9f55b1e` — Update all dependencies for Python 3.14 with flexible version ranges
- `0ec5f27` — Add Windows Task Scheduler setup script