Skip to content

Commit 4160450

Browse files
committed
Merge branch 'dev'
2 parents 9a4e671 + 8bb6a5a commit 4160450

File tree

458 files changed

+18572
-6957
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

458 files changed

+18572
-6957
lines changed

.github/workflows/pythonapp.yml

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# This workflow will install Python dependencies, run tests and lint with a single version of Python.
1+
# This workflow will install Python dependencies, run tests and lint with a single version of Python
22
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
33

44
name: Regression tests
@@ -51,13 +51,19 @@ jobs:
5151
rm -f tests/.local
5252
##### Experimental stuff:
5353
## Remove KiAuto
54-
dpkg --remove --force-all kiauto
54+
#dpkg --remove --force-all kiauto
5555
## Install KiAuto@master
56-
curl https://codeload.github.com/INTI-CMNB/KiAuto/zip/refs/heads/master --output pp.zip
57-
unzip pp.zip
58-
pip3 install ${PIP_OPS} KiAuto-master/
56+
#curl https://codeload.github.com/INTI-CMNB/KiAuto/zip/refs/heads/master --output pp.zip
57+
#unzip pp.zip
58+
#pip3 install ${PIP_OPS} KiAuto-master/
59+
## Clean the downloaded stuff
60+
#rm -rf KiAuto-master/ pp.zip
61+
## Install KiDiff@master
62+
#curl https://codeload.github.com/INTI-CMNB/KiDiff/zip/refs/heads/master --output pp.zip
63+
#unzip pp.zip
64+
#pip3 install ${PIP_OPS} KiDiff-master/
5965
## Clean the downloaded stuff
60-
rm -rf KiAuto-master/ pp.zip
66+
#rm -rf KiDiff-master/ pp.zip
6167
## Check what we got
6268
#echo $PATH
6369
#ls -la /usr/bin/*_do || true
@@ -86,6 +92,7 @@ jobs:
8692
with:
8793
name: Test_Coverage_${{ matrix.ki_release }}_${{ matrix.w_tests }}
8894
path: .coverage.*
95+
include-hidden-files: true
8996
- name: Collect coverage ${{ matrix.ki_release }}
9097
run: |
9198
python3-coverage combine
@@ -100,6 +107,7 @@ jobs:
100107
name: Test_Output_${{ matrix.ki_release }}_${{ matrix.w_tests }}
101108
# Important! empty directories are skipped!!!!
102109
path: output
110+
include-hidden-files: true
103111
- name: Upload Coverage
104112
# Don't mix stable coverage with development coverage
105113
# if: ${{ (github.ref == 'refs/heads/dev') && (matrix.ki_release != 'ki8') }}
@@ -183,6 +191,7 @@ jobs:
183191
with:
184192
name: Test_Coverage_Independent
185193
path: .coverage.*
194+
include-hidden-files: true
186195
- name: Collect coverage independent
187196
run: |
188197
python3-coverage combine
@@ -195,6 +204,7 @@ jobs:
195204
name: Test_Output_Independent
196205
# Important! empty directories are skipped!!!!
197206
path: output
207+
include-hidden-files: true
198208
- name: Upload Coverage
199209
# Don't mix stable coverage with development coverage
200210
# if: github.ref == 'refs/heads/dev'
@@ -282,6 +292,7 @@ jobs:
282292
with:
283293
name: Test_Coverage_combined
284294
path: htmlcov
295+
include-hidden-files: true
285296

286297
coveralls:
287298
name: Finish Coveralls

.github/workflows/release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
mv *.deb output
5757
5858
- name: Store
59-
uses: actions/upload-artifact@v1
59+
uses: actions/upload-artifact@v4
6060
with:
6161
name: package
6262
path: output
@@ -69,7 +69,7 @@ jobs:
6969
uses: actions/checkout@v1
7070

7171
- name: Retrieve
72-
uses: actions/download-artifact@v1
72+
uses: actions/download-artifact@v4
7373
with:
7474
name: package
7575

.github/workflows/test_nightly.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
./${{ matrix.w_tests }}.sh
3434
- name: Store results
3535
if: ${{ always() }}
36-
uses: actions/upload-artifact@v3
36+
uses: actions/upload-artifact@v4
3737
with:
3838
name: Test_Output_${{ matrix.ki_release }}_${{ matrix.w_tests }}
3939
# Important! empty directories are skipped!!!!

.github/workflows/test_stable_nightly.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ jobs:
3333
./${{ matrix.w_tests }}.sh
3434
- name: Store results
3535
if: ${{ always() }}
36-
uses: actions/upload-artifact@v3
36+
uses: actions/upload-artifact@v4
3737
with:
3838
name: Test_Output_${{ matrix.ki_release }}_${{ matrix.w_tests }}
3939
# Important! empty directories are skipped!!!!

CHANGELOG.md

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,106 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

77

8+
## [1.8.0] - 2024-09-17
9+
### Added
10+
- Experimental Altium PCB conversion (#625)
11+
- Most places where a field is expected now support `_field_*` to fetch the
12+
globally defined value.
13+
- Preflights:
14+
- check_fields: used to ensure conditions on desired fields (#643)
15+
- e/drc: option to force english messages (needed for KiCad 8.0.4)
16+
- Filters:
17+
- `separate_pins`: used to create testpoint reports (#638)
18+
- `_null` can be used to skip the filters processing
19+
- Global options:
20+
- `use_pcb_fields`: allows using fields defined in the PCB (and not
21+
only in the schematic), enabled by default (#648 and #650)
22+
- `field_current`: to specify the field used for current ratings
23+
- Internal templates:
24+
- Testpoints_by_attr, Testpoints_by_attr_CSV, Testpoints_by_attr_HTML,
25+
Testpoints_by_value, Testpoints_by_value_CSV and Testpoints_by_value_HTML:
26+
Used to generate testpoint reports (#638)
27+
- Command line:
28+
- Option to also list sub-PCBs found in variants
29+
- BoardView: support for BVR format
30+
- BoM: logo file name can contain env vars and/or ~ (#620)
31+
- Datasheet: option to classify the datasheets by reference.
32+
- KiCost: option to specify a configuration file (#615)
33+
- Report:
34+
- Solder paste usage stats (#616)
35+
- Support for variants (See #616)
36+
- Testpoints report (See #638)
37+
- xDRC: configurable category (#647)
38+
- Schematic:
39+
- Support for text boxes inside symbols (#621)
40+
- Worksheet:
41+
- Support for KiCad 8 bitmaps (#623)
42+
- Position:
43+
- Support for panels repeating the same component (See #656)
44+
45+
### Fixed:
46+
- iBoM: *highlight_pin1* option didn't allow the use of the new choices.
47+
- PCB2Blender_Tools: transform filters might make it fail. (#618)
48+
- BoM:
49+
- No color reference when using row colors but not column or kicost colors.
50+
(#619)
51+
- "0 pico" for "0"
52+
- Use of `lcsc_link` as boolean
53+
- User fields for components that are only in the PCB not filled (#656)
54+
- Worksheet: Size of PNGs that specify its PPI resolution.
55+
- Filters:
56+
- Problems with filters that change fields for components that are
57+
only in the PCB. (#628)
58+
- Use of '_none' filter in lists of filters and _kf()
59+
- Variants:
60+
- Problems when remove_solder_paste_for_dnp and remove_adhesive_for_dnp are
61+
both disabled (remove_solder_mask_for_dnp wrongly defined) (#632)
62+
- Problems when using `set_text_variables_before_output` (#649)
63+
- Draw Stackup:
64+
- Dimension always drawn on User.Drawings layer (#629)
65+
- Problems when the PCB wasn't loaded by another preflight
66+
- Update XML: `check_pcb_parity` not usable for KiCad 8, must use the `drc`
67+
preflight (#633)
68+
- PCB Print: %ln and %ll substitution when using `repeat_for_layer` option
69+
- Render_3D: bottom side components that doesn't rotate from its center got
70+
displaced highlight (#659)
71+
- QR Lib output and various preflights: might remove DRC exclusions. This is
72+
a KiCad bug that we must workaround (#653)
73+
- 3D outputs: temporal .kicad_dru file not removed (#655)
74+
- Generated PCB files: problems with some big structures, like zone fills,
75+
that could generate huge lines in the generated PCB, not supported by KiCad.
76+
(#660)
77+
78+
### Changed:
79+
- KiCad 8.0.2: The behavior with hidden text changed in KiCad 8.0.2, it is
80+
computed even for operations where it isn't really visible, like plotting
81+
a layer where we don't have the hidden text. So currently KiBot is
82+
experimentally disabling the "hidden text layer".
83+
This is a bug in KiCad (https://gitlab.com/kicad/code/kicad/-/issues/17958)
84+
- Render 3D: Modern versions of Image Magick no longer needs two trim passes
85+
for auto-crop, so now we default to one and an option enables two. (See #644)
86+
- Preflights: The definition of preflight plug-ins changed. They are slightly
87+
different now. Currently they are Optionable and share more in common with
88+
outputs. If you need assistance to migrate a preflight just open a GitHub
89+
issue.
90+
- Outputs: Now all options must declare its default.
91+
- Global `invalidate_pcb_text_cache`: now it changes the PCB on disk, not just
92+
on memory. This is needed for external tools like KiKit's panelize.
93+
- In many cases now we allow empty lists and use some sort of default.
94+
A warning is issued, but we continue.
95+
- Layers: now the default for missing layers is all layers.
96+
- Copy files: Now we don't stop when nothing to copy is specified
97+
- Layers: now the default for missing layers is all layers.
98+
- KiKit Present: Missing description is no longer fatal
99+
- Any PCB Print/PCB Print: Missing pages/layers is no longer fatal
100+
- Populate: Missing input file is no longer fatal
101+
- QR Lib: Missing QR definition is no longer fatal (%p %r used)
102+
- Blender Options outputs: Make a render when no outputs are specified
103+
- PCB Print: repeat_layers defaults to inners
104+
- Spec to Field: some simple defaults for the specs (voltage, current, power
105+
and tolerance)
106+
107+
8108
## [1.7.0] - 2024-04-23
9109
### Added
10110
- New preflights:

Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ test_docker_local_1_ki7:
116116
docker run --rm -v $(CWD):$(CWD) --workdir="$(CWD)" ghcr.io/inti-cmnb/kicad_auto_test:ki7 \
117117
/bin/bash -c "python3-coverage run src/kibot --help-outputs > /dev/null; pytest-3 --log-cli-level debug -k '$(SINGLE_TEST)' --test_dir=output ; $(PY_COV) html; chown -R $(USER_ID):$(GROUP_ID) output/ tests/ .coverage.* htmlcov/ .cache"
118118

119-
t1k7: single_test
119+
t1k7: test_docker_local_1_ki7
120120

121121
# pip3 uninstall -y kiauto ; dpkg -i kiauto_2.2.5-1_all.deb ;
122122
test_docker_local_1_n:
@@ -132,7 +132,7 @@ test_docker_local_1_sn:
132132
/bin/bash -c "export KIBOT_COPY_REF=$(KIBOT_COPY_REF); src/kibot --help-outputs > /dev/null ; pytest-3 --log-cli-level debug -k '$(SINGLE_TEST)' --test_dir=output ; chown -R $(USER_ID):$(GROUP_ID) output/ tests/ .coverage.* htmlcov/ .cache"
133133
# rm -R .cache/ ; KIBOT_COPY_REF="1" SINGLE_TEST=test_print_sch_variant_ni_2 make test_docker_local_1_sn
134134

135-
t1k8: test_docker_local_1_ki8
135+
t1k8: single_test
136136

137137
t1n: test_docker_local_1_n
138138

@@ -201,7 +201,7 @@ t1k6: test_docker_local_1_ki6
201201
single_test:
202202
rm -rf pp
203203
-$(PY_COV) run src/kibot --help-list-outputs > /dev/null
204-
-$(PYTEST) --log-cli-level debug -k "$(SINGLE_TEST)" --test_dir=pp
204+
-LANG=en $(PYTEST) --log-cli-level debug -k "$(SINGLE_TEST)" --test_dir=pp
205205
@echo "********************" Output
206206
#@cat pp/*/output.txt
207207
@echo "********************" Error

debian/changelog

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,86 @@
1+
kibot (1.8.0-1) stable; urgency=medium
2+
3+
* Added experimental Altium PCB conversion
4+
* Now most places where a field is expected now support `_field_*` to fetch
5+
the globally defined value.
6+
* Added check_fields preflight: used to ensure conditions on desired fields
7+
* Added option to e/drc to force english messages (needed for KiCad 8.0.4)
8+
* Added `separate_pins` filter: used to create testpoint reports
9+
* Added `_null` filter, can be used to skip the filters processing
10+
* Added `use_pcb_fields` global options: allows using fields defined in the
11+
PCB (and not only in the schematic), enabled by default
12+
* Added `field_current` global options: to specify the field used for
13+
current ratings
14+
* New internal templates Testpoints_by_attr, Testpoints_by_attr_CSV,
15+
Testpoints_by_attr_HTML, Testpoints_by_value, Testpoints_by_value_CSV and
16+
Testpoints_by_value_HTML: Used to generate testpoint reports
17+
* New command line option to also list sub-PCBs found in variants
18+
* BoardView: added support for BVR format
19+
* BoM: now the logo file name can contain env vars and/or ~
20+
* Datasheet: added option to classify the datasheets by reference.
21+
* KiCost: added option to specify a configuration file
22+
* Report: added solder paste usage stats, support for variants and testpoints
23+
report
24+
* xDRC: added configurable category
25+
* Schematic: added support for text boxes inside symbols
26+
* Worksheet: added support for KiCad 8 bitmaps
27+
* Position: added support for panels repeating the same component
28+
* iBoM: fixed `highlight_pin1` option didn't allow the use of the new choices.
29+
* PCB2Blender_Tools: fixed that transform filters might make it fail.
30+
* BoM: fixed no color reference when using row colors but not column or kicost
31+
colors, "0 pico" for "0", use of `lcsc_link` as boolean and user fields for
32+
components that are only in the PCB not filled.
33+
* Worksheet: Fixed size of PNGs that specify its PPI resolution.
34+
* Filters: fixed problems with filters that change fields for components that
35+
are only in the PCB and the use of '_none' filter in lists of filters and
36+
_kf()
37+
* Variants: fixed problems when remove_solder_paste_for_dnp and
38+
remove_adhesive_for_dnp are both disabled (remove_solder_mask_for_dnp
39+
wrongly defined) and problems when using `set_text_variables_before_output`
40+
* Draw Stackup: fixed dimension always drawn on User.Drawings layer and
41+
problems when the PCB wasn't loaded by another preflight
42+
* Update XML: fixed `check_pcb_parity` not usable for KiCad 8, must use the
43+
`drc` preflight
44+
* PCB Print: fixed the %ln and %ll substitution when using `repeat_for_layer`
45+
option
46+
* Render_3D: bottom side components that doesn't rotate from its center got
47+
displaced highlight, now fixed
48+
* QR Lib output and various preflights: might remove DRC exclusions. This is
49+
a KiCad bug that we must workaround.
50+
* 3D outputs: temporal .kicad_dru file not removed
51+
* Generated PCB files: fixed problems with some big structures, like zone
52+
fills, that could generate huge lines in the generated PCB, not supported
53+
by KiCad.
54+
* KiCad 8.0.2: changed the behavior with hidden text, it is computed even for
55+
operations where it isn't really visible, like plotting a layer where we
56+
don't have the hidden text. So currently KiBot is experimentally disabling
57+
the "hidden text layer".
58+
This is a bug in KiCad (https://gitlab.com/kicad/code/kicad/-/issues/17958)
59+
* Render 3D: modern versions of Image Magick no longer needs two trim passes
60+
for auto-crop, so now we default to one and an option enables two
61+
* Preflights: the definition of preflight plug-ins changed. They are slightly
62+
different now. Currently they are Optionable and share more in common with
63+
outputs. If you need assistance to migrate a preflight just open a GitHub
64+
issue.
65+
* Outputs: Now all options must declare its default.
66+
* Global `invalidate_pcb_text_cache`: now it changes the PCB on disk, not
67+
just on memory. This is needed for external tools like KiKit's panelize.
68+
* In many cases now we allow empty lists and use some sort of default.
69+
A warning is issued, but we continue.
70+
- Layers: now the default for missing layers is all layers.
71+
- Copy files: Now we don't stop when nothing to copy is specified
72+
- Layers: now the default for missing layers is all layers.
73+
- KiKit Present: Missing description is no longer fatal
74+
- Any PCB Print/PCB Print: Missing pages/layers is no longer fatal
75+
- Populate: Missing input file is no longer fatal
76+
- QR Lib: Missing QR definition is no longer fatal (%p %r used)
77+
- Blender Options outputs: Make a render when no outputs are specified
78+
- PCB Print: repeat_layers defaults to inners
79+
- Spec to Field: some simple defaults for the specs (voltage, current, power
80+
and tolerance)
81+
82+
-- Salvador Eduardo Tropea <[email protected]> Tue, 17 Sep 2024 10:09:33 -0300
83+
184
kibot (1.7.0-1) stable; urgency=medium
285

386
* New preflights: erc, drc, update_footprint, draw_stackup,

docs/Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ source/usage.txt: ../kibot/__main__.py
3333
../src/kibot --help > $@
3434

3535
source/configuration/sup_preflights.rst: ../kibot/pre_*.py ../kibot/config_reader.py
36-
../src/kibot --rst --help-preflights > $@
36+
../src/kibot --rst --help-preflights -d source/configuration/preflights/ > $@
3737

3838
source/configuration/sup_filters.rst: ../kibot/fil_*.py ../kibot/config_reader.py
39-
../src/kibot --rst --help-filters > $@
39+
../src/kibot --rst --help-filters -d source/configuration/filters/ > $@
4040

4141
source/configuration/sup_variants.rst: ../kibot/var_*.py ../kibot/config_reader.py
42-
../src/kibot --rst --help-variants > $@
42+
../src/kibot --rst --help-variants -d source/configuration/variants/ > $@
4343

4444
source/configuration/sup_globals.rst: ../kibot/globals.py ../kibot/config_reader.py
4545
../src/kibot --rst --help-global-options > $@

docs/RESOUCES.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Resources
2+
3+
- GitHub site: [https://github.com/INTI-CMNB/KiBot](https://github.com/INTI-CMNB/KiBot) (525 stars 64 forks 6/2024)
4+
- Documentation: [https://kibot.readthedocs.io/en/master/](https://kibot.readthedocs.io/en/master/)
5+
- Issues: [https://github.com/INTI-CMNB/KiBot/issues](https://github.com/INTI-CMNB/KiBot/issues)
6+
- Discussions: [https://github.com/INTI-CMNB/KiBot/discussions](https://github.com/INTI-CMNB/KiBot/discussions)
7+
- KiCad Forum: [https://forum.kicad.info/t/kibot-fabrication-and-documentation-automation/24705](https://forum.kicad.info/t/kibot-fabrication-and-documentation-automation/24705)
8+
- Download
9+
- Releases: [https://github.com/INTI-CMNB/KiBot/releases](https://github.com/INTI-CMNB/KiBot/releases)
10+
- PyPi: [https://pypi.org/project/kibot/](https://pypi.org/project/kibot/)
11+
- Debian repo: [https://set-soft.github.io/debian/](https://set-soft.github.io/debian/)
12+
- Docker images:
13+
- Base image with KiCad and base tools:
14+
- GitHub: [https://github.com/orgs/INTI-CMNB/packages?repo_name=kicad_debian](https://github.com/orgs/INTI-CMNB/packages?repo_name=kicad_debian) (20K+ 6/2024)
15+
- Simple images
16+
- DockerHub: [https://hub.docker.com/r/setsoft/kicad_auto](https://hub.docker.com/r/setsoft/kicad_auto) (50K+ 6/2024)
17+
- GitHub: [https://github.com/orgs/INTI-CMNB/packages?repo_name=kicad_auto](https://github.com/orgs/INTI-CMNB/packages?repo_name=kicad_auto) (33K 6/2024)
18+
- Full images (with Blender, PanDoc, etc.)
19+
- DockerHub: [https://hub.docker.com/r/setsoft/kicad_auto_test](https://hub.docker.com/r/setsoft/kicad_auto_test) (9K+ 6/2024)
20+
- GitHub: [https://github.com/orgs/INTI-CMNB/packages?repo_name=kicad_auto_test](https://github.com/orgs/INTI-CMNB/packages?repo_name=kicad_auto_test) (74K+ 6/2024)
21+
- Examples:
22+
- Variants:
23+
- Repository: [https://github.com/INTI-CMNB/kibot_variants_arduprog]([https://github.com/INTI-CMNB/kibot_variants_arduprog)
24+
- Site: [https://inti-cmnb.github.io/kibot_variants_arduprog/](https://inti-cmnb.github.io/kibot_variants_arduprog/)
25+
- Quick-start example: [https://inti-cmnb.github.io/kibot_variants_arduprog_site/Browse/t1-navigate.html](https://inti-cmnb.github.io/kibot_variants_arduprog_site/Browse/t1-navigate.html)
26+
- Satellite projects:
27+
- KiAuto: [https://github.com/INTI-CMNB/KiAuto](https://github.com/INTI-CMNB/KiAuto)
28+
- KiDiff: [https://github.com/INTI-CMNB/KiDiff](https://github.com/INTI-CMNB/KiDiff)
29+
- Contributed projects:
30+
- KiCost: [https://github.com/hildogjr/KiCost](https://github.com/hildogjr/KiCost) (2nd 487 commits 6/2024)
31+
- KiBoM: [https://github.com/SchrodingersGat/KiBoM/](https://github.com/SchrodingersGat/KiBoM/) (2nd 34 commits 6/2024)
32+
- PcbDraw: [https://github.com/yaqwsx/PcbDraw/](https://github.com/yaqwsx/PcbDraw/) (2nd 32 commits 6/2024)
33+
- iBoM: [https://github.com/openscopeproject/InteractiveHtmlBom/](https://github.com/openscopeproject/InteractiveHtmlBom/) (3rd 9 commits 6/2024)
34+
- pcbnewTransition: [https://github.com/yaqwsx/pcbnewTransition](https://github.com/yaqwsx/pcbnewTransition) (2nd 2 commits 6/2024)
35+
- KiKit: [https://github.com/yaqwsx/KiKit/](https://github.com/yaqwsx/KiKit/) (2 commits 6/2024)

0 commit comments

Comments
 (0)