Skip to content

Decide which kodi-addon-checker findings to fix and which checks to promote to blocking #20

Closed

Description

@JMAN730

Part of #12

Question

The advisory tier now has a measured baseline (see the CI prototype resolution on #16): 12 problems / 257 warnings across the Python addons (245 warnings = non-whitelisted file endings) plus 26 problems / 4 warnings from the skin. Which of these are worth fixing in the sources, and which checker categories should then graduate from advisory to blocking so regressions can't creep back in?

Candidate cleanups, roughly by effort: delete/ignore non-whitelisted junk files (bulk of all warnings); fix plugin.program.theredwizard/resources/settings.xml (reported invalid); migrate mp3streams' legacy english/strings.xml language dir to resources/language/resource.language.en_gb/strings.po; resize the wrong-sized fanart; decide whether the xbmc.service schema complaints (e.g. start="startup") are checker false-positives to ignore permanently.

Needs maintainer appetite — this is source cleanup across addons the contributor doesn't own decisions for.

Activity

  1. self-assigned this
    on Jul 6, 2026
  2. JMAN730 commented on Jul 6, 2026

    @JMAN730
    OwnerAuthor

    Resolved via a grilling session, grounded in a fresh checker run (locally reproduced with the two network-dependent checks stubbed; findings match the CI baseline once sandbox proxy noise is excluded — the mp3streams icon/fanart errors belong to the still-unmerged PR #22 and are not part of this decision).

    Fix in sources (agreed)

    1. All syntax-level defects — zero behavior risk, Kodi's lenient parser papers over them today:
      • plugin.program.theredwizard/resources/settings.xml: missing space (visible="false"default="false") and raw & in a label
      • 11 invalid skin XMLs (16x9/Font.xml, includes.xml, IncludesMainButtons*.xml, SettingsProfile.xml, custom_skinsettings_1113.xml, Custom_DialogAppswitcher_1125.xml, fonts/backup_Font.xml): raw & in attributes and missing inter-attribute spaces
      • 5 invalid skin .po files (en_gb, fr_fr, de_de, it_it, es_ar): unescaped double quotes / smart quote in msgids — fixing these also clears the bogus "default language en_gb not present" error
      • plugin.video.redlight: empty <license/> gets license text
      • service.apkredwizard + service.multiinstallmybinaries: self-close the <extension point="xbmc.service"> elements (schema requires empty content)
      • plugin.audio.mp3streams: add lang attributes to <summary>/<description>
    2. Remove start="startup" from the xbmc.service extensions in mp3streams and gratisred — the attribute was removed in Kodi 19; services always start at login on every version this repo targets.
    3. Migrate mp3streams' legacy language dir resources/language/english/strings.xml → resources/language/resource.language.en_gb/strings.po (string IDs unchanged, so getLocalizedString keeps working).
    4. Rescale chainsliveplayer's fanart from 1365×768 to 1280×720.

    Permanently-accepted advisory noise (agreed — document, never fix)

    • Skin screenshots at 1024×600: the native resolution of the car-PC displays this skin targets; upscaling would blur and misrepresent it.
    • repository.redwizard <dir minversion/maxversion>: checker false positive — Kodi supports these attributes and the multi-channel repo depends on them.
    • "Complex entry point" warnings: style opinion, not adopted.
    • .xbt non-whitelisted-file-ending warnings: compiled textures are mandatory for skins.

    Promote to blocking (agreed)

    Once the fixes land, two new standalone blocking CI steps (stdlib/polib — not the checker itself):

    • All-XML well-formedness: extend the existing addon.xml check to every .xml under the addon dirs.
    • PO validity: polib parse of every strings.po.

    kodi-addon-checker stays advisory permanently — it needs network access and has known false positives.

    Follow-up task tickets created on the map for the cleanup work and the CI promotion (the latter blocked by the former).


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions