User reported (eN1gma) the dev nightly Docker image fails to start with ``ModuleNotFoundError: No module named 'requests'`` despite ``requests>=2.31.0`` being correctly listed in requirements.txt. Local Docker builds + python imports both work — the issue is a poisoned GHA Docker layer cache: the ``pip install -r requirements.txt`` step is cached based on the file's content hash, so once a bad layer (e.g. an aborted/incomplete pip install from a previous run) makes it into the cache, every subsequent build reuses it. Touching this comment changes the requirements.txt hash, which forces ``cache-from: type=gha`` in dev-nightly.yml to skip the poisoned layer and run a fresh ``pip install``. The next dev nightly build (or push-to-dev triggered build) will produce a clean image. No functional change.
51 lines
1 KiB
Text
51 lines
1 KiB
Text
# SoulSync requirements
|
|
# Web application dependencies only
|
|
# (cache-bust 2026-05-02: dev nightly image was serving a poisoned layer
|
|
# with missing dependencies; touching this comment forces the GHA Docker
|
|
# layer cache to invalidate the pip-install step on the next build.)
|
|
|
|
# Core web framework
|
|
Flask>=3.0.0
|
|
Flask-Limiter>=3.5.0
|
|
|
|
# Music service APIs
|
|
spotipy>=2.23.0
|
|
PlexAPI>=4.17.0
|
|
|
|
# HTTP and async support
|
|
requests>=2.31.0
|
|
aiohttp>=3.9.0
|
|
|
|
# Security and encryption
|
|
cryptography>=41.0.0
|
|
|
|
# Media metadata handling
|
|
mutagen>=1.47.0
|
|
Pillow>=10.0.0
|
|
|
|
# Text processing
|
|
unidecode>=1.3.8
|
|
beautifulsoup4>=4.12.0
|
|
|
|
# System monitoring
|
|
psutil>=6.0.0
|
|
|
|
# YouTube support — pinned for reproducible builds; bump per release. See #367.
|
|
yt-dlp==2026.3.17
|
|
|
|
# Lyrics support
|
|
lrclibapi>=0.3.1
|
|
|
|
# Audio fingerprinting for download verification
|
|
pyacoustid>=1.3.0
|
|
|
|
# WebSocket client for Hydrabase connection
|
|
websocket-client>=1.7.0
|
|
|
|
# Tidal download support
|
|
tidalapi>=0.7.6
|
|
|
|
# WebSocket server for real-time UI updates
|
|
flask-socketio>=5.3.0
|
|
gunicorn>=25.3.0
|
|
simple-websocket>=1.1.0
|