Code Monkey home page Code Monkey logo

kidiff's People

Contributors

mdeweerd avatar set-soft avatar taotieren avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

kidiff's Issues

AssertionError in pdf2png

I get the following output when running kicad-diff.py Old.kicad_pcb New.kicad_pcb --exclude Exclude.txt --cache_dir Cache --keep_pngs -vv

DEBUG:kicad-diff.py:Using cached User.5 layer
DEBUG:kicad-diff.py:Using cached User.6 layer
DEBUG:kicad-diff.py:Using cached User.7 layer
DEBUG:kicad-diff.py:Using cached User.8 layer
DEBUG:kicad-diff.py:Using cached User.9 layer
DEBUG:kicad-diff.py:Executing: bash -c 'convert -density 300 "Cache/6521f80d85529af422c7c0262e6843a2c431338a/0.pdf" -background white -alpha remove -alpha off -threshold 50% -colorspace Gray -resample 150 -depth 8 "Cache/6521f80d85529af422c7c0262e6843a2c431338a/0.png"'
DEBUG:kicad-diff.py:Running ['bash', '-c', 'convert -density 300 "Cache/6521f80d85529af422c7c0262e6843a2c431338a/0.pdf" -background white -alpha remove -alpha off -threshold 50% -colorspace Gray -resample 150 -depth 8 "Cache/6521f80d85529af422c7c0262e6843a2c431338a/0.png"'] returned 1
DEBUG:kicad-diff.py:- StdOut from command: convert-im6.q16: attempt to perform an operation not allowed by the security policy `PDF' @ error/constitute.c/IsCoderAuthorized/421.
convert-im6.q16: no images defined `Cache/6521f80d85529af422c7c0262e6843a2c431338a/0.png' @ error/convert.c/ConvertImageCommand/3229.

Traceback (most recent call last):
  File "/usr/bin/kicad-diff.py", line 795, in <module>
    output_pdf = DiffImages(old_file_hash, new_file_hash, layers_old, layers_new, args.only_different, changed)
  File "/usr/bin/kicad-diff.py", line 439, in DiffImages
    old = pdf2png(old_file, i not in layers_old, new_file)
  File "/usr/bin/kicad-diff.py", line 329, in pdf2png
    assert False
AssertionError

The Cache directory only contains PDF files and no PNG files

image

[BUG] KiDiff leaves intermediate png files for PCB, not SCH when no difference, and asked only for differences

Using the kicad 7 full docker image, generating a pcb diff, I am left with all PNG files in the output dir, even when cache_dir is set to blank, set to /tmp or even removed entirely. While the png files are great for debugging, once the pdf is generated as final output, they become useless.

outputs:
  - name: 'diffsch'
    comment: 'Generates a PDF with the differences between schematic.'
    type: 'diff'
    dir: 'output/diff'
    options: &diff_options
      add_link_id: false
      always_fail_if_missing: true
      cache_dir: '/tmp/pdfdiff'
      copy_instead_of_link: false
      diff_mode: 'red_green'
      force_checkout: false
      fuzz: 5
      new: ''
      # [string='current'] [git,file,output,multivar,current] How to interpret the `new` name. Use `git` for a git hash, branch, etc.
      new_type: 'current'
      old: 'HEAD'
      old_type: 'git'
      only_different: true
      only_first_sch_page: false
      threshold: 0
      use_file_id: false
      pcb: false
    layers: 'all'
  - name: 'diffpcb'
    comment: 'Generates a PDF with the differences between PCBs.'
    type: 'diff'
    dir: 'output/diff'
    options:
      <<: *diff_options
      pcb: true
    layers: 'all'
-vvv log ``` - 'Generates a PDF with the differences between PCBs.' (diffpcb) [diff] DEBUG:Output destination: /workspace/breakout_hdmi/output/diff (kibot - kiplot.py:364) DEBUG:Starting tool check for KiCad PCB/SCH Diff (kibot - dep_downloader.py:833) DEBUG:- Checking binary tool KiCad PCB/SCH Diff (kibot - dep_downloader.py:727) DEBUG:- Looking for tool `kicad-diff.py` at system level (kibot - dep_downloader.py:661) DEBUG:- Checking version for `/usr/bin/kicad-diff.py` (kibot - dep_downloader.py:628) DEBUG:- Needed version (2, 4, 4) (kibot - dep_downloader.py:644) DEBUG:- Cached version (2, 4, 7, 0) (kibot - dep_downloader.py:648) DEBUG:- Returning `/usr/bin/kicad-diff.py` (kibot - dep_downloader.py:840) DEBUG:Starting tool check for Git (kibot - dep_downloader.py:833) DEBUG:- Checking binary tool Git (kibot - dep_downloader.py:727) DEBUG:- Looking for tool `git` at system level (kibot - dep_downloader.py:661) DEBUG:- Checking version for `/usr/bin/git` (kibot - dep_downloader.py:628) DEBUG:- No particular version needed (kibot - dep_downloader.py:642) DEBUG:- Cached version (2, 39, 2, 0) (kibot - dep_downloader.py:648) DEBUG:- Returning `/usr/bin/git` (kibot - dep_downloader.py:840) DEBUG:Including layers: (kibot - out_diff.py:484) DEBUG:- F.Cu (0) (kibot - out_diff.py:488) DEBUG:- In1.Cu (1) (kibot - out_diff.py:488) DEBUG:- In2.Cu (2) (kibot - out_diff.py:488) DEBUG:- B.Cu (31) (kibot - out_diff.py:488) DEBUG:- B.Adhesive (32) (kibot - out_diff.py:488) DEBUG:- F.Adhesive (33) (kibot - out_diff.py:488) DEBUG:- B.Paste (34) (kibot - out_diff.py:488) DEBUG:- F.Paste (35) (kibot - out_diff.py:488) DEBUG:- B.Silkscreen (36) (kibot - out_diff.py:488) DEBUG:- F.Silkscreen (37) (kibot - out_diff.py:488) DEBUG:- B.Mask (38) (kibot - out_diff.py:488) DEBUG:- F.Mask (39) (kibot - out_diff.py:488) DEBUG:- User.Drawings (40) (kibot - out_diff.py:488) DEBUG:- User.Comments (41) (kibot - out_diff.py:488) DEBUG:- User.Eco1 (42) (kibot - out_diff.py:488) DEBUG:- User.Eco2 (43) (kibot - out_diff.py:488) DEBUG:- Edge.Cuts (44) (kibot - out_diff.py:488) DEBUG:- Margin (45) (kibot - out_diff.py:488) DEBUG:- B.Courtyard (46) (kibot - out_diff.py:488) DEBUG:- F.Courtyard (47) (kibot - out_diff.py:488) DEBUG:- B.Fab (48) (kibot - out_diff.py:488) DEBUG:- F.Fab (49) (kibot - out_diff.py:488) DEBUG:- User.1 (50) (kibot - out_diff.py:488) DEBUG:- User.2 (51) (kibot - out_diff.py:488) DEBUG:- User.3 (52) (kibot - out_diff.py:488) DEBUG:- User.4 (53) (kibot - out_diff.py:488) DEBUG:- User.5 (54) (kibot - out_diff.py:488) DEBUG:- User.6 (55) (kibot - out_diff.py:488) DEBUG:- User.7 (56) (kibot - out_diff.py:488) DEBUG:- User.8 (57) (kibot - out_diff.py:488) DEBUG:- User.9 (58) (kibot - out_diff.py:488) DEBUG:Finding HEAD (kibot - out_diff.py:299) DEBUG:Checking out HEAD to /tmp/tmp50ufy24s (kibot - out_diff.py:408) DEBUG:Executing: /usr/bin/git worktree add /tmp/tmp50ufy24s HEAD (kibot - kiplot.py:157) DEBUG:- CWD: /workspace/breakout_hdmi (kibot - kiplot.py:159) DEBUG:- Output from command: Preparing worktree (detached HEAD 0fb8bf2) HEAD is now at 0fb8bf2 fixup (kibot - kiplot.py:149) DEBUG:Executing: /usr/bin/git submodule update --init --recursive (kibot - kiplot.py:157) DEBUG:- CWD: /tmp/tmp50ufy24s (kibot - kiplot.py:159) DEBUG:Executing: /usr/bin/git ls-files --full-name /workspace/breakout_hdmi/breakout_hdmi.kicad_pcb (kibot - kiplot.py:157) DEBUG:- CWD: /workspace/breakout_hdmi (kibot - kiplot.py:159) DEBUG:- Output from command: breakout_hdmi/breakout_hdmi.kicad_pcb (kibot - kiplot.py:149) DEBUG:- Using temporal copy: /tmp/tmp50ufy24s/breakout_hdmi/breakout_hdmi.kicad_pcb (kibot - out_diff.py:414) DEBUG:Hashing /tmp/tmp50ufy24s/breakout_hdmi/breakout_hdmi.kicad_pcb (kibot - out_diff.py:134) DEBUG:Executing: /usr/bin/kicad-diff.py -vvv --no_reader --only_cache --old_file_hash edbb34bfe69a279a577b4f9071eb005e6b8f84b6 --cache_dir /tmp/pdfdiff --layers /tmp/tmp6dhi3ipl.lst --all_pages /tmp/tmp50ufy24s/breakout_hdmi/breakout_hdmi.kicad_pcb /tmp/tmp50ufy24s/breakout_hdmi/breakout_hdmi.kicad_pcb (kibot - kiplot.py:157) DEBUG:- Output from command: DEBUG:kicad-diff.py:/tmp/tmp50ufy24s/breakout_hdmi/breakout_hdmi.kicad_pcb SHA1 is edbb34bfe69a279a577b4f9071eb005e6b8f84b6 DEBUG:kicad-diff.py:/tmp/tmp50ufy24s/breakout_hdmi/breakout_hdmi.kicad_pcb SHA1 is None DEBUG:kicad-diff.py:Cache dir: /tmp/pdfdiff DEBUG:kicad-diff.py:Temporal output dir /tmp/tmpwqklm1be DEBUG:kicad-diff.py:layers to be included: [0, 1, 2, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58] DEBUG:kicad-diff.py:Cache for /tmp/tmp50ufy24s/breakout_hdmi/breakout_hdmi.kicad_pcb will be /tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6 INFO:kicad-diff.py:cache dir for `/tmp/tmp50ufy24s/breakout_hdmi/breakout_hdmi.kicad_pcb` already exists DEBUG:kicad-diff.py:Loading layers from cache /tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/layers.csv DEBUG:kicad-diff.py:['Layer ID', 'Layer name', 'User name'] DEBUG:kicad-diff.py:F.Cu->0 DEBUG:kicad-diff.py:In1.Cu->1 DEBUG:kicad-diff.py:In2.Cu->2 DEBUG:kicad-diff.py:B.Cu->31 DEBUG:kicad-diff.py:B.Adhes->32 DEBUG:kicad-diff.py:F.Adhes->33 DEBUG:kicad-diff.py:B.Paste->34 DEBUG:kicad-diff.py:F.Paste->35 DEBUG:kicad-diff.py:B.SilkS->36 DEBUG:kicad-diff.py:F.SilkS->37 DEBUG:kicad-diff.py:B.Mask->38 DEBUG:kicad-diff.py:F.Mask->39 DEBUG:kicad-diff.py:Dwgs.User->40 DEBUG:kicad-diff.py:Cmts.User->41 DEBUG:kicad-diff.py:Eco1.User->42 DEBUG:kicad-diff.py:Eco2.User->43 DEBUG:kicad-diff.py:Edge.Cuts->44 DEBUG:kicad-diff.py:Margin->45 DEBUG:kicad-diff.py:B.CrtYd->46 DEBUG:kicad-diff.py:F.CrtYd->47 DEBUG:kicad-diff.py:B.Fab->48 DEBUG:kicad-diff.py:F.Fab->49 DEBUG:kicad-diff.py:User.1->50 DEBUG:kicad-diff.py:User.2->51 DEBUG:kicad-diff.py:User.3->52 DEBUG:kicad-diff.py:User.4->53 DEBUG:kicad-diff.py:User.5->54 DEBUG:kicad-diff.py:User.6->55 DEBUG:kicad-diff.py:User.7->56 DEBUG:kicad-diff.py:User.8->57 DEBUG:kicad-diff.py:User.9->58 DEBUG:kicad-diff.py:Layers list: {0: 'F.Cu', 1: 'In1.Cu', 2: 'In2.Cu', 31: 'B.Cu', 32: 'B.Adhes', 33: 'F.Adhes', 34: 'B.Paste', 35: 'F.Paste', 36: 'B.SilkS', 37: 'F.SilkS', 38: 'B.Mask', 39: 'F.Mask', 40: 'Dwgs.User', 41: 'Cmts.User', 42: 'Eco1.User', 43: 'Eco2.User', 44: 'Edge.Cuts', 45: 'Margin', 46: 'B.CrtYd', 47: 'F.CrtYd', 48: 'B.Fab', 49: 'F.Fab', 50: 'User.1', 51: 'User.2', 52: 'User.3', 53: 'User.4', 54: 'User.5', 55: 'User.6', 56: 'User.7', 57: 'User.8', 58: 'User.9'} DEBUG:kicad-diff.py:Wanted layers: {0: 'F.Cu', 1: 'In1.Cu', 2: 'In2.Cu', 31: 'B.Cu', 32: 'B.Adhesive', 33: 'F.Adhesive', 34: 'B.Paste', 35: 'F.Paste', 36: 'B.Silkscreen', 37: 'F.Silkscreen', 38: 'B.Mask', 39: 'F.Mask', 40: 'User.Drawings', 41: 'User.Comments', 42: 'User.Eco1', 43: 'User.Eco2', 44: 'Edge.Cuts', 45: 'Margin', 46: 'B.Courtyard', 47: 'F.Courtyard', 48: 'B.Fab', 49: 'F.Fab', 50: 'User.1', 51: 'User.2', 52: 'User.3', 53: 'User.4', 54: 'User.5', 55: 'User.6', 56: 'User.7', 57: 'User.8', 58: 'User.9'} DEBUG:kicad-diff.py:Using cached F.Cu layer DEBUG:kicad-diff.py:Using cached In1.Cu layer DEBUG:kicad-diff.py:Using cached In2.Cu layer DEBUG:kicad-diff.py:Using cached B.Cu layer DEBUG:kicad-diff.py:Using cached B.Adhesive layer DEBUG:kicad-diff.py:Using cached F.Adhesive layer DEBUG:kicad-diff.py:Using cached B.Paste layer DEBUG:kicad-diff.py:Using cached F.Paste layer DEBUG:kicad-diff.py:Using cached B.Silkscreen layer DEBUG:kicad-diff.py:Using cached F.Silkscreen layer DEBUG:kicad-diff.py:Using cached B.Mask layer DEBUG:kicad-diff.py:Using cached F.Mask layer DEBUG:kicad-diff.py:Using cached User.Drawings layer DEBUG:kicad-diff.py:Using cached User.Comments layer DEBUG:kicad-diff.py:Using cached User.Eco1 layer DEBUG:kicad-diff.py:Using cached User.Eco2 layer DEBUG:kicad-diff.py:Using cached Edge.Cuts layer DEBUG:kicad-diff.py:Using cached Margin layer DEBUG:kicad-diff.py:Using cached B.Courtyard layer DEBUG:kicad-diff.py:Using cached F.Courtyard layer DEBUG:kicad-diff.py:Using cached B.Fab layer DEBUG:kicad-diff.py:Using cached F.Fab layer DEBUG:kicad-diff.py:Using cached User.1 layer DEBUG:kicad-diff.py:Using cached User.2 layer DEBUG:kicad-diff.py:Using cached User.3 layer DEBUG:kicad-diff.py:Using cached User.4 layer DEBUG:kicad-diff.py:Using cached User.5 layer DEBUG:kicad-diff.py:Using cached User.6 layer DEBUG:kicad-diff.py:Using cached User.7 layer DEBUG:kicad-diff.py:Using cached User.8 layer DEBUG:kicad-diff.py:Using cached User.9 layer DEBUG:kicad-diff.py:Using cached F.Cu layer DEBUG:kicad-diff.py:Using cached In1.Cu layer DEBUG:kicad-diff.py:Using cached In2.Cu layer DEBUG:kicad-diff.py:Using cached B.Cu layer DEBUG:kicad-diff.py:Using cached B.Adhesive layer DEBUG:kicad-diff.py:Using cached F.Adhesive layer DEBUG:kicad-diff.py:Using cached B.Paste layer DEBUG:kicad-diff.py:Using cached F.Paste layer DEBUG:kicad-diff.py:Using cached B.Silkscreen layer DEBUG:kicad-diff.py:Using cached F.Silkscreen layer DEBUG:kicad-diff.py:Using cached B.Mask layer DEBUG:kicad-diff.py:Using cached F.Mask layer DEBUG:kicad-diff.py:Using cached User.Drawings layer DEBUG:kicad-diff.py:Using cached User.Comments layer DEBUG:kicad-diff.py:Using cached User.Eco1 layer DEBUG:kicad-diff.py:Using cached User.Eco2 layer DEBUG:kicad-diff.py:Using cached Edge.Cuts layer DEBUG:kicad-diff.py:Using cached Margin layer DEBUG:kicad-diff.py:Using cached B.Courtyard layer DEBUG:kicad-diff.py:Using cached F.Courtyard layer DEBUG:kicad-diff.py:Using cached B.Fab layer DEBUG:kicad-diff.py:Using cached F.Fab layer DEBUG:kicad-diff.py:Using cached User.1 layer DEBUG:kicad-diff.py:Using cached User.2 layer DEBUG:kicad-diff.py:Using cached User.3 layer DEBUG:kicad-diff.py:Using cached User.4 layer DEBUG:kicad-diff.py:Using cached User.5 layer DEBUG:kicad-diff.py:Using cached User.6 layer DEBUG:kicad-diff.py:Using cached User.7 layer DEBUG:kicad-diff.py:Using cached User.8 layer DEBUG:kicad-diff.py:Using cached User.9 layer INFO:kicad-diff.py:/tmp/tmp50ufy24s/breakout_hdmi/breakout_hdmi.kicad_pcb SHA1 is edbb34bfe69a279a577b4f9071eb005e6b8f84b6 (kibot - kiplot.py:149) DEBUG:Executing: /usr/bin/git describe --exact-match --tags HEAD (kibot - kiplot.py:157) DEBUG:- CWD: /tmp/tmp50ufy24s (kibot - kiplot.py:159) DEBUG:Not at a tag point (kibot - out_diff.py:314) DEBUG:Executing: /usr/bin/git rev-parse --abbrev-ref HEAD (kibot - kiplot.py:157) DEBUG:- CWD: /tmp/tmp50ufy24s (kibot - kiplot.py:159) DEBUG:- Output from command: HEAD (kibot - kiplot.py:149) DEBUG:Executing: /usr/bin/git describe --tags --dirty (kibot - kiplot.py:157) DEBUG:- CWD: /tmp/tmp50ufy24s (kibot - kiplot.py:159) DEBUG:Can't find a tag name (kibot - out_diff.py:324) DEBUG:Executing: /usr/bin/git rev-parse --short HEAD (kibot - kiplot.py:157) DEBUG:- CWD: /tmp/tmp50ufy24s (kibot - kiplot.py:159) DEBUG:- Output from command: 0fb8bf2 (kibot - kiplot.py:149) DEBUG:Storing modified PCB to `/tmp/tmp-kibot-diff-iun9k0io/breakout_hdmi.kicad_pcb` (kibot - out_base.py:894) DEBUG:Copying project `/workspace/breakout_hdmi/breakout_hdmi.kicad_pro` to `/tmp/tmp-kibot-diff-iun9k0io/breakout_hdmi.kicad_pro` (kibot.gs - gs.py:460) DEBUG:Copying /workspace/git.kicad_wks -> /tmp/tmp-kibot-diff-iun9k0io/schematic.kicad_wks (kibot - config.py:580) DEBUG:Hashing /tmp/tmp-kibot-diff-iun9k0io/breakout_hdmi.kicad_pcb (kibot - out_diff.py:134) DEBUG:Executing: /usr/bin/kicad-diff.py -vvv --no_reader --only_cache --old_file_hash 96a4d6308b5290b6e2df51186d5219c8b9352022 --cache_dir /tmp/pdfdiff --layers /tmp/tmp6dhi3ipl.lst --all_pages /tmp/tmp-kibot-diff-iun9k0io/breakout_hdmi.kicad_pcb /tmp/tmp-kibot-diff-iun9k0io/breakout_hdmi.kicad_pcb (kibot - kiplot.py:157) DEBUG:- Output from command: DEBUG:kicad-diff.py:/tmp/tmp-kibot-diff-iun9k0io/breakout_hdmi.kicad_pcb SHA1 is 96a4d6308b5290b6e2df51186d5219c8b9352022 DEBUG:kicad-diff.py:/tmp/tmp-kibot-diff-iun9k0io/breakout_hdmi.kicad_pcb SHA1 is None DEBUG:kicad-diff.py:Cache dir: /tmp/pdfdiff DEBUG:kicad-diff.py:Temporal output dir /tmp/tmppz_0jni9 DEBUG:kicad-diff.py:layers to be included: [0, 1, 2, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58] DEBUG:kicad-diff.py:Cache for /tmp/tmp-kibot-diff-iun9k0io/breakout_hdmi.kicad_pcb will be /tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022 INFO:kicad-diff.py:cache dir for `/tmp/tmp-kibot-diff-iun9k0io/breakout_hdmi.kicad_pcb` already exists DEBUG:kicad-diff.py:Loading layers from cache /tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/layers.csv DEBUG:kicad-diff.py:['Layer ID', 'Layer name', 'User name'] DEBUG:kicad-diff.py:F.Cu->0 DEBUG:kicad-diff.py:In1.Cu->1 DEBUG:kicad-diff.py:In2.Cu->2 DEBUG:kicad-diff.py:B.Cu->31 DEBUG:kicad-diff.py:B.Adhes->32 DEBUG:kicad-diff.py:F.Adhes->33 DEBUG:kicad-diff.py:B.Paste->34 DEBUG:kicad-diff.py:F.Paste->35 DEBUG:kicad-diff.py:B.SilkS->36 DEBUG:kicad-diff.py:F.SilkS->37 DEBUG:kicad-diff.py:B.Mask->38 DEBUG:kicad-diff.py:F.Mask->39 DEBUG:kicad-diff.py:Dwgs.User->40 DEBUG:kicad-diff.py:Cmts.User->41 DEBUG:kicad-diff.py:Eco1.User->42 DEBUG:kicad-diff.py:Eco2.User->43 DEBUG:kicad-diff.py:Edge.Cuts->44 DEBUG:kicad-diff.py:Margin->45 DEBUG:kicad-diff.py:B.CrtYd->46 DEBUG:kicad-diff.py:F.CrtYd->47 DEBUG:kicad-diff.py:B.Fab->48 DEBUG:kicad-diff.py:F.Fab->49 DEBUG:kicad-diff.py:User.1->50 DEBUG:kicad-diff.py:User.2->51 DEBUG:kicad-diff.py:User.3->52 DEBUG:kicad-diff.py:User.4->53 DEBUG:kicad-diff.py:User.5->54 DEBUG:kicad-diff.py:User.6->55 DEBUG:kicad-diff.py:User.7->56 DEBUG:kicad-diff.py:User.8->57 DEBUG:kicad-diff.py:User.9->58 DEBUG:kicad-diff.py:Layers list: {0: 'F.Cu', 1: 'In1.Cu', 2: 'In2.Cu', 31: 'B.Cu', 32: 'B.Adhes', 33: 'F.Adhes', 34: 'B.Paste', 35: 'F.Paste', 36: 'B.SilkS', 37: 'F.SilkS', 38: 'B.Mask', 39: 'F.Mask', 40: 'Dwgs.User', 41: 'Cmts.User', 42: 'Eco1.User', 43: 'Eco2.User', 44: 'Edge.Cuts', 45: 'Margin', 46: 'B.CrtYd', 47: 'F.CrtYd', 48: 'B.Fab', 49: 'F.Fab', 50: 'User.1', 51: 'User.2', 52: 'User.3', 53: 'User.4', 54: 'User.5', 55: 'User.6', 56: 'User.7', 57: 'User.8', 58: 'User.9'} DEBUG:kicad-diff.py:Wanted layers: {0: 'F.Cu', 1: 'In1.Cu', 2: 'In2.Cu', 31: 'B.Cu', 32: 'B.Adhesive', 33: 'F.Adhesive', 34: 'B.Paste', 35: 'F.Paste', 36: 'B.Silkscreen', 37: 'F.Silkscreen', 38: 'B.Mask', 39: 'F.Mask', 40: 'User.Drawings', 41: 'User.Comments', 42: 'User.Eco1', 43: 'User.Eco2', 44: 'Edge.Cuts', 45: 'Margin', 46: 'B.Courtyard', 47: 'F.Courtyard', 48: 'B.Fab', 49: 'F.Fab', 50: 'User.1', 51: 'User.2', 52: 'User.3', 53: 'User.4', 54: 'User.5', 55: 'User.6', 56: 'User.7', 57: 'User.8', 58: 'User.9'} DEBUG:kicad-diff.py:Using cached F.Cu layer DEBUG:kicad-diff.py:Using cached In1.Cu layer DEBUG:kicad-diff.py:Using cached In2.Cu layer DEBUG:kicad-diff.py:Using cached B.Cu layer DEBUG:kicad-diff.py:Using cached B.Adhesive layer DEBUG:kicad-diff.py:Using cached F.Adhesive layer DEBUG:kicad-diff.py:Using cached B.Paste layer DEBUG:kicad-diff.py:Using cached F.Paste layer DEBUG:kicad-diff.py:Using cached B.Silkscreen layer DEBUG:kicad-diff.py:Using cached F.Silkscreen layer DEBUG:kicad-diff.py:Using cached B.Mask layer DEBUG:kicad-diff.py:Using cached F.Mask layer DEBUG:kicad-diff.py:Using cached User.Drawings layer DEBUG:kicad-diff.py:Using cached User.Comments layer DEBUG:kicad-diff.py:Using cached User.Eco1 layer DEBUG:kicad-diff.py:Using cached User.Eco2 layer DEBUG:kicad-diff.py:Using cached Edge.Cuts layer DEBUG:kicad-diff.py:Using cached Margin layer DEBUG:kicad-diff.py:Using cached B.Courtyard layer DEBUG:kicad-diff.py:Using cached F.Courtyard layer DEBUG:kicad-diff.py:Using cached B.Fab layer DEBUG:kicad-diff.py:Using cached F.Fab layer DEBUG:kicad-diff.py:Using cached User.1 layer DEBUG:kicad-diff.py:Using cached User.2 layer DEBUG:kicad-diff.py:Using cached User.3 layer DEBUG:kicad-diff.py:Using cached User.4 layer DEBUG:kicad-diff.py:Using cached User.5 layer DEBUG:kicad-diff.py:Using cached User.6 layer DEBUG:kicad-diff.py:Using cached User.7 layer DEBUG:kicad-diff.py:Using cached User.8 layer DEBUG:kicad-diff.py:Using cached User.9 layer DEBUG:kicad-diff.py:Using cached F.Cu layer DEBUG:kicad-diff.py:Using cached In1.Cu layer DEBUG:kicad-diff.py:Using cached In2.Cu layer DEBUG:kicad-diff.py:Using cached B.Cu layer DEBUG:kicad-diff.py:Using cached B.Adhesive layer DEBUG:kicad-diff.py:Using cached F.Adhesive layer DEBUG:kicad-diff.py:Using cached B.Paste layer DEBUG:kicad-diff.py:Using cached F.Paste layer DEBUG:kicad-diff.py:Using cached B.Silkscreen layer DEBUG:kicad-diff.py:Using cached F.Silkscreen layer DEBUG:kicad-diff.py:Using cached B.Mask layer DEBUG:kicad-diff.py:Using cached F.Mask layer DEBUG:kicad-diff.py:Using cached User.Drawings layer DEBUG:kicad-diff.py:Using cached User.Comments layer DEBUG:kicad-diff.py:Using cached User.Eco1 layer DEBUG:kicad-diff.py:Using cached User.Eco2 layer DEBUG:kicad-diff.py:Using cached Edge.Cuts layer DEBUG:kicad-diff.py:Using cached Margin layer DEBUG:kicad-diff.py:Using cached B.Courtyard layer DEBUG:kicad-diff.py:Using cached F.Courtyard layer DEBUG:kicad-diff.py:Using cached B.Fab layer DEBUG:kicad-diff.py:Using cached F.Fab layer DEBUG:kicad-diff.py:Using cached User.1 layer DEBUG:kicad-diff.py:Using cached User.2 layer DEBUG:kicad-diff.py:Using cached User.3 layer DEBUG:kicad-diff.py:Using cached User.4 layer DEBUG:kicad-diff.py:Using cached User.5 layer DEBUG:kicad-diff.py:Using cached User.6 layer DEBUG:kicad-diff.py:Using cached User.7 layer DEBUG:kicad-diff.py:Using cached User.8 layer DEBUG:kicad-diff.py:Using cached User.9 layer INFO:kicad-diff.py:/tmp/tmp-kibot-diff-iun9k0io/breakout_hdmi.kicad_pcb SHA1 is 96a4d6308b5290b6e2df51186d5219c8b9352022 (kibot - kiplot.py:149) DEBUG:Executing: /usr/bin/kicad-diff.py -vvv --no_reader --new_file_hash 96a4d6308b5290b6e2df51186d5219c8b9352022 --old_file_hash edbb34bfe69a279a577b4f9071eb005e6b8f84b6 --cache_dir /tmp/pdfdiff --output_dir /workspace/breakout_hdmi/output/diff --output_name breakout_hdmi-diff_pcb.pdf --diff_mode red_green --fuzz 5 --no_exist_check --layers /tmp/tmp6dhi3ipl.lst --only_different --all_pages /tmp/tmp50ufy24s/breakout_hdmi/breakout_hdmi.kicad_pcb /tmp/tmp-kibot-diff-iun9k0io/breakout_hdmi.kicad_pcb (kibot - kiplot.py:157) DEBUG:- Output from command: DEBUG:kicad-diff.py:/tmp/tmp50ufy24s/breakout_hdmi/breakout_hdmi.kicad_pcb SHA1 is edbb34bfe69a279a577b4f9071eb005e6b8f84b6 DEBUG:kicad-diff.py:/tmp/tmp-kibot-diff-iun9k0io/breakout_hdmi.kicad_pcb SHA1 is 96a4d6308b5290b6e2df51186d5219c8b9352022 DEBUG:kicad-diff.py:Cache dir: /tmp/pdfdiff DEBUG:kicad-diff.py:Output dir: /workspace/breakout_hdmi/output/diff DEBUG:kicad-diff.py:layers to be included: [0, 1, 2, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58] DEBUG:kicad-diff.py:Cache for /tmp/tmp50ufy24s/breakout_hdmi/breakout_hdmi.kicad_pcb will be /tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6 INFO:kicad-diff.py:cache dir for `/tmp/tmp50ufy24s/breakout_hdmi/breakout_hdmi.kicad_pcb` already exists DEBUG:kicad-diff.py:Loading layers from cache /tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/layers.csv DEBUG:kicad-diff.py:['Layer ID', 'Layer name', 'User name'] DEBUG:kicad-diff.py:F.Cu->0 DEBUG:kicad-diff.py:In1.Cu->1 DEBUG:kicad-diff.py:In2.Cu->2 DEBUG:kicad-diff.py:B.Cu->31 DEBUG:kicad-diff.py:B.Adhes->32 DEBUG:kicad-diff.py:F.Adhes->33 DEBUG:kicad-diff.py:B.Paste->34 DEBUG:kicad-diff.py:F.Paste->35 DEBUG:kicad-diff.py:B.SilkS->36 DEBUG:kicad-diff.py:F.SilkS->37 DEBUG:kicad-diff.py:B.Mask->38 DEBUG:kicad-diff.py:F.Mask->39 DEBUG:kicad-diff.py:Dwgs.User->40 DEBUG:kicad-diff.py:Cmts.User->41 DEBUG:kicad-diff.py:Eco1.User->42 DEBUG:kicad-diff.py:Eco2.User->43 DEBUG:kicad-diff.py:Edge.Cuts->44 DEBUG:kicad-diff.py:Margin->45 DEBUG:kicad-diff.py:B.CrtYd->46 DEBUG:kicad-diff.py:F.CrtYd->47 DEBUG:kicad-diff.py:B.Fab->48 DEBUG:kicad-diff.py:F.Fab->49 DEBUG:kicad-diff.py:User.1->50 DEBUG:kicad-diff.py:User.2->51 DEBUG:kicad-diff.py:User.3->52 DEBUG:kicad-diff.py:User.4->53 DEBUG:kicad-diff.py:User.5->54 DEBUG:kicad-diff.py:User.6->55 DEBUG:kicad-diff.py:User.7->56 DEBUG:kicad-diff.py:User.8->57 DEBUG:kicad-diff.py:User.9->58 DEBUG:kicad-diff.py:Layers list: {0: 'F.Cu', 1: 'In1.Cu', 2: 'In2.Cu', 31: 'B.Cu', 32: 'B.Adhes', 33: 'F.Adhes', 34: 'B.Paste', 35: 'F.Paste', 36: 'B.SilkS', 37: 'F.SilkS', 38: 'B.Mask', 39: 'F.Mask', 40: 'Dwgs.User', 41: 'Cmts.User', 42: 'Eco1.User', 43: 'Eco2.User', 44: 'Edge.Cuts', 45: 'Margin', 46: 'B.CrtYd', 47: 'F.CrtYd', 48: 'B.Fab', 49: 'F.Fab', 50: 'User.1', 51: 'User.2', 52: 'User.3', 53: 'User.4', 54: 'User.5', 55: 'User.6', 56: 'User.7', 57: 'User.8', 58: 'User.9'} DEBUG:kicad-diff.py:Wanted layers: {0: 'F.Cu', 1: 'In1.Cu', 2: 'In2.Cu', 31: 'B.Cu', 32: 'B.Adhesive', 33: 'F.Adhesive', 34: 'B.Paste', 35: 'F.Paste', 36: 'B.Silkscreen', 37: 'F.Silkscreen', 38: 'B.Mask', 39: 'F.Mask', 40: 'User.Drawings', 41: 'User.Comments', 42: 'User.Eco1', 43: 'User.Eco2', 44: 'Edge.Cuts', 45: 'Margin', 46: 'B.Courtyard', 47: 'F.Courtyard', 48: 'B.Fab', 49: 'F.Fab', 50: 'User.1', 51: 'User.2', 52: 'User.3', 53: 'User.4', 54: 'User.5', 55: 'User.6', 56: 'User.7', 57: 'User.8', 58: 'User.9'} DEBUG:kicad-diff.py:Using cached F.Cu layer DEBUG:kicad-diff.py:Using cached In1.Cu layer DEBUG:kicad-diff.py:Using cached In2.Cu layer DEBUG:kicad-diff.py:Using cached B.Cu layer DEBUG:kicad-diff.py:Using cached B.Adhesive layer DEBUG:kicad-diff.py:Using cached F.Adhesive layer DEBUG:kicad-diff.py:Using cached B.Paste layer DEBUG:kicad-diff.py:Using cached F.Paste layer DEBUG:kicad-diff.py:Using cached B.Silkscreen layer DEBUG:kicad-diff.py:Using cached F.Silkscreen layer DEBUG:kicad-diff.py:Using cached B.Mask layer DEBUG:kicad-diff.py:Using cached F.Mask layer DEBUG:kicad-diff.py:Using cached User.Drawings layer DEBUG:kicad-diff.py:Using cached User.Comments layer DEBUG:kicad-diff.py:Using cached User.Eco1 layer DEBUG:kicad-diff.py:Using cached User.Eco2 layer DEBUG:kicad-diff.py:Using cached Edge.Cuts layer DEBUG:kicad-diff.py:Using cached Margin layer DEBUG:kicad-diff.py:Using cached B.Courtyard layer DEBUG:kicad-diff.py:Using cached F.Courtyard layer DEBUG:kicad-diff.py:Using cached B.Fab layer DEBUG:kicad-diff.py:Using cached F.Fab layer DEBUG:kicad-diff.py:Using cached User.1 layer DEBUG:kicad-diff.py:Using cached User.2 layer DEBUG:kicad-diff.py:Using cached User.3 layer DEBUG:kicad-diff.py:Using cached User.4 layer DEBUG:kicad-diff.py:Using cached User.5 layer DEBUG:kicad-diff.py:Using cached User.6 layer DEBUG:kicad-diff.py:Using cached User.7 layer DEBUG:kicad-diff.py:Using cached User.8 layer DEBUG:kicad-diff.py:Using cached User.9 layer DEBUG:kicad-diff.py:Using cached F.Cu layer DEBUG:kicad-diff.py:Using cached In1.Cu layer DEBUG:kicad-diff.py:Using cached In2.Cu layer DEBUG:kicad-diff.py:Using cached B.Cu layer DEBUG:kicad-diff.py:Using cached B.Adhesive layer DEBUG:kicad-diff.py:Using cached F.Adhesive layer DEBUG:kicad-diff.py:Using cached B.Paste layer DEBUG:kicad-diff.py:Using cached F.Paste layer DEBUG:kicad-diff.py:Using cached B.Silkscreen layer DEBUG:kicad-diff.py:Using cached F.Silkscreen layer DEBUG:kicad-diff.py:Using cached B.Mask layer DEBUG:kicad-diff.py:Using cached F.Mask layer DEBUG:kicad-diff.py:Using cached User.Drawings layer DEBUG:kicad-diff.py:Using cached User.Comments layer DEBUG:kicad-diff.py:Using cached User.Eco1 layer DEBUG:kicad-diff.py:Using cached User.Eco2 layer DEBUG:kicad-diff.py:Using cached Edge.Cuts layer DEBUG:kicad-diff.py:Using cached Margin layer DEBUG:kicad-diff.py:Using cached B.Courtyard layer DEBUG:kicad-diff.py:Using cached F.Courtyard layer DEBUG:kicad-diff.py:Using cached B.Fab layer DEBUG:kicad-diff.py:Using cached F.Fab layer DEBUG:kicad-diff.py:Using cached User.1 layer DEBUG:kicad-diff.py:Using cached User.2 layer DEBUG:kicad-diff.py:Using cached User.3 layer DEBUG:kicad-diff.py:Using cached User.4 layer DEBUG:kicad-diff.py:Using cached User.5 layer DEBUG:kicad-diff.py:Using cached User.6 layer DEBUG:kicad-diff.py:Using cached User.7 layer DEBUG:kicad-diff.py:Using cached User.8 layer DEBUG:kicad-diff.py:Using cached User.9 layer DEBUG:kicad-diff.py:Cache for /tmp/tmp-kibot-diff-iun9k0io/breakout_hdmi.kicad_pcb will be /tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022 INFO:kicad-diff.py:cache dir for `/tmp/tmp-kibot-diff-iun9k0io/breakout_hdmi.kicad_pcb` already exists DEBUG:kicad-diff.py:Loading layers from cache /tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/layers.csv DEBUG:kicad-diff.py:['Layer ID', 'Layer name', 'User name'] DEBUG:kicad-diff.py:F.Cu->0 DEBUG:kicad-diff.py:In1.Cu->1 DEBUG:kicad-diff.py:In2.Cu->2 DEBUG:kicad-diff.py:B.Cu->31 DEBUG:kicad-diff.py:B.Adhes->32 DEBUG:kicad-diff.py:F.Adhes->33 DEBUG:kicad-diff.py:B.Paste->34 DEBUG:kicad-diff.py:F.Paste->35 DEBUG:kicad-diff.py:B.SilkS->36 DEBUG:kicad-diff.py:F.SilkS->37 DEBUG:kicad-diff.py:B.Mask->38 DEBUG:kicad-diff.py:F.Mask->39 DEBUG:kicad-diff.py:Dwgs.User->40 DEBUG:kicad-diff.py:Cmts.User->41 DEBUG:kicad-diff.py:Eco1.User->42 DEBUG:kicad-diff.py:Eco2.User->43 DEBUG:kicad-diff.py:Edge.Cuts->44 DEBUG:kicad-diff.py:Margin->45 DEBUG:kicad-diff.py:B.CrtYd->46 DEBUG:kicad-diff.py:F.CrtYd->47 DEBUG:kicad-diff.py:B.Fab->48 DEBUG:kicad-diff.py:F.Fab->49 DEBUG:kicad-diff.py:User.1->50 DEBUG:kicad-diff.py:User.2->51 DEBUG:kicad-diff.py:User.3->52 DEBUG:kicad-diff.py:User.4->53 DEBUG:kicad-diff.py:User.5->54 DEBUG:kicad-diff.py:User.6->55 DEBUG:kicad-diff.py:User.7->56 DEBUG:kicad-diff.py:User.8->57 DEBUG:kicad-diff.py:User.9->58 DEBUG:kicad-diff.py:Layers list: {0: 'F.Cu', 1: 'In1.Cu', 2: 'In2.Cu', 31: 'B.Cu', 32: 'B.Adhes', 33: 'F.Adhes', 34: 'B.Paste', 35: 'F.Paste', 36: 'B.SilkS', 37: 'F.SilkS', 38: 'B.Mask', 39: 'F.Mask', 40: 'Dwgs.User', 41: 'Cmts.User', 42: 'Eco1.User', 43: 'Eco2.User', 44: 'Edge.Cuts', 45: 'Margin', 46: 'B.CrtYd', 47: 'F.CrtYd', 48: 'B.Fab', 49: 'F.Fab', 50: 'User.1', 51: 'User.2', 52: 'User.3', 53: 'User.4', 54: 'User.5', 55: 'User.6', 56: 'User.7', 57: 'User.8', 58: 'User.9'} DEBUG:kicad-diff.py:Wanted layers: {0: 'F.Cu', 1: 'In1.Cu', 2: 'In2.Cu', 31: 'B.Cu', 32: 'B.Adhesive', 33: 'F.Adhesive', 34: 'B.Paste', 35: 'F.Paste', 36: 'B.Silkscreen', 37: 'F.Silkscreen', 38: 'B.Mask', 39: 'F.Mask', 40: 'User.Drawings', 41: 'User.Comments', 42: 'User.Eco1', 43: 'User.Eco2', 44: 'Edge.Cuts', 45: 'Margin', 46: 'B.Courtyard', 47: 'F.Courtyard', 48: 'B.Fab', 49: 'F.Fab', 50: 'User.1', 51: 'User.2', 52: 'User.3', 53: 'User.4', 54: 'User.5', 55: 'User.6', 56: 'User.7', 57: 'User.8', 58: 'User.9'} DEBUG:kicad-diff.py:Using cached F.Cu layer DEBUG:kicad-diff.py:Using cached In1.Cu layer DEBUG:kicad-diff.py:Using cached In2.Cu layer DEBUG:kicad-diff.py:Using cached B.Cu layer DEBUG:kicad-diff.py:Using cached B.Adhesive layer DEBUG:kicad-diff.py:Using cached F.Adhesive layer DEBUG:kicad-diff.py:Using cached B.Paste layer DEBUG:kicad-diff.py:Using cached F.Paste layer DEBUG:kicad-diff.py:Using cached B.Silkscreen layer DEBUG:kicad-diff.py:Using cached F.Silkscreen layer DEBUG:kicad-diff.py:Using cached B.Mask layer DEBUG:kicad-diff.py:Using cached F.Mask layer DEBUG:kicad-diff.py:Using cached User.Drawings layer DEBUG:kicad-diff.py:Using cached User.Comments layer DEBUG:kicad-diff.py:Using cached User.Eco1 layer DEBUG:kicad-diff.py:Using cached User.Eco2 layer DEBUG:kicad-diff.py:Using cached Edge.Cuts layer DEBUG:kicad-diff.py:Using cached Margin layer DEBUG:kicad-diff.py:Using cached B.Courtyard layer DEBUG:kicad-diff.py:Using cached F.Courtyard layer DEBUG:kicad-diff.py:Using cached B.Fab layer DEBUG:kicad-diff.py:Using cached F.Fab layer DEBUG:kicad-diff.py:Using cached User.1 layer DEBUG:kicad-diff.py:Using cached User.2 layer DEBUG:kicad-diff.py:Using cached User.3 layer DEBUG:kicad-diff.py:Using cached User.4 layer DEBUG:kicad-diff.py:Using cached User.5 layer DEBUG:kicad-diff.py:Using cached User.6 layer DEBUG:kicad-diff.py:Using cached User.7 layer DEBUG:kicad-diff.py:Using cached User.8 layer DEBUG:kicad-diff.py:Using cached User.9 layer DEBUG:kicad-diff.py:Using cached F.Cu layer DEBUG:kicad-diff.py:Using cached In1.Cu layer DEBUG:kicad-diff.py:Using cached In2.Cu layer DEBUG:kicad-diff.py:Using cached B.Cu layer DEBUG:kicad-diff.py:Using cached B.Adhesive layer DEBUG:kicad-diff.py:Using cached F.Adhesive layer DEBUG:kicad-diff.py:Using cached B.Paste layer DEBUG:kicad-diff.py:Using cached F.Paste layer DEBUG:kicad-diff.py:Using cached B.Silkscreen layer DEBUG:kicad-diff.py:Using cached F.Silkscreen layer DEBUG:kicad-diff.py:Using cached B.Mask layer DEBUG:kicad-diff.py:Using cached F.Mask layer DEBUG:kicad-diff.py:Using cached User.Drawings layer DEBUG:kicad-diff.py:Using cached User.Comments layer DEBUG:kicad-diff.py:Using cached User.Eco1 layer DEBUG:kicad-diff.py:Using cached User.Eco2 layer DEBUG:kicad-diff.py:Using cached Edge.Cuts layer DEBUG:kicad-diff.py:Using cached Margin layer DEBUG:kicad-diff.py:Using cached B.Courtyard layer DEBUG:kicad-diff.py:Using cached F.Courtyard layer DEBUG:kicad-diff.py:Using cached B.Fab layer DEBUG:kicad-diff.py:Using cached F.Fab layer DEBUG:kicad-diff.py:Using cached User.1 layer DEBUG:kicad-diff.py:Using cached User.2 layer DEBUG:kicad-diff.py:Using cached User.3 layer DEBUG:kicad-diff.py:Using cached User.4 layer DEBUG:kicad-diff.py:Using cached User.5 layer DEBUG:kicad-diff.py:Using cached User.6 layer DEBUG:kicad-diff.py:Using cached User.7 layer DEBUG:kicad-diff.py:Using cached User.8 layer DEBUG:kicad-diff.py:Using cached User.9 layer DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/0.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/0.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for F.Cu DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/0.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/0.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: F.Cu'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-00.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-00.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/1.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/1.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for In1.Cu DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/1.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/1.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: In1.Cu'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-10.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-10.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/2.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/2.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for In2.Cu DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/2.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/2.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: In2.Cu'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-20.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-20.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/31.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/31.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for B.Cu DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/31.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/31.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: B.Cu'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-310.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-310.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/32.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/32.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for B.Adhes (B.Adhesive) DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/32.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/32.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: B.Adhes (B.Adhesive)'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-320.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-320.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/33.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/33.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for F.Adhes (F.Adhesive) DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/33.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/33.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: F.Adhes (F.Adhesive)'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-330.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-330.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/34.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/34.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for B.Paste DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/34.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/34.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: B.Paste'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-340.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-340.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/35.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/35.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for F.Paste DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/35.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/35.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: F.Paste'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-350.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-350.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/36.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/36.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for B.SilkS (B.Silkscreen) DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/36.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/36.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: B.SilkS (B.Silkscreen)'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-360.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-360.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/37.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/37.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for F.SilkS (F.Silkscreen) DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/37.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/37.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: F.SilkS (F.Silkscreen)'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-370.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-370.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/38.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/38.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for B.Mask DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/38.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/38.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: B.Mask'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-380.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-380.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/39.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/39.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for F.Mask DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/39.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/39.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: F.Mask'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-390.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-390.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/40.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/40.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for Dwgs.User (User.Drawings) DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/40.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/40.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: Dwgs.User (User.Drawings)'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-400.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-400.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/41.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/41.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for Cmts.User (User.Comments) DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/41.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/41.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: Cmts.User (User.Comments)'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-410.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-410.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/42.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/42.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for Eco1.User (User.Eco1) DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/42.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/42.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: Eco1.User (User.Eco1)'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-420.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-420.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/43.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/43.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for Eco2.User (User.Eco2) DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/43.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/43.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: Eco2.User (User.Eco2)'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-430.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-430.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/44.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/44.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for Edge.Cuts DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/44.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/44.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: Edge.Cuts'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-440.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-440.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/45.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/45.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for Margin DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/45.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/45.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: Margin'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-450.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-450.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/46.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/46.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for B.CrtYd (B.Courtyard) DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/46.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/46.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: B.CrtYd (B.Courtyard)'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-460.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-460.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/47.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/47.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for F.CrtYd (F.Courtyard) DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/47.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/47.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: F.CrtYd (F.Courtyard)'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-470.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-470.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/48.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/48.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for B.Fab DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/48.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/48.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: B.Fab'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-480.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-480.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/49.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/49.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for F.Fab DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/49.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/49.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: F.Fab'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-490.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-490.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/50.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/50.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for User.1 DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/50.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/50.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: User.1'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-500.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-500.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/51.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/51.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for User.2 DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/51.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/51.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: User.2'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-510.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-510.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/52.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/52.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for User.3 DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/52.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/52.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: User.3'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-520.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-520.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/53.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/53.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for User.4 DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/53.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/53.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: User.4'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-530.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-530.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/54.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/54.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for User.5 DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/54.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/54.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: User.5'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-540.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-540.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/55.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/55.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for User.6 DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/55.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/55.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: User.6'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-550.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-550.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/56.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/56.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for User.7 DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/56.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/56.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: User.7'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-560.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-560.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/57.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/57.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for User.8 DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/57.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/57.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: User.8'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-570.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-570.png DEBUG:kicad-diff.py:/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/58.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/58.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for User.9 DEBUG:kicad-diff.py:Executing: bash -c '( convert "/tmp/pdfdiff/96a4d6308b5290b6e2df51186d5219c8b9352022/58.png" miff:- ; convert "/tmp/pdfdiff/edbb34bfe69a279a577b4f9071eb005e6b8f84b6/58.png" miff:- ) | convert - \( -clone 0-1 -compose darken -composite \) -font helvetica -pointsize 30 -draw "text 10,30 '"'"'Layer: User.9'"'"'" -channel RGB -combine "/workspace/breakout_hdmi/output/diff/diff-580.png"' DEBUG:kicad-diff.py:Executing: identify -format '%[colorspace]' /workspace/breakout_hdmi/output/diff/diff-580.png INFO:kicad-diff.py:Joining all diffs into one PDF DEBUG:kicad-diff.py:['convert', '/workspace/breakout_hdmi/output/diff/diff-00.png', '/workspace/breakout_hdmi/output/diff/diff-10.png', '/workspace/breakout_hdmi/output/diff/diff-20.png', '/workspace/breakout_hdmi/output/diff/diff-310.png', '/workspace/breakout_hdmi/output/diff/diff-360.png', '/workspace/breakout_hdmi/output/diff/diff-370.png', '/workspace/breakout_hdmi/output/diff/diff-380.png', '/workspace/breakout_hdmi/output/diff/diff-390.png', '/workspace/breakout_hdmi/output/diff/diff-490.png', '/workspace/breakout_hdmi/output/diff/breakout_hdmi-diff_pcb.pdf'] (kibot - kiplot.py:149) DEBUG:Removing temporal checkout at /tmp/tmp50ufy24s (kibot - out_diff.py:427) DEBUG:Executing: /usr/bin/git worktree remove --force /tmp/tmp50ufy24s (kibot - kiplot.py:157) DEBUG:- CWD: /workspace/breakout_hdmi (kibot - kiplot.py:159) ```

[FEATURE] Export PCB without zones for nicer kiri comparisons

Hi @set-soft,
mentioned this in the kiri-integration issue of kibot here are my thoughts:

The way kiri works is comprehensive and simple, sadly the handling of the produced svgs leaves not much room for expansion.
The current problem for me is that changes made to the pcb are not really easy to spot or to understand, as the zones invert the actual colors of the new/old changes:

image

In my opinion, the presentation of the new changes is a bit confusing as zones can overlap tracks and vice versa.
Wouldn't it be cool if the zones could be hided? Dimming would also be an option but maybe impossible to implement with svgs.

Thanks in advance!

P.S.: As an example, the cadlab.io guys seem to have managed this somehow, although it seems not to be a comparison between svg files, but more a wrapper for whole projects while on a net and change basis the changes seem to be displayed Link

[Enhancement] Maintain offset coordinates/scale in diffs, when the board size changes

Originally posted by @mdeweerd in INTI-CMNB/KiBot#392 (comment)

I think the test case I join here is a different demonstration of the shift issue mentionned int he post above where I observed a shift on the X-Axis when diffing.
image.

In this test case, I changed the board in the latest version while maintaining a small board in the previous version.
The difference is shown like this:
image

I only changed the board size, not the tracks.

I guess that the original issue is related: the cropping/scaling is different between the two versions (for a reason that I did not identify, but the board is the same) and this results in a shift.

You exectute the testcase like this:

git clone --branch DIFF_PCB_CHANGE [email protected]:mdeweerd/kbot-testcases.git
cd kbot-testcases
docker compose run --rm diff_k7
# or (also launches docker):
make diff_k7

The difference output can be found in "tc7_01_20211224_header/Diffs" .

[BUG] Problems when page size is different

What do you want to achieve?
i have some project that contain schematics which are A3 or A2 sizes, with multiple variants. I want to diff them between variants and various commits.
this works whit projects that contain A4 sized schematics, but not with A2 and A3 sized ones.

Do you have some PCB/Schematic to use as example?
yes, see attached

Do you have some configuration file (.kibot.yaml) that you are using?
You can attach it or paste the content in the following section:

kibot:
  version: 1
outputs:
  # Documentation -------------------------------------------------------------
  - name: 'schematic'
    comment: "Export schematic as pdf"
    type: pdf_sch_print
    dir: documentation
  # ---------------------------------------------------------------------------
  - name: "sch_variant"
    type: sch_variant
    comment: "Generate sch variant for other outputs to use"
    dir: /tmp

  - name: "schdiff local<>master"
    type: diff
    dir: documentation/diffs
    options: 
      output: '%f-%v-schdiff-pr.%x'
      new: "sch_variant"
      new_type: output
      old: master
      old_type: git
      pcb: false
      force_checkout: true
      only_first_sch_page: false
    priority: 10
  #TODO
  - name: "schdiff local<>last"
    type: diff
    comment: "Generate diff"
    dir: documentation/diffs
    options: 
      output: '%f-%v-schdiff-commit.%x'
      new: "sch_variant"
      new_type: output
      old: "HEAD~"
      old_type: git
      pcb: false
      force_checkout: true
      only_first_sch_page: false
    priority: 10

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

  • Using a docker image?
    • kicad6_auto:latest with git-lfs added.
  • Using a desktop system? Which OS, distro and version?
    • ubuntu 20-04 lts. (probably not relevant since is use a docker image"
      Additional context
      Add any other context about your setup/project.
      example_project.zip

debug output (ran kibot with -vvv)`

DEBUG:Executing: /usr/bin/kicad-diff.py -vvv --no_reader --new_file_hash sch511fa71940ad1dc0c48b519b4f23dad68ea83dbb --old_file_hash sch146e35e6fa09bf0d7d78442f1a035c690786e586 --cache_dir /tmp/tmpjz2s6ro6 --output_dir /tmp/kibot_build/main/FULL/build/documentation/diffs --output_name main-FULL-schdiff-local.pdf --diff_mode red_green --fuzz 5 --no_exist_check --all_pages /tmp/tmpdf82snpw.kicad_sch /tmp/main.kicad_sch (kibot - kiplot.py:159)

ERROR:Running ['/usr/bin/kicad-diff.py', '-vvv', '--no_reader', '--new_file_hash', 'sch511fa71940ad1dc0c48b519b4f23dad68ea83dbb', '--old_file_hash', 'sch146e35e6fa09bf0d7d78442f1a035c690786e586', '--cache_dir', '/tmp/tmpjz2s6ro6', '--output_dir', '/tmp/kibot_build/main/FULL/build/documentation/diffs', '--output_name', 'main-FULL-schdiff-local.pdf', '--diff_mode', 'red_green', '--fuzz', '5', '--no_exist_check', '--all_pages', '/tmp/tmpdf82snpw.kicad_sch', '/tmp/main.kicad_sch'] returned 6 (kibot - out_diff.py:460)

DEBUG:- Output from command: DEBUG:kicad-diff.py:/tmp/tmpdf82snpw.kicad_sch SHA1 is sch146e35e6fa09bf0d7d78442f1a035c690786e586 DEBUG:kicad-diff.py:/tmp/main.kicad_sch SHA1 is sch511fa71940ad1dc0c48b519b4f23dad68ea83dbb DEBUG:kicad-diff.py:Cache dir: /tmp/tmpjz2s6ro6 DEBUG:kicad-diff.py:Output dir: /tmp/kibot_build/main/FULL/build/documentation/diffs DEBUG:kicad-diff.py:Cache for /tmp/tmpdf82snpw.kicad_sch will be /tmp/tmpjz2s6ro6/sch146e35e6fa09bf0d7d78442f1a035c690786e586 INFO:kicad-diff.py:cache dir for `/tmp/tmpdf82snpw.kicad_sch` already exists DEBUG:kicad-diff.py:Using cached schematic DEBUG:kicad-diff.py:Cache for /tmp/main.kicad_sch will be /tmp/tmpjz2s6ro6/sch511fa71940ad1dc0c48b519b4f23dad68ea83dbb INFO:kicad-diff.py:cache dir for `/tmp/main.kicad_sch` already exists DEBUG:kicad-diff.py:Using cached schematic DEBUG:kicad-diff.py:/tmp/tmpjz2s6ro6/sch146e35e6fa09bf0d7d78442f1a035c690786e586/Schematic_root.pdf already converted to PNG DEBUG:kicad-diff.py:/tmp/tmpjz2s6ro6/sch511fa71940ad1dc0c48b519b4f23dad68ea83dbb/Schematic_root.pdf already converted to PNG INFO:kicad-diff.py:Creating diff for Schematic_root DEBUG:kicad-diff.py:Executing: ['bash', '-c', '( convert "/tmp/tmpjz2s6ro6/sch511fa71940ad1dc0c48b519b4f23dad68ea83dbb/Schematic_root.png" miff:- ; convert "/tmp/tmpjz2s6ro6/sch146e35e6fa09bf0d7d78442f1a035c690786e586/Schematic_root.png" miff:- ) | convert - \\( -clone 0-1 -compose darken -composite \\) -font helvetica -pointsize 30 -draw "text 10,30 \'/\'" -channel RGB -combine "/tmp/kibot_build/main/FULL/build/documentation/diffs/diff-Schematic_root0.png"'] DEBUG:kicad-diff.py:Running ['bash', '-c', '( convert "/tmp/tmpjz2s6ro6/sch511fa71940ad1dc0c48b519b4f23dad68ea83dbb/Schematic_root.png" miff:- ; convert "/tmp/tmpjz2s6ro6/sch146e35e6fa09bf0d7d78442f1a035c690786e586/Schematic_root.png" miff:- ) | convert - \\( -clone 0-1 -compose darken -composite \\) -font helvetica -pointsize 30 -draw "text 10,30 \'/\'" -channel RGB -combine "/tmp/kibot_build/main/FULL/build/documentation/diffs/diff-Schematic_root0.png"'] returned 1 DEBUG:kicad-diff.py:- StdOut from command: convert-im6.q16: images are not the same size `/tmp/magick-zYpjF9Fi_NNdTMeLo77p_YK7tXBskfjw' @ error/channel.c/CombineImages/128. ERROR:kicad-diff.py:Failed to create diff /tmp/kibot_build/main/FULL/build/documentation/diffs/diff-Schematic_root0.png (kibot - out_diff.py:462)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.