34 lines
1.9 KiB
Markdown
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
|