Summary
The main-release CI cannot build the STEP model or 3D renders: almost every footprint references its 3D model through environment variables that don't exist in the CI image, so KiBot can't resolve the paths and crashes on the step output.
${TIS} — Turn Island Systems' private 3D-model library: 193 model references (24 distinct files)
${KISYS3DMOD} — deprecated KiCad env var: 19 references (test points)
Of 237 footprints: 215 reference an unresolvable model, 22 have no (model …) at all, and 3 use absolute/other paths.
Evidence
Reproduced from a failing dry-run build (historical, on the ringof fork — the error output is what matters):
ERROR: Unable to expand `TIS` in `${TIS}/TIS_3D/R-0603.step`
ERROR: Unable to expand `KISYS3DMOD` in `${KISYS3DMOD}/Pin_Headers.3dshapes/Pin_Header_Straight_1x01_Pitch2.54mm.wrl`
TypeError: expected str, bytes or os.PathLike object, not NoneType (kibot out_step.py)
Inventory below parsed directly from TAPRX-888.kicad_pcb.
Impact
STEP + 3D renders are deferred from the release package (the step/render_* KiBot outputs remain defined but are not invoked). The 2D JLCPCB turnkey outputs — gerbers, drill, CPL, LCSC BOM — and the schematic/assembly PDFs are unaffected and build cleanly.
Two categories → two remediation paths
1. ${KISYS3DMOD} — 19 test points (quick win)
${KISYS3DMOD} is the deprecated KiCad 3D-model variable. The referenced model ships with KiCad's standard library, so these just need remapping to the current KiCad-10 variable (${KICAD10_3DMODEL_DIR}), after which they resolve with no external assets.
| Model |
Footprints |
Pin_Headers.3dshapes/Pin_Header_Straight_1x01_Pitch2.54mm.wrl |
TP1–TP19 (19) |
2. ${TIS} — 193 refs across 24 files (needs a decision)
This is a private/local model library. Options:
- (a) Provision
TIS_3D/ into CI via a custom image layer on top of the public ghcr.io/inti-cmnb/kicad10_auto base, and set TIS — restores exactly what the designer sees; needs the files + redistribution rights.
- (b) Remap to KiCad's standard 3D libraries where equivalents exist (0603 R/C, SOT-23/23-5/23-6, SOT-223, QFN/DFN, MSOP/TSSOP, BGA-121, USB, oscillator …). No external dependency; several map cleanly, but each needs verifying.
- (c) Vendor the models into the repo (e.g. a
3d/ dir) and point TIS at it in CI — exact models, self-contained, at the cost of binary assets in-tree.
Suggested: do #1 now (trivial remap), and pick (a)/(b)/(c) for #2 separately.
Full ${TIS} inventory (model file → footprints)
24 model files, 193 references
Model file (${TIS}/…) |
Count |
Footprints |
TIS_3D/R-0603.step |
84 |
C4, C11–C14, C22, C25, C29, C41, C45, C47, C51, C52, C57, C60, C62, C65, C78, L1, L3–L7, L15–L17, R1–R8, R13–R61 |
TIS_3D/Capacitor_SMD.3dshapes/C_0603_1608Metric.step |
59 |
C1–C3, C5–C10, C15–C21, C23, C24, C26–C28, C30–C32, C34–C40, C42–C44, C46, C48–C50, C53–C56, C58, C59, C61, C63, C64, C66–C77 |
TIS_3D/LQW15AN2N2G80D.STEP |
7 |
L8–L14 |
TIS_3D/Package_TO_SOT_SMD.3dshapes/SOT-23.wrl |
7 |
Q1, Q2, Q3, U12, U13, U15, U17 |
TIS_3D/Molex-SMA.stp |
4 |
J1, J2, J3, J4 |
TIS_3D/Package_TO_SOT_SMD.3dshapes/SOT-223.step |
4 |
U1, U2, U3, U5 |
TIS_3D/msop-and-tssop-packages-1.snapshot.1/MSOP-08 0.65p 3mm Pad.iges |
4 |
R9, R10, R11, R12 |
TIS_3D/pin header 1x3 and jumper.stp |
4 |
J6, J7, J8, J9 |
TIS_3D/Package_TO_SOT_SMD.3dshapes/SOT-23-5.wrl |
3 |
U4, U14, U22 |
TIS_3D/sc70/LIB_AD8029AKSZ-R2/AD8029AKSZ-R2/3D/AD8029AKSZ-R2.stp |
3 |
U18, U19, U21 |
TIS_3D/MBR120ESFT1.STEP |
2 |
D1, D2 |
TIS_3D/ASTX-H12-10_000MHZ-T_ABR.step |
1 |
X1 |
TIS_3D/BGA/Package_BGA.3dshapes/BGA-121_9.0x9.0mm_Layout11x11_P0.8mm.step |
1 |
U11 |
TIS_3D/BUTTON-4p5X4p5.stp |
1 |
B1 |
TIS_3D/Oscillator.3dshapes/Oscillator_SMD_Abracon_ASV-4Pin_7.0x5.1mm.step |
1 |
U10 |
TIS_3D/Package_DFN_QFN.3dshapes/DFN-14-1EP_3x4mm_Pitch0.5mm.step |
1 |
U7 |
TIS_3D/Package_DFN_QFN.3dshapes/QFN-64-1EP_9x9mm_P0.5mm_EP7.35x7.35mm.step |
1 |
U8 |
TIS_3D/Package_TO_SOT_SMD.3dshapes/SOT-23-6.step |
1 |
U16 |
TIS_3D/R-1206.STEP |
1 |
C33 |
TIS_3D/SOIC16W.stp |
1 |
U6 |
TIS_3D/connectors/USB-3.0.STEP |
1 |
J5 |
TIS_3D/msop-and-tssop-packages-1.snapshot.1/MSOP-08 0.65p 3mm Pad.step |
1 |
U9 |
TIS_3D/msop-and-tssop-packages-1.snapshot.1/MSOP-10 0.50p 3mm Pad.step |
1 |
U20 |
${KISYS3DMOD}: Pin_Header_Straight_1x01_Pitch2.54mm.wrl → TP1–TP19 (19).
Notes for whoever picks this up
- A few
${TIS} mappings look generic/reused and are worth a sanity check during any remap: R-0603.step is applied to resistors and capacitors and small inductors (L1, L3–L7, L15–L17); MSOP-08 …Pad.iges is applied to R9–R12 (likely a resistor-array package). These aren't wrong for a fab STEP, but a remap is a good moment to fix them.
- The 22 footprints with no 3D model (test points/fiducials/mounting holes) are not blocking and can be left as-is.
Related: the provenance/release-CI work (provenance now delivered); STEP/renders remain the open piece here.
Migrated from ringof#45.
Summary
The
main-releaseCI cannot build the STEP model or 3D renders: almost every footprint references its 3D model through environment variables that don't exist in the CI image, so KiBot can't resolve the paths and crashes on thestepoutput.${TIS}— Turn Island Systems' private 3D-model library: 193 model references (24 distinct files)${KISYS3DMOD}— deprecated KiCad env var: 19 references (test points)Of 237 footprints: 215 reference an unresolvable model, 22 have no
(model …)at all, and 3 use absolute/other paths.Evidence
Reproduced from a failing dry-run build (historical, on the ringof fork — the error output is what matters):
Inventory below parsed directly from
TAPRX-888.kicad_pcb.Impact
STEP + 3D renders are deferred from the release package (the
step/render_*KiBot outputs remain defined but are not invoked). The 2D JLCPCB turnkey outputs — gerbers, drill, CPL, LCSC BOM — and the schematic/assembly PDFs are unaffected and build cleanly.Two categories → two remediation paths
1.
${KISYS3DMOD}— 19 test points (quick win)${KISYS3DMOD}is the deprecated KiCad 3D-model variable. The referenced model ships with KiCad's standard library, so these just need remapping to the current KiCad-10 variable (${KICAD10_3DMODEL_DIR}), after which they resolve with no external assets.Pin_Headers.3dshapes/Pin_Header_Straight_1x01_Pitch2.54mm.wrl2.
${TIS}— 193 refs across 24 files (needs a decision)This is a private/local model library. Options:
TIS_3D/into CI via a custom image layer on top of the publicghcr.io/inti-cmnb/kicad10_autobase, and setTIS— restores exactly what the designer sees; needs the files + redistribution rights.3d/dir) and pointTISat it in CI — exact models, self-contained, at the cost of binary assets in-tree.Suggested: do #1 now (trivial remap), and pick (a)/(b)/(c) for #2 separately.
Full
${TIS}inventory (model file → footprints)24 model files, 193 references
${TIS}/…)TIS_3D/R-0603.stepTIS_3D/Capacitor_SMD.3dshapes/C_0603_1608Metric.stepTIS_3D/LQW15AN2N2G80D.STEPTIS_3D/Package_TO_SOT_SMD.3dshapes/SOT-23.wrlTIS_3D/Molex-SMA.stpTIS_3D/Package_TO_SOT_SMD.3dshapes/SOT-223.stepTIS_3D/msop-and-tssop-packages-1.snapshot.1/MSOP-08 0.65p 3mm Pad.igesTIS_3D/pin header 1x3 and jumper.stpTIS_3D/Package_TO_SOT_SMD.3dshapes/SOT-23-5.wrlTIS_3D/sc70/LIB_AD8029AKSZ-R2/AD8029AKSZ-R2/3D/AD8029AKSZ-R2.stpTIS_3D/MBR120ESFT1.STEPTIS_3D/ASTX-H12-10_000MHZ-T_ABR.stepTIS_3D/BGA/Package_BGA.3dshapes/BGA-121_9.0x9.0mm_Layout11x11_P0.8mm.stepTIS_3D/BUTTON-4p5X4p5.stpTIS_3D/Oscillator.3dshapes/Oscillator_SMD_Abracon_ASV-4Pin_7.0x5.1mm.stepTIS_3D/Package_DFN_QFN.3dshapes/DFN-14-1EP_3x4mm_Pitch0.5mm.stepTIS_3D/Package_DFN_QFN.3dshapes/QFN-64-1EP_9x9mm_P0.5mm_EP7.35x7.35mm.stepTIS_3D/Package_TO_SOT_SMD.3dshapes/SOT-23-6.stepTIS_3D/R-1206.STEPTIS_3D/SOIC16W.stpTIS_3D/connectors/USB-3.0.STEPTIS_3D/msop-and-tssop-packages-1.snapshot.1/MSOP-08 0.65p 3mm Pad.stepTIS_3D/msop-and-tssop-packages-1.snapshot.1/MSOP-10 0.50p 3mm Pad.step${KISYS3DMOD}:Pin_Header_Straight_1x01_Pitch2.54mm.wrl→ TP1–TP19 (19).Notes for whoever picks this up
${TIS}mappings look generic/reused and are worth a sanity check during any remap:R-0603.stepis applied to resistors and capacitors and small inductors (L1, L3–L7, L15–L17);MSOP-08 …Pad.igesis applied to R9–R12 (likely a resistor-array package). These aren't wrong for a fab STEP, but a remap is a good moment to fix them.Related: the provenance/release-CI work (provenance now delivered); STEP/renders remain the open piece here.
Migrated from ringof#45.