# Plugins to install (pip requirements format, one per line). This file is the
# source of truth: a startup reconcile makes the installed plugins match it on a
# plain restart — no image rebuild.
# Copy this file to config/requirements-plugins.txt and edit it for your signs,
# then restart:  docker compose restart
#
# Installed with pip dependency resolution, constrained to led-ticker's core
# dependency versions: a plugin may pull its own new libraries, but may not move
# a version that core already pins (a bad line is caught at startup and logged,
# the panel still boots).
#
# Deploy notes:
# - For production signs, pin first-party data plugins to a version with ==
#   (e.g. led-ticker-pool==0.1.0) so a restart doesn't silently pick up a new
#   release. PyPI installs can pin with == (unpinned shown below for easy copying).
# - Updating an EXACT == pin (0.1.0 -> 0.2.0) and restarting reinstalls in place:
#   the startup reconcile compares the manifest pin to the installed version.
#   Changing an UNPINNED line, a range spec (>=, ~=), or a git/URL source is NOT
#   reliably detected on a restart (the reconcile can't tell the source moved) —
#   to refresh a non-pinned source you must reset the plugin volume:
#   docker compose down -v && docker compose up -d
#   Note: `docker volume rm ticker-plugins` will NOT work — Compose prefixes named
#   volumes with the project name (e.g. led-ticker_ticker-plugins), so the bare
#   name never matches. Use `docker compose down -v` to remove by real name.
# - Homage / third-party plugins install from a git URL with the #subdirectory=
#   fragment; for those, pin to a tag or commit SHA rather than @main to avoid
#   silent code drift on restart.
# - Each sign's config/requirements-plugins.txt is gitignored, so it must be
#   present (copied from this file) and trimmed to the plugins that sign uses.
#   The sign's gitignored config/config.toml must reference installed plugin
#   widgets — both files need updating and a restart at deploy time.
#
# All first-party plugins are on PyPI — install them by name.

# Pool water-temperature widget (type = "pool.monitor"):
led-ticker-pool

# Baseball / MLB widgets (baseball.scores / .standings / .promotions / .statcast
# / .attendance), the baseball.roll* transitions, and the :baseball.ball: emoji:
led-ticker-baseball

# CoinGecko crypto price ticker (type = "crypto.coingecko"):
led-ticker-crypto

# Calendar (.ics) agenda/next/two_row widget (type = "calendar.events"):
led-ticker-calendar

# RSS/Atom feed headlines (type = "rss.feed"):
led-ticker-rss

# Current-conditions weather, WeatherAPI.com (type = "weather.current"):
led-ticker-weather

# Homage sprite-trail transitions — nyancat / pokeball / pacman / sailor_moon
# (transition = "nyancat.forward" etc.) plus the :pokeball.ball: emoji.
# One install brings all four; the type strings are unchanged.
led-ticker-flair
