Add ESD9B5.0ST5G, PESD5V0L4UW, TPD2E007DCKR, TPS22994RUKT; fix FSC-BT1058 duplicate library registration
FSC-BT1058 had ended up with two footprint/symbol libraries on disk (FSC-BT1058 and MIKILAB_FSC-BT1058) after a re-import baked the "MIKILAB_" nickname prefix into the component name itself. Since that prefix is normally added automatically when sym-lib-table/fp-lib-table are generated, the double-prefixed copy (MIKILAB_MIKILAB_FSC_BT1058) was invisible to collision checks and left the original as a stale, outdated duplicate. Consolidated onto the single correct library (symbols/other and footprints/other without the redundant prefix, matching the rest of the library's naming convention), fixed the symbol's Footprint property and the footprint's 3D model reference, and regenerated both lib-tables from disk. To stop this class of bug from recurring: - lib_common.check_component_name() rejects any --name that already starts with "MIKILAB", used by import_component.py's import_symbol/ import_footprint (and therefore also by add_component.py and the SnapEDA/UltraLibrarian importers, which call into the same core). - check_library.py now flags any on-disk symbol/footprint whose name already carries that prefix as an ERROR, independent of how it got there. - import_component.py gains --remove to cleanly delete a component (symbol, footprint library, 3D model) and regenerate the lib-tables in one step, for exactly this kind of cleanup. Errors: 0 on check_library.py after the fix. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -111,6 +111,10 @@ def check_symbols(report: Report) -> list[tuple[str, Path]]:
|
||||
for path in files:
|
||||
basenames[path.name.lower()].append(path)
|
||||
|
||||
bad_name = lc.check_component_name(path.stem)
|
||||
if bad_name:
|
||||
report.error(f"[SYM] {path.relative_to(ROOT)}: {bad_name}")
|
||||
|
||||
text = path.read_text(encoding="utf-8", errors="replace")
|
||||
|
||||
if not text.lstrip().startswith("(kicad_symbol_lib"):
|
||||
@@ -194,6 +198,10 @@ def check_footprints(report: Report) -> dict[str, Path]:
|
||||
for pretty in pretty_dirs:
|
||||
nickname = lc.fp_nickname(pretty)
|
||||
|
||||
bad_name = lc.check_component_name(pretty.name[: -len(".pretty")])
|
||||
if bad_name:
|
||||
report.error(f"[FP] {pretty.relative_to(ROOT)}: {bad_name}")
|
||||
|
||||
for mod in sorted(pretty.glob("*.kicad_mod")):
|
||||
basenames[mod.name.lower()].append(mod)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user