GTR010 — Upgrade24_1 — format/ftype normalization
Contract: behaviour-preserving (runtime no-op).
Claim
Lowercasing + comma-token-stripping format/ftype is a runtime no-op that
restores 24.2 validity.
Proof — the codemod IS Galaxy’s own parse, applied statically
parse_extensions returns
[extension.strip().lower() for extension in self.get("format", "data").split(",")]
(tool_util/parser/xml.py:1453) — character-for-character this transform. The
datatype registry lowercases extensions at load
(datatypes/registry.py:1028-1042). A test ftype missing the registry never
matched (repair class).
Scope boundary
A <data> comma-list, non-datatype junk, and macro-file values are left
(codemod §14; the macro residual is the opt-in normalize-macros command’s
job).