Skip to content

[HOW] Best practice to avoid DRC/ERC errors due to different KiCAD versions #874

@bene42

Description

@bene42

What do you want to achieve?
I try to build a project by github actions

Do you have some PCB/Schematic to use as example?
https://github.com/eurovibes/com4bbb

Do you have some configuration file (.kibot.yaml) that you are using?
see file com4bbb.kibot.yaml

Environment (please complete the following information):
Where are you running KiBot:

  • In a CI/CD workflow? Gitlab Actions
  • In a GitHub action? Which tag are you using? v2_k9 / v2_dk9
  • Using a docker image? No direct use -> github action
  • Using a desktop system? Which OS, distro and version? KiCAD on Linux: Debian sid :

Application: KiCad x86_64 on x86_64

Version: 9.0.6+dfsg-1, release build

Libraries:
wxWidgets 3.2.8
FreeType 2.13.3
HarfBuzz 12.1.0
FontConfig 2.15.0
libcurl/8.16.0 OpenSSL/3.5.4 zlib/1.3.1 brotli/1.1.0 zstd/1.5.7 libidn2/2.3.8 libpsl/0.21.2 libssh2/1.11.1 nghttp2/1.64.0 nghttp3/1.12.0 librtmp/2.3 OpenLDAP/2.6.10

Platform: Debian GNU/Linux forky/sid, 64 bit, Little endian, wxGTK, X11, , x11

Build Info:
Date: Nov 3 2025 16:44:05
wxWidgets: 3.2.8 (wchar_t,wx containers) GTK+ 3.24
Boost: 1.83.0
OCC: 7.8.1
Curl: 8.17.0-rc3
ngspice: 45.2
Compiler: GCC 15.2.0 with C++ ABI 1020
KICAD_IPC_API=ON

Locale:
Lang: de_DE
Enc: UTF-8
Num: 1.234,5
Encoded кΩ丈: D0BACEA9E4B888 (sys), D0BACEA9E4B888 (utf8)

Additional context
While running DRC/ERC works fine without errors on the development system it fails in CI:
DEBUG:DRC report: /github/workspace/Fabrication/com4bbb-drc_.txt (kibot.pre_run_drc - pre_run_drc.py:92)

  • Running the DRC
    DEBUG:Executing: /usr/bin/pcbnew_do -r -v run_drc -o com4bbb-drc_.txt /github/workspace/com4bbb.kicad_pcb /github/workspace/Fabrication (kibot - kiplot.py:183)
    ERROR:Found 0 DRC errors and 3 unconnected pad/s or warnings (pcbnew_do - pcbnew_do:1485) (kibot - kiplot.py:131)
    WARNING:(W058) (lib_footprint_mismatch) Footprint 'SOIC-8_3.9x4.9mm_P1.27mm' does not match copy in library 'Package_SO'.; Severity: warning
    @(128.3701 mm, 87.3824 mm): Footprint U102
    (pcbnew_do.kiauto.file_util - file_util.py:154) (kibot - kiplot.py:134)
    WARNING:(W058) (lib_footprint_mismatch) Footprint 'SOIC-8_3.9x4.9mm_P1.27mm' does not match copy in library 'Package_SO'.; Severity: warning
    @(153.8701 mm, 105.6324 mm): Footprint U103
    (pcbnew_do.kiauto.file_util - file_util.py:154) (kibot - kiplot.py:134)
    WARNING:(W058) (lib_footprint_mismatch) Footprint 'D_DO-41_SOD81_P10.16mm_Horizontal' does not match copy in library 'Diode_THT'.; Severity: warning
    @(131.6201 mm, 47.1324 mm): Footprint D114
    (pcbnew_do.kiauto.file_util - file_util.py:154) (kibot - kiplot.py:134)
    DEBUG:Output from command:

INFO:Loading /github/workspace/com4bbb.kicad_pcb
ERROR:Found 0 DRC errors and 3 unconnected pad/s or warnings (pcbnew_do - pcbnew_do:1485)
WARNING:(lib_footprint_mismatch) Footprint 'SOIC-8_3.9x4.9mm_P1.27mm' does not match copy in library 'Package_SO'.; Severity: warning
@(128.3701 mm, 87.3824 mm): Footprint U102
(pcbnew_do.kiauto.file_util - file_util.py:154)
WARNING:(lib_footprint_mismatch) Footprint 'SOIC-8_3.9x4.9mm_P1.27mm' does not match copy in library 'Package_SO'.; Severity: warning
@(153.8701 mm, 105.6324 mm): Footprint U103
(pcbnew_do.kiauto.file_util - file_util.py:154)
WARNING:(lib_footprint_mismatch) Footprint 'D_DO-41_SOD81_P10.16mm_Horizontal' does not match copy in library 'Diode_THT'.; Severity: warning
@(131.6201 mm, 47.1324 mm): Footprint D114
(pcbnew_do.kiauto.file_util - file_util.py:154)
(kibot - kiplot.py:197)
DEBUG:Removing temporal files (kibot.pre_base - pre_base.py:267)
ERROR:Trace stack: (kibot.gs - gs.py:885)
ERROR:DRC violations: 3 (kibot.gs - gs.py:899)
File "/usr/bin/kibot", line 33, in
sys.exit(load_entry_point('kibot==1.8.4', 'console_scripts', 'kibot')())
File "/usr/lib/python3/dist-packages/kibot/main.py", line 658, in main
generate_outputs(args.target, args.invert_sel, args.skip_pre, args.cli_order, args.no_priority,
File "/usr/lib/python3/dist-packages/kibot/kiplot.py", line 716, in generate_outputs
_generate_outputs(targets, invert, skip_pre, cli_order, no_priority, dont_stop)
File "/usr/lib/python3/dist-packages/kibot/kiplot.py", line 694, in _generate_outputs
preflight_checks(skip_pre, targets)
File "/usr/lib/python3/dist-packages/kibot/kiplot.py", line 550, in preflight_checks
BasePreFlight.run_enabled(targets)
File "/usr/lib/python3/dist-packages/kibot/pre_base.py", line 158, in run_enabled
v.run()
File "/usr/lib/python3/dist-packages/kibot/pre_run_drc.py", line 112, in run
GS.exit_with_error(msg, DRC_ERROR)

This happen occasionally due to updates in KiCAD footprins and symbols in the point releases.

What is the best practice to avoid these errors?

Regards
Benedikt Spranger

Metadata

Metadata

Assignees

Labels

questionThis is just a question, not a problem

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions