Closed oliv3r closed 2 months ago
Looking at preflight.rst, we see a lot of new details with regards to KiCad8 missing, only some old 'run_drc' is listed or kicad5 stuff.
Looking at the master I can see drc and erc documented. I agree that run_drc should also say its deprecated, as run_erc does. But drc clearly states this is the one for KiCad 8.
Also when generating the example template, we only get a very plain(, non functional example?).
filters: - filter: 'Filter description' error: '10' regex: 'Regular expression to match'
I guess you mean the one generated with kibot --example
, this example clearly states:
# ATTENTION! THIS ISN'T A FULLY FUNCTIONAL EXAMPLE.
# You should take portions of this example and edit the options to make
# them suitable for your use.
# This file is useful to know all the available options.
You'll get a better example using --quick-start
, as the docs suggest.
Reason for my asking, is I can't figure out to ignore the following:
preflight: drc: enabled: true filters: - change_to: 'ignore' filter: 'KiCad bug #6918, self-contained project fails with 3D models' error: 'lib_footprint_mismatch' - change_to: 'ignore' filter: 'Earth ground is connected via connector shell, drc-flood-fills resets this' error: 'unconnected_items' regex: '[Earth]'
where kibot produces
- Running the DRC ERROR:12 DRC errors detected (kibot.pre_drc - pre_drc.py:150) ERROR:(unconnected_items) Missing connection between items @(131.6525 mm, 69.38 mm): Pad 2 [Earth] of R3 on F.Cu @(131.5 mm, 67.7425 mm): Track [Earth] on F.Cu, length 0.1945 mm Check: Unconnected items (kibot.pre_drc - pre_drc.py:165) ERROR:(unconnected_items) Missing connection between items @(123.3475 mm, 69.38 mm): Pad 2 [Earth] of R1 on F.Cu @(123.5 mm, 67.7425 mm): Track [Earth] on F.Cu, length 0.1945 mm Check: Unconnected items (kibot.pre_drc - pre_drc.py:165)
Please provide a simple example. The filter regex doesn't look right, but should be filtered anyways. You should read something about regular expressions, [
is a special character.
Looking at preflight.rst, we see a lot of new details with regards to KiCad8 missing, only some old 'run_drc' is listed or kicad5 stuff.
Looking at the master I can see drc and erc documented. I agree that _rundrc should also say its deprecated, as _runerc does. But drc clearly states this is the one for KiCad 8.
I appologize, I wasn't clear enough. I meant the examples specifically. There's only run_drc
examples (as quoted below), but there's no new kicad8 drc
example.
Also when generating the example template, we only get a very plain(, non functional example?).
filters: - filter: 'Filter description' error: '10' regex: 'Regular expression to match'
I guess you mean the one generated with
kibot --example
, this example clearly states:# ATTENTION! THIS ISN'T A FULLY FUNCTIONAL EXAMPLE. # You should take portions of this example and edit the options to make # them suitable for your use. # This file is useful to know all the available options.
You'll get a better example using
--quick-start
, as the docs suggest.
I did, and I know it's just that, a not fully example, but with error: '10'
it hints to beign a run_drc
example. But it also means I was not able to extract what I should be using.
Reason for my asking, is I can't figure out to ignore the following:
preflight: drc: enabled: true filters: - change_to: 'ignore' filter: 'KiCad bug #6918, self-contained project fails with 3D models' error: 'lib_footprint_mismatch' - change_to: 'ignore' filter: 'Earth ground is connected via connector shell, drc-flood-fills resets this' error: 'unconnected_items' regex: '[Earth]'
where kibot produces
- Running the DRC ERROR:12 DRC errors detected (kibot.pre_drc - pre_drc.py:150) ERROR:(unconnected_items) Missing connection between items @(131.6525 mm, 69.38 mm): Pad 2 [Earth] of R3 on F.Cu @(131.5 mm, 67.7425 mm): Track [Earth] on F.Cu, length 0.1945 mm Check: Unconnected items (kibot.pre_drc - pre_drc.py:165) ERROR:(unconnected_items) Missing connection between items @(123.3475 mm, 69.38 mm): Pad 2 [Earth] of R1 on F.Cu @(123.5 mm, 67.7425 mm): Track [Earth] on F.Cu, length 0.1945 mm Check: Unconnected items (kibot.pre_drc - pre_drc.py:165)
Please provide a simple example. The filter regex doesn't look right, but should be filtered anyways. You should read something about regular expressions,
[
is a special character.
Ah, sorry, that was my copy/paste in my feeble attempts to see what would work. I initially had just Earth
which is fine, but that wasn't triggered uppon. I am fully aware of the special meaning of the [
character, and know it probably would need to be escaped, but I never got that far. So I appologize for the incorrect example.
Here's a an example with everything: https://gitlab.com/olliver/lapod/-/jobs/7268429127 and yes, I am fully aware it's a complex pipeline example; but the behavior can be replicated after cloning of the repo by doing
docker run --rm -it -v ./:/w -w /w ghcr.io/inti-cmnb/kicad8_auto_full:1.7.0 kibot -c breakout_hdmi/.kibot/kici_drc.kibot.yaml -e breakout_hdmi/breakout_hdmi.kicad_sch -b breakout_hdmi/breakout_hdmi.kicad_pcb
Here's a an example with everything: https://gitlab.com/olliver/lapod/-/jobs/7268429127 and yes, I am fully aware it's a complex pipeline example; but the behavior can be replicated after cloning of the repo by doing
I tried it and is using run_drc
, not drc
. Changing it to drc
I got:
- Running the DRC
WARNING:(W144) Using filters from the `filters` preflight, move them to `drc` (kibot.pre_drc - pre_drc.py:39)
WARNING:(W145) 8 DRC warnings detected (kibot.pre_drc - pre_drc.py:144)
WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ.
@(122.3875 mm, 67.88 mm): Footprint C1
Check: Schematic parity (kibot.pre_drc - pre_drc.py:144)
WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ.
@(77.5 mm, 67.88 mm): Footprint C2
Check: Schematic parity (kibot.pre_drc - pre_drc.py:144)
WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ.
@(132.5 mm, 67.88 mm): Footprint C3
Check: Schematic parity (kibot.pre_drc - pre_drc.py:144)
WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ.
@(87.6125 mm, 67.88 mm): Footprint C4
Check: Schematic parity (kibot.pre_drc - pre_drc.py:144)
WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ.
@(122.75 mm, 69.38 mm): Footprint R1
Check: Schematic parity (kibot.pre_drc - pre_drc.py:144)
WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ.
@(77.6525 mm, 69.38 mm): Footprint R2
Check: Schematic parity (kibot.pre_drc - pre_drc.py:144)
WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ.
@(132.25 mm, 69.38 mm): Footprint R3
Check: Schematic parity (kibot.pre_drc - pre_drc.py:144)
WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ.
@(87.25 mm, 69.38 mm): Footprint R4
Check: Schematic parity (kibot.pre_drc - pre_drc.py:144)
Found 10 unique warning/s (10 total)
I also tried with a docker image, and I can't reproduce it.
Here's a an example with everything: https://gitlab.com/olliver/lapod/-/jobs/7268429127 and yes, I am fully aware it's a complex pipeline example; but the behavior can be replicated after cloning of the repo by doing
I tried it and is using
run_drc
, notdrc
. Changing it todrc
I got:- Running the DRC WARNING:(W144) Using filters from the `filters` preflight, move them to `drc` (kibot.pre_drc - pre_drc.py:39) WARNING:(W145) 8 DRC warnings detected (kibot.pre_drc - pre_drc.py:144) WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ. @(122.3875 mm, 67.88 mm): Footprint C1 Check: Schematic parity (kibot.pre_drc - pre_drc.py:144) WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ. @(77.5 mm, 67.88 mm): Footprint C2 Check: Schematic parity (kibot.pre_drc - pre_drc.py:144) WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ. @(132.5 mm, 67.88 mm): Footprint C3 Check: Schematic parity (kibot.pre_drc - pre_drc.py:144) WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ. @(87.6125 mm, 67.88 mm): Footprint C4 Check: Schematic parity (kibot.pre_drc - pre_drc.py:144) WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ. @(122.75 mm, 69.38 mm): Footprint R1 Check: Schematic parity (kibot.pre_drc - pre_drc.py:144) WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ. @(77.6525 mm, 69.38 mm): Footprint R2 Check: Schematic parity (kibot.pre_drc - pre_drc.py:144) WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ. @(132.25 mm, 69.38 mm): Footprint R3 Check: Schematic parity (kibot.pre_drc - pre_drc.py:144) WARNING:(W145) (footprint_symbol_mismatch) Footprint attributes don't match symbol: 'Do not populate' settings differ. @(87.25 mm, 69.38 mm): Footprint R4 Check: Schematic parity (kibot.pre_drc - pre_drc.py:144) Found 10 unique warning/s (10 total)
I also tried with a docker image, and I can't reproduce it.
which is totally my fault for not mentioning that the kicad8 work is happening on the branch upgrade/kicad_8
, which i admit is not completely obvious from the job log I think. The master stuff still is based on the old kicad with indeed the legacy run_drc
. I couldn't merge it to master yet due to failures :p
Though probably a good idea would be to add a warning when using run_?rc
on the kicad8 container/app?
Hi @oliv3r !
I did a checkout for the branch you mentioned, and updated the .kici submodule. Then I got errors about unconnected items, but this was because it didn't have a filter, after adding the filter:
diff --git a/kibot_jobs/kici_drc.kibot.yaml b/kibot_jobs/kici_drc.kibot.yaml
index f0f7eca..79df495 100644
--- a/kibot_jobs/kici_drc.kibot.yaml
+++ b/kibot_jobs/kici_drc.kibot.yaml
@@ -11,3 +11,12 @@ preflight:
enabled: true
format: 'CSV,HTML,JSON,RPT'
warnings_as_errors: true
+ filters:
+ - change_to: 'ignore'
+ filter: 'KiCad bug #6918, self-contained project fails with 3D models'
+ error: 'lib_footprint_mismatch'
+ - change_to: 'ignore'
+ filter: 'Earth ground is connected via connector shell, drc-flood-fills resets this'
+ error: 'unconnected_items'
+ regex: '[Earth]'
+
I get no errors
Though probably a good idea would be to add a warning when using
run_?rc
on the kicad8 container/app?
The warning is there!
$ kibot -c tests/yaml_samples/drc.kibot.yaml -b tests/board_samples/kicad_8/light_control.kicad_pcb -d pp
WARNING:(W143) For KiCad 8 use the `drc` preflight instead of `run_drc` (kibot.pre_run_drc - pre_run_drc.py:86)
It was added 3 months ago: 7baff559412e5ba8134c96549eeb1c6ed7ee458c
The above patch should update the filters explanation
Maybe this is because i'm using v1.7.0? I'll recheck with a fresh-checkout ...
Maybe this is because i'm using v1.7.0? I'll recheck with a fresh-checkout ...
The 1.7.0 release includes the warning (W143)
Looking at preflight.rst, we see a lot of new details with regards to KiCad8 missing, only some old 'run_drc' is listed or kicad5 stuff.
Also when generating the example template, we only get a very plain(, non functional example?).
Reason for my asking, is I can't figure out to ignore the following:
where kibot produces
These are 'earth' pads which connect to the shell of a connector, which is where these parts are 'connected', so I want to ignore these. I could exclude this within kicad, but because these are on ground-planes, kicad keeps 'resetting' these ...