Skip to content

[FPP 10] fpp-servo-calibrator - compatibility & plugin check #230

Description

@github-actions

fpp-servo-calibrator - FPP 10 readiness

Plugin name: Animatronic Servo Calibrator
Repo: https://github.com/pgianotto/fpp-servo-calibrator
Maintainer: @pgianotto

📢 FPP's plugin guidelines and submission process have been updated - see the Plugin Guidelines for what's expected of a listed plugin. Adding another plugin? Start at Submit a plugin.

🔄 As part of this new process, in the lead up to each new version release we will create a GitHub issue like this one and ask that you review compatibility of your plugin with the new version and outline any new best practices for plugins. Please review this information and update your plugin accordingly.

🧪 Get your plugin ready for FPP 10

FPP 10.0 beta3 has been released - FPP 10 full release is due shortly. Please test and update your plugin against beta3, available at https://github.com/FalconChristmas/fpp/releases/tag/10.0-beta3.

✅ Compatibility

A versions[] entry already declares FPP 10 support.

Areas of concern / optimisation

  • 🛑 Blocker - install-in-hook
    • runs the plugin's own install/upgrade script from a lifecycle hook (scripts/preStart.sh:8: bash "$PLUGIN_DIR/fpp_install.sh") - this re-executes the entire install (package installs, service/proxy setup, network downloads) synchronously every time the hook's guard condition trips, blocking fppd startup for however long that takes.
    • Run any genuine self-heal step detached from the hook (e.g. systemd-run or nohup ... &) instead of inline, or use FPP's actual post-os-upgrade mechanism rather than reinventing one in preStart/postStart
  • 🛑 Blocker - git-network-call-in-hook
    • unbounded git network call in a lifecycle hook (scripts/preStart.sh:7: runuser -u fpp -- git -C "$PLUGIN_DIR" pull --quiet 2>/dev/null || true) - git has no built-in timeout, so a stalled connection here blocks fppd startup/shutdown indefinitely.
    • Wrap it with timeout <seconds> git ... or move it out of the hook entirely
  • ⚠️ Best practice - extra-pkg-manager
    • installs a second package/version manager on top of what FPP's image already provides (fpp_install.sh:13: python3 -m pip install --quiet --break-system-packages uv) - apt/pip/npm already cover system and language packages; a bolted-on manager (uv, pipx, nvm ...) is undesirable.
    • If there's a genuine need it can't cover (e.g. a Python/Node version the OS image doesn't ship), say so explicitly via /submit instead of adding a manager silently

We know our automated checks don't always get it 100% right. Please fix whatever above does apply first - then, for anything left that doesn't apply or you think deserves an exception, comment /submit with an explanation and a maintainer will take a look.

Once you have updated your plugin, please comment /recheck on this issue and we will automatically scan your plugin and comment the new results here.

Want to sunset this plugin? Request Plugin Removal

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions