Skip to content

docs(unraid): say why the CA templates use :latest on purpose - #286

Merged
GeiserX merged 1 commit into
mainfrom
docs/unraid-latest-is-deliberate
Aug 6, 2026
Merged

docs(unraid): say why the CA templates use :latest on purpose#286
GeiserX merged 1 commit into
mainfrom
docs/unraid-latest-is-deliberate

Conversation

@GeiserX

@GeiserX GeiserX commented Aug 6, 2026

Copy link
Copy Markdown
Owner

Closes CashPilot-3c2n. You chose to keep :latest, so the work is making that choice legible rather than changing it.

The reasoning, recorded beside the tag

Community Applications is how unraid users receive updates at all. A template pinned to 1.19 leaves every CA user on 1.19 until the template itself is re-published — trading "unknowable version" for "silently frozen version", which is worse for an app whose whole job is to keep earning.

Everywhere else still pins major.minor, and #280's sweep still fails any doc shipping :latest. This is the one deliberate exception.

Why a test, not just a comment

The tag alone reads as an oversight. Without the explanation beside it, the next person tidying :latest out of the repository removes it in good faith — and quietly changes how every unraid user upgrades.

So the test asserts both that the templates use :latest and that they explain why and point at the decision record.

Controlled: pinning one template to 1.19 fails with a message explaining what that would do. Also asserts the templates parse as XML (a malformed one is rejected by CA with no useful message) and that there are templates to check — otherwise every assertion holds vacuously.

Summary by CodeRabbit

  • Documentation

    • Added explanations to Unraid templates documenting the deliberate use of the floating :latest image tag, including update behavior and security considerations.
  • Tests

    • Added validation to ensure Unraid templates exist, contain valid XML, use :latest, and include the required decision rationale.

DECIDED 2026-08-07 by Sergio: keep :latest. CashPilot-3c2n asked the question
with three options; this is option 1, and the work is making the choice legible
rather than changing it.

The reasoning, recorded beside the tag itself: Community Applications is how
unraid users receive updates at all. A template pinned to 1.19 leaves every CA
user on 1.19 until the template is re-published -- trading "unknowable version"
for "silently frozen version", which is worse for an app whose whole job is to
keep earning. Everywhere else in the project still pins major.minor, and #280's
sweep still fails any DOC that ships :latest.

The tag alone reads as an oversight. Without the comment beside it, the next
person tidying the repository removes it in good faith and quietly changes how
every unraid user upgrades -- so a test now asserts both that the templates use
:latest AND that they explain why and point at the decision record.

Controlled: pinning one template to 1.19 fails the test with a message
explaining what that would do. Also asserts the templates parse as XML, since a
malformed one is rejected by CA with no useful message, and that there ARE
templates to check -- otherwise every assertion would hold vacuously.
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 2bdf4102-929c-4402-97f4-dffcdee30714

📥 Commits

Reviewing files that changed from the base of the PR and between ae1c097 and a457f80.

📒 Files selected for processing (3)
  • tests/test_unraid_latest_is_deliberate.py
  • unraid/cashpilot-worker.xml
  • unraid/cashpilot.xml

📝 Walkthrough

Walkthrough

The change adds tests for Unraid template discovery, XML validity, deliberate :latest usage, and decision-record comments. Both Unraid templates now document the :latest choice and reference CashPilot-3c2n.

Changes

Unraid template tag policy

Layer / File(s) Summary
Template policy tests
tests/test_unraid_latest_is_deliberate.py
Discovers Unraid templates and checks that they exist, contain valid XML, use :latest, and explain the decision with DELIBERATE and CashPilot-3c2n.
Template decision records
unraid/cashpilot-worker.xml, unraid/cashpilot.xml
Adds comments that document the :latest update behavior, its tradeoff with pinned versions, and the decision reference.

Estimated code review effort: 2 (Simple) | ~10 minutes

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/unraid-latest-is-deliberate

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@GeiserX
GeiserX merged commit 924101e into main Aug 6, 2026
1 of 2 checks passed
@GeiserX
GeiserX deleted the docs/unraid-latest-is-deliberate branch August 6, 2026 23:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant