Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
47b494c
[DOCs] Updated tags
set-soft Nov 26, 2025
733d262
[DOCs][Added] Some clues about how to use `pipx`
set-soft Dec 1, 2025
7aef881
[DOCs][Fixed] Navigation issues
set-soft Dec 3, 2025
afcf7e3
Bumped version to 1.8.6
set-soft Dec 3, 2025
e95e4c3
[DOCs][Added] Page linking to some examples and resources
set-soft Dec 3, 2025
d3b48e8
[iBoM][Added] `mark_when_checked` option
set-soft Dec 3, 2025
fdf5100
[CI/CD][Updated] Refresh images workflows
set-soft Dec 3, 2025
ae74c43
[DOCs][Changelog][Fixed] Current version to be "Unreleased"
set-soft Dec 9, 2025
c4d5a35
[DOCs][Changelog][Added] Links to the GitHub diffs for releases
set-soft Dec 9, 2025
9487895
[Fixed] Flake8 issues inside f-strings
set-soft Dec 19, 2025
286de1a
[Added][CLI] --fail-on-warnings
set-soft Dec 19, 2025
b9d2625
[Fixed] --fail-on-warnings declaration
set-soft Dec 19, 2025
19159ef
[Fixed][Blender Export] Problems with `/ ` in values
set-soft Dec 26, 2025
f648894
[BoM][Added] Descriptive error when using `kicad` format and no optio…
set-soft Jan 2, 2026
fc249ac
[Added] Output to create labels for the BoM items
set-soft Jan 2, 2026
162e6cd
[Added] BoM Labels to credits
set-soft Jan 2, 2026
f325cad
[Tests][GUI][Fixed] Missing bom_labels
set-soft Jan 2, 2026
70d85ef
[Tests][Workaround] Disabled bom_labels
set-soft Jan 2, 2026
d978e5e
[Test][Removed] bom_labels result
set-soft Jan 2, 2026
8e1f8d4
[Examples][Added] bom_labels example
set-soft Jan 2, 2026
168126c
[Fixed][BoM Labels] Missing plugin
set-soft Jan 2, 2026
6f05c2f
[BoM Labels][Fixed] Delay reportlab import
set-soft Jan 2, 2026
181c90a
[KiCad 9][Schematic][Added] Populate KiCad's embedded files cache
set-soft Feb 4, 2026
1e8bf2a
doc: DRC stands for Design Rules Check in KiCAD
oliv3r Feb 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .github/workflows/refresh_images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,15 @@ jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Trigger kicad_auto image build
- name: Trigger kicad_auto/test image build
run: |
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto/dispatches --data '{"event_type": "build_k5"}'
# curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto/dispatches --data '{"event_type": "build_k5"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto/dispatches --data '{"event_type": "build_k6"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto/dispatches --data '{"event_type": "build_k7"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto/dispatches --data '{"event_type": "build_k8"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto_test/dispatches --data '{"event_type": "build_k5"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto/dispatches --data '{"event_type": "build_k9"}'
# curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto_test/dispatches --data '{"event_type": "build_k5"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto_test/dispatches --data '{"event_type": "build_k6"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto_test/dispatches --data '{"event_type": "build_k7"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto_test/dispatches --data '{"event_type": "build_k8"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto_test/dispatches --data '{"event_type": "build_k9"}'
6 changes: 4 additions & 2 deletions .github/workflows/refresh_images_pre.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@ jobs:
steps:
- name: Trigger kicad_auto image build
run: |
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto/dispatches --data '{"event_type": "build_k5p"}'
# curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto/dispatches --data '{"event_type": "build_k5p"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto/dispatches --data '{"event_type": "build_k6p"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto/dispatches --data '{"event_type": "build_k7p"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto/dispatches --data '{"event_type": "build_k8p"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto_test/dispatches --data '{"event_type": "build_k5p"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto/dispatches --data '{"event_type": "build_k9p"}'
# curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto_test/dispatches --data '{"event_type": "build_k5p"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto_test/dispatches --data '{"event_type": "build_k6p"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto_test/dispatches --data '{"event_type": "build_k7p"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto_test/dispatches --data '{"event_type": "build_k8p"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_auto_test/dispatches --data '{"event_type": "build_k9p"}'
58 changes: 58 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,21 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).


## [Unreleased]
### Added
- New outputs:
- BoM Labels (bom_labels): [Experimental] To generate a PDF containing
labels for the BoM items. (#886)
- CLI:
- --fail-on-warnings: to return error when we detected warning (See #828)
- KiCad 9 embedded files: populate the cache if needed (See #890)
- BoM: descriptive error when using `kicad` format and no options found.
- iBoM: `mark_when_checked` option (#881)

### Fixed
- Blender export: problems with component values containing `/ ` (#885)


## [1.8.5] - 2025-11-26
### Added
- CLI:
Expand Down Expand Up @@ -1641,3 +1656,46 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Pick & place position
- Debian package
- Gerber job generation


[Unreleased]: https://github.com/INTI-CMNB/KiBot/compare/v1.8.5...dev
[1.8.5]: https://github.com/INTI-CMNB/KiBot/compare/v1.8.4...v1.8.5
[1.8.4]: https://github.com/INTI-CMNB/KiBot/compare/v1.8.3...v1.8.4
[1.8.3]: https://github.com/INTI-CMNB/KiBot/compare/v1.8.2...v1.8.3
[1.8.2]: https://github.com/INTI-CMNB/KiBot/compare/v1.8.1...v1.8.2
[1.8.1]: https://github.com/INTI-CMNB/KiBot/compare/v1.8.0...v1.8.1
[1.8.0]: https://github.com/INTI-CMNB/KiBot/compare/v1.7.0...v1.8.0
[1.7.0]: https://github.com/INTI-CMNB/KiBot/compare/v1.6.5...v1.7.0
[1.6.5]: https://github.com/INTI-CMNB/KiBot/compare/v1.6.4...v1.6.5
[1.6.4]: https://github.com/INTI-CMNB/KiBot/compare/v1.6.3...v1.6.4
[1.6.3]: https://github.com/INTI-CMNB/KiBot/compare/v1.6.2...v1.6.3
[1.6.2]: https://github.com/INTI-CMNB/KiBot/compare/v1.6.1...v1.6.2
[1.6.1]: https://github.com/INTI-CMNB/KiBot/compare/v1.6.0...v1.6.1
[1.6.0]: https://github.com/INTI-CMNB/KiBot/compare/v1.5.1...v1.6.0
[1.5.1]: https://github.com/INTI-CMNB/KiBot/compare/v1.5.0...v1.5.1
[1.5.0]: https://github.com/INTI-CMNB/KiBot/compare/v1.4.0...v1.5.0
[1.4.0]: https://github.com/INTI-CMNB/KiBot/compare/v1.3.0...v1.4.0
[1.3.0]: https://github.com/INTI-CMNB/KiBot/compare/v1.2.0...v1.3.0
[1.2.0]: https://github.com/INTI-CMNB/KiBot/compare/v1.1.0...v1.2.0
[1.1.0]: https://github.com/INTI-CMNB/KiBot/compare/v1.0.0...v1.1.0
[1.0.0]: https://github.com/INTI-CMNB/KiBot/compare/v0.11.0...v1.0.0
[0.11.0]: https://github.com/INTI-CMNB/KiBot/compare/v0.10.1...v0.11.0
[0.10.1]: https://github.com/INTI-CMNB/KiBot/compare/v0.10.0...v0.10.1
[0.10.0]: https://github.com/INTI-CMNB/KiBot/compare/v0.9.0...v0.10.0
[0.9.0]: https://github.com/INTI-CMNB/KiBot/compare/v0.8.1...v0.9.0
[0.8.1]: https://github.com/INTI-CMNB/KiBot/compare/v0.8.0...v0.8.1
[0.8.0]: https://github.com/INTI-CMNB/KiBot/compare/v0.7.0...v0.8.0
[0.7.0]: https://github.com/INTI-CMNB/KiBot/compare/v0.6.2...v0.7.0
[0.6.2]: https://github.com/INTI-CMNB/KiBot/compare/v0.6.1...v0.6.2
[0.6.1]: https://github.com/INTI-CMNB/KiBot/compare/v0.6.0...v0.6.1
[0.6.0]: https://github.com/INTI-CMNB/KiBot/compare/v0.5.0...v0.6.0
[0.5.0]: https://github.com/INTI-CMNB/KiBot/compare/v0.4.0...v0.5.0
[0.4.0]: https://github.com/INTI-CMNB/KiBot/compare/v0.3.0...v0.4.0
[0.3.0]: https://github.com/INTI-CMNB/KiBot/compare/v0.2.5...v0.3.0
[0.2.5]: https://github.com/INTI-CMNB/KiBot/compare/v0.2.4...v0.2.5
[0.2.4]: https://github.com/INTI-CMNB/KiBot/compare/v0.2.3...v0.2.4
[0.2.3]: https://github.com/INTI-CMNB/KiBot/compare/v0.2.2...v0.2.3
[0.2.2]: https://github.com/INTI-CMNB/KiBot/compare/v0.2.1...v0.2.2
[0.2.1]: https://github.com/INTI-CMNB/KiBot/compare/v0.2.0...v0.2.1
[0.2.0]: https://github.com/INTI-CMNB/KiBot/compare/v0.1.1...v0.2.0
[0.1.1]: https://github.com/INTI-CMNB/KiBot/releases/tag/v0.1.1
6 changes: 6 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
kibot (1.8.6-1) UNRELEASED; urgency=medium

* Next release

-- Salvador Eduardo Tropea <salvador@inti.gob.ar> Wed, 03 Dec 2025 08:30:40 -0300

kibot (1.8.5-1) stable; urgency=medium

* Added support for 9.0.6
Expand Down
59 changes: 57 additions & 2 deletions docs/samples/generic_plot.kibot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ preflight:
# [boolean|dict=false] Use a boolean for simple cases or fine-tune its behavior.
draw_stackup: true
# DRC
# Runs the DRC (Distance Rules Check) to ensure we have a valid PCB.
# Runs the DRC (Design Rules Check) to ensure we have a valid PCB.
# You need a valid *fp-lib-table* installed. If not KiBot will try to temporarily install the template.
# This is a replacement for the *run_drc* preflight that needs KiCad 8 or newer.
# GUI exclusions and schematic parity are supported .
Expand Down Expand Up @@ -141,7 +141,7 @@ preflight:
before: 'Git hash: <'
after: '>'
# Run DRC (**Deprecated for KiCad 8**)
# Runs the DRC (Distance Rules Check) to ensure we have a valid PCB.
# Runs the DRC (Design Rules Check) to ensure we have a valid PCB.
# For KiCad 8 use *drc*
# The report file name is controlled by the global output pattern (%i=drc %x=txt).
# Note that the KiCad 6+ *Test for parity between PCB and schematic* option is not supported.
Expand Down Expand Up @@ -865,6 +865,56 @@ outputs:
style: 'modern-blue'
# [string='KiBot Bill of Materials'] BoM title
title: 'KiBot Bill of Materials'
# BoM Labels Printer:
# You can find an explanation [here](https://sschueller.github.io/posts/ci-cd-with-kicad-2025/)
# You need to create a BoM in CSV format containing the fields to be used.
# The first field will be the header, the rest are extra data.
- name: 'bom_labels_example'
comment: 'Generates a PDF to print labels for the BoM items.'
type: 'bom_labels'
dir: 'Example/bom_labels_dir'
options:
# [string=''] BoM output used for the labels
bom: 'bom_labels'
# [string|list(string)='_null'] Name of the filter to mark components as not fitted.
# Is a short-cut to use for simple cases where a variant is an overkill.
# Can be used to fine-tune a variant for a particular output that needs extra filtering done before the
# variant
dnf_filter: '_null'
# [string|list(string)='_null'] Name of the filter to exclude components from processing.
# Is a short-cut to use for simple cases where a variant is an overkill.
# Can be used to fine-tune a variant for a particular output that needs extra filtering done before the
# variant
exclude_filter: '_null'
# [string='Helvetica-Bold'] Font used for the labels
font: 'Helvetica-Bold'
# [number=6] Default size of the header font, will be reduced to fit the text
font_size_header: 6
# [number=4] Default size of the normal font, will be reduced to fit the text
font_size_rest: 4
# [number=3] Distance from header to first line in mm
header_sep: 3
# [number=10] Label height in mm
height: 10
# [number=1.5] Regular line height in mm
line_height: 1.5
# [number=3] Top margin in mm
margin_top: 3
# [number=2] X margin in mm
margin_x: 2
# [string='%f-%i%I%v.%x'] Name for the generated PDF (%i=bom_labels %x=pdf). Affected by global options
output: '%f-%i%I%v.%x'
# [string|list(string)='_null'] Name of the filter to transform fields before applying other filters.
# Is a short-cut to use for simple cases where a variant is an overkill.
# Can be used to fine-tune a variant for a particular output that needs extra filtering done before the
# variant
pre_transform: '_null'
# [number=3] How many rows we print, including the header
rows: 3
# [string=''] Board variant to apply
variant: ''
# [number=20] Label width in mm
width: 20
# Archiver (files compressor):
# This is used to generate groups of files in compressed file format.
- name: 'compress_example'
Expand Down Expand Up @@ -1845,6 +1895,11 @@ outputs:
include_tracks: false
# [string='FB'] [F,FB,B] Default layer view
layer_view: 'FB'
# [string=''] Name of the checkbox column used to mark components when checked.
# When enabled components checked in this column will be displayed in green.
# Leave empty to disable it.
# Needs iBoM newer than 2.10.0.
mark_when_checked: ''
# [string='ibom'] Output file name format supports substitutions:
# %f : original pcb file name without extension.
# %p : pcb/project title from pcb metadata.
Expand Down
Loading
Loading