Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
set-soft committed Sep 17, 2024
2 parents 9a4e671 + 8bb6a5a commit 4160450
Show file tree
Hide file tree
Showing 458 changed files with 18,572 additions and 6,957 deletions.
23 changes: 17 additions & 6 deletions .github/workflows/pythonapp.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python.
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Regression tests
Expand Down Expand Up @@ -51,13 +51,19 @@ jobs:
rm -f tests/.local
##### Experimental stuff:
## Remove KiAuto
dpkg --remove --force-all kiauto
#dpkg --remove --force-all kiauto
## Install KiAuto@master
curl https://codeload.github.com/INTI-CMNB/KiAuto/zip/refs/heads/master --output pp.zip
unzip pp.zip
pip3 install ${PIP_OPS} KiAuto-master/
#curl https://codeload.github.com/INTI-CMNB/KiAuto/zip/refs/heads/master --output pp.zip
#unzip pp.zip
#pip3 install ${PIP_OPS} KiAuto-master/
## Clean the downloaded stuff
#rm -rf KiAuto-master/ pp.zip
## Install KiDiff@master
#curl https://codeload.github.com/INTI-CMNB/KiDiff/zip/refs/heads/master --output pp.zip
#unzip pp.zip
#pip3 install ${PIP_OPS} KiDiff-master/
## Clean the downloaded stuff
rm -rf KiAuto-master/ pp.zip
#rm -rf KiDiff-master/ pp.zip
## Check what we got
#echo $PATH
#ls -la /usr/bin/*_do || true
Expand Down Expand Up @@ -86,6 +92,7 @@ jobs:
with:
name: Test_Coverage_${{ matrix.ki_release }}_${{ matrix.w_tests }}
path: .coverage.*
include-hidden-files: true
- name: Collect coverage ${{ matrix.ki_release }}
run: |
python3-coverage combine
Expand All @@ -100,6 +107,7 @@ jobs:
name: Test_Output_${{ matrix.ki_release }}_${{ matrix.w_tests }}
# Important! empty directories are skipped!!!!
path: output
include-hidden-files: true
- name: Upload Coverage
# Don't mix stable coverage with development coverage
# if: ${{ (github.ref == 'refs/heads/dev') && (matrix.ki_release != 'ki8') }}
Expand Down Expand Up @@ -183,6 +191,7 @@ jobs:
with:
name: Test_Coverage_Independent
path: .coverage.*
include-hidden-files: true
- name: Collect coverage independent
run: |
python3-coverage combine
Expand All @@ -195,6 +204,7 @@ jobs:
name: Test_Output_Independent
# Important! empty directories are skipped!!!!
path: output
include-hidden-files: true
- name: Upload Coverage
# Don't mix stable coverage with development coverage
# if: github.ref == 'refs/heads/dev'
Expand Down Expand Up @@ -282,6 +292,7 @@ jobs:
with:
name: Test_Coverage_combined
path: htmlcov
include-hidden-files: true

coveralls:
name: Finish Coveralls
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
mv *.deb output
- name: Store
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: package
path: output
Expand All @@ -69,7 +69,7 @@ jobs:
uses: actions/checkout@v1

- name: Retrieve
uses: actions/download-artifact@v1
uses: actions/download-artifact@v4
with:
name: package

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
./${{ matrix.w_tests }}.sh
- name: Store results
if: ${{ always() }}
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Test_Output_${{ matrix.ki_release }}_${{ matrix.w_tests }}
# Important! empty directories are skipped!!!!
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_stable_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
./${{ matrix.w_tests }}.sh
- name: Store results
if: ${{ always() }}
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Test_Output_${{ matrix.ki_release }}_${{ matrix.w_tests }}
# Important! empty directories are skipped!!!!
Expand Down
100 changes: 100 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,106 @@ 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).


## [1.8.0] - 2024-09-17
### Added
- Experimental Altium PCB conversion (#625)
- Most places where a field is expected now support `_field_*` to fetch the
globally defined value.
- Preflights:
- check_fields: used to ensure conditions on desired fields (#643)
- e/drc: option to force english messages (needed for KiCad 8.0.4)
- Filters:
- `separate_pins`: used to create testpoint reports (#638)
- `_null` can be used to skip the filters processing
- Global options:
- `use_pcb_fields`: allows using fields defined in the PCB (and not
only in the schematic), enabled by default (#648 and #650)
- `field_current`: to specify the field used for current ratings
- Internal templates:
- Testpoints_by_attr, Testpoints_by_attr_CSV, Testpoints_by_attr_HTML,
Testpoints_by_value, Testpoints_by_value_CSV and Testpoints_by_value_HTML:
Used to generate testpoint reports (#638)
- Command line:
- Option to also list sub-PCBs found in variants
- BoardView: support for BVR format
- BoM: logo file name can contain env vars and/or ~ (#620)
- Datasheet: option to classify the datasheets by reference.
- KiCost: option to specify a configuration file (#615)
- Report:
- Solder paste usage stats (#616)
- Support for variants (See #616)
- Testpoints report (See #638)
- xDRC: configurable category (#647)
- Schematic:
- Support for text boxes inside symbols (#621)
- Worksheet:
- Support for KiCad 8 bitmaps (#623)
- Position:
- Support for panels repeating the same component (See #656)

### Fixed:
- iBoM: *highlight_pin1* option didn't allow the use of the new choices.
- PCB2Blender_Tools: transform filters might make it fail. (#618)
- BoM:
- No color reference when using row colors but not column or kicost colors.
(#619)
- "0 pico" for "0"
- Use of `lcsc_link` as boolean
- User fields for components that are only in the PCB not filled (#656)
- Worksheet: Size of PNGs that specify its PPI resolution.
- Filters:
- Problems with filters that change fields for components that are
only in the PCB. (#628)
- Use of '_none' filter in lists of filters and _kf()
- Variants:
- Problems when remove_solder_paste_for_dnp and remove_adhesive_for_dnp are
both disabled (remove_solder_mask_for_dnp wrongly defined) (#632)
- Problems when using `set_text_variables_before_output` (#649)
- Draw Stackup:
- Dimension always drawn on User.Drawings layer (#629)
- Problems when the PCB wasn't loaded by another preflight
- Update XML: `check_pcb_parity` not usable for KiCad 8, must use the `drc`
preflight (#633)
- PCB Print: %ln and %ll substitution when using `repeat_for_layer` option
- Render_3D: bottom side components that doesn't rotate from its center got
displaced highlight (#659)
- QR Lib output and various preflights: might remove DRC exclusions. This is
a KiCad bug that we must workaround (#653)
- 3D outputs: temporal .kicad_dru file not removed (#655)
- Generated PCB files: problems with some big structures, like zone fills,
that could generate huge lines in the generated PCB, not supported by KiCad.
(#660)

### Changed:
- KiCad 8.0.2: The behavior with hidden text changed in KiCad 8.0.2, it is
computed even for operations where it isn't really visible, like plotting
a layer where we don't have the hidden text. So currently KiBot is
experimentally disabling the "hidden text layer".
This is a bug in KiCad (https://gitlab.com/kicad/code/kicad/-/issues/17958)
- Render 3D: Modern versions of Image Magick no longer needs two trim passes
for auto-crop, so now we default to one and an option enables two. (See #644)
- Preflights: The definition of preflight plug-ins changed. They are slightly
different now. Currently they are Optionable and share more in common with
outputs. If you need assistance to migrate a preflight just open a GitHub
issue.
- Outputs: Now all options must declare its default.
- Global `invalidate_pcb_text_cache`: now it changes the PCB on disk, not just
on memory. This is needed for external tools like KiKit's panelize.
- In many cases now we allow empty lists and use some sort of default.
A warning is issued, but we continue.
- Layers: now the default for missing layers is all layers.
- Copy files: Now we don't stop when nothing to copy is specified
- Layers: now the default for missing layers is all layers.
- KiKit Present: Missing description is no longer fatal
- Any PCB Print/PCB Print: Missing pages/layers is no longer fatal
- Populate: Missing input file is no longer fatal
- QR Lib: Missing QR definition is no longer fatal (%p %r used)
- Blender Options outputs: Make a render when no outputs are specified
- PCB Print: repeat_layers defaults to inners
- Spec to Field: some simple defaults for the specs (voltage, current, power
and tolerance)


## [1.7.0] - 2024-04-23
### Added
- New preflights:
Expand Down
6 changes: 3 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ test_docker_local_1_ki7:
docker run --rm -v $(CWD):$(CWD) --workdir="$(CWD)" ghcr.io/inti-cmnb/kicad_auto_test:ki7 \
/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"

t1k7: single_test
t1k7: test_docker_local_1_ki7

# pip3 uninstall -y kiauto ; dpkg -i kiauto_2.2.5-1_all.deb ;
test_docker_local_1_n:
Expand All @@ -132,7 +132,7 @@ test_docker_local_1_sn:
/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"
# rm -R .cache/ ; KIBOT_COPY_REF="1" SINGLE_TEST=test_print_sch_variant_ni_2 make test_docker_local_1_sn

t1k8: test_docker_local_1_ki8
t1k8: single_test

t1n: test_docker_local_1_n

Expand Down Expand Up @@ -201,7 +201,7 @@ t1k6: test_docker_local_1_ki6
single_test:
rm -rf pp
-$(PY_COV) run src/kibot --help-list-outputs > /dev/null
-$(PYTEST) --log-cli-level debug -k "$(SINGLE_TEST)" --test_dir=pp
-LANG=en $(PYTEST) --log-cli-level debug -k "$(SINGLE_TEST)" --test_dir=pp
@echo "********************" Output
#@cat pp/*/output.txt
@echo "********************" Error
Expand Down
83 changes: 83 additions & 0 deletions debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,86 @@
kibot (1.8.0-1) stable; urgency=medium

* Added experimental Altium PCB conversion
* Now most places where a field is expected now support `_field_*` to fetch
the globally defined value.
* Added check_fields preflight: used to ensure conditions on desired fields
* Added option to e/drc to force english messages (needed for KiCad 8.0.4)
* Added `separate_pins` filter: used to create testpoint reports
* Added `_null` filter, can be used to skip the filters processing
* Added `use_pcb_fields` global options: allows using fields defined in the
PCB (and not only in the schematic), enabled by default
* Added `field_current` global options: to specify the field used for
current ratings
* New internal templates Testpoints_by_attr, Testpoints_by_attr_CSV,
Testpoints_by_attr_HTML, Testpoints_by_value, Testpoints_by_value_CSV and
Testpoints_by_value_HTML: Used to generate testpoint reports
* New command line option to also list sub-PCBs found in variants
* BoardView: added support for BVR format
* BoM: now the logo file name can contain env vars and/or ~
* Datasheet: added option to classify the datasheets by reference.
* KiCost: added option to specify a configuration file
* Report: added solder paste usage stats, support for variants and testpoints
report
* xDRC: added configurable category
* Schematic: added support for text boxes inside symbols
* Worksheet: added support for KiCad 8 bitmaps
* Position: added support for panels repeating the same component
* iBoM: fixed `highlight_pin1` option didn't allow the use of the new choices.
* PCB2Blender_Tools: fixed that transform filters might make it fail.
* BoM: fixed no color reference when using row colors but not column or kicost
colors, "0 pico" for "0", use of `lcsc_link` as boolean and user fields for
components that are only in the PCB not filled.
* Worksheet: Fixed size of PNGs that specify its PPI resolution.
* Filters: fixed problems with filters that change fields for components that
are only in the PCB and the use of '_none' filter in lists of filters and
_kf()
* Variants: fixed problems when remove_solder_paste_for_dnp and
remove_adhesive_for_dnp are both disabled (remove_solder_mask_for_dnp
wrongly defined) and problems when using `set_text_variables_before_output`
* Draw Stackup: fixed dimension always drawn on User.Drawings layer and
problems when the PCB wasn't loaded by another preflight
* Update XML: fixed `check_pcb_parity` not usable for KiCad 8, must use the
`drc` preflight
* PCB Print: fixed the %ln and %ll substitution when using `repeat_for_layer`
option
* Render_3D: bottom side components that doesn't rotate from its center got
displaced highlight, now fixed
* QR Lib output and various preflights: might remove DRC exclusions. This is
a KiCad bug that we must workaround.
* 3D outputs: temporal .kicad_dru file not removed
* Generated PCB files: fixed problems with some big structures, like zone
fills, that could generate huge lines in the generated PCB, not supported
by KiCad.
* KiCad 8.0.2: changed the behavior with hidden text, it is computed even for
operations where it isn't really visible, like plotting a layer where we
don't have the hidden text. So currently KiBot is experimentally disabling
the "hidden text layer".
This is a bug in KiCad (https://gitlab.com/kicad/code/kicad/-/issues/17958)
* Render 3D: modern versions of Image Magick no longer needs two trim passes
for auto-crop, so now we default to one and an option enables two
* Preflights: the definition of preflight plug-ins changed. They are slightly
different now. Currently they are Optionable and share more in common with
outputs. If you need assistance to migrate a preflight just open a GitHub
issue.
* Outputs: Now all options must declare its default.
* Global `invalidate_pcb_text_cache`: now it changes the PCB on disk, not
just on memory. This is needed for external tools like KiKit's panelize.
* In many cases now we allow empty lists and use some sort of default.
A warning is issued, but we continue.
- Layers: now the default for missing layers is all layers.
- Copy files: Now we don't stop when nothing to copy is specified
- Layers: now the default for missing layers is all layers.
- KiKit Present: Missing description is no longer fatal
- Any PCB Print/PCB Print: Missing pages/layers is no longer fatal
- Populate: Missing input file is no longer fatal
- QR Lib: Missing QR definition is no longer fatal (%p %r used)
- Blender Options outputs: Make a render when no outputs are specified
- PCB Print: repeat_layers defaults to inners
- Spec to Field: some simple defaults for the specs (voltage, current, power
and tolerance)

-- Salvador Eduardo Tropea <[email protected]> Tue, 17 Sep 2024 10:09:33 -0300

kibot (1.7.0-1) stable; urgency=medium

* New preflights: erc, drc, update_footprint, draw_stackup,
Expand Down
6 changes: 3 additions & 3 deletions docs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ source/usage.txt: ../kibot/__main__.py
../src/kibot --help > $@

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

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

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

source/configuration/sup_globals.rst: ../kibot/globals.py ../kibot/config_reader.py
../src/kibot --rst --help-global-options > $@
Expand Down
35 changes: 35 additions & 0 deletions docs/RESOUCES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Resources

- GitHub site: [https://github.com/INTI-CMNB/KiBot](https://github.com/INTI-CMNB/KiBot) (525 stars 64 forks 6/2024)
- Documentation: [https://kibot.readthedocs.io/en/master/](https://kibot.readthedocs.io/en/master/)
- Issues: [https://github.com/INTI-CMNB/KiBot/issues](https://github.com/INTI-CMNB/KiBot/issues)
- Discussions: [https://github.com/INTI-CMNB/KiBot/discussions](https://github.com/INTI-CMNB/KiBot/discussions)
- KiCad Forum: [https://forum.kicad.info/t/kibot-fabrication-and-documentation-automation/24705](https://forum.kicad.info/t/kibot-fabrication-and-documentation-automation/24705)
- Download
- Releases: [https://github.com/INTI-CMNB/KiBot/releases](https://github.com/INTI-CMNB/KiBot/releases)
- PyPi: [https://pypi.org/project/kibot/](https://pypi.org/project/kibot/)
- Debian repo: [https://set-soft.github.io/debian/](https://set-soft.github.io/debian/)
- Docker images:
- Base image with KiCad and base tools:
- 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)
- Simple images
- DockerHub: [https://hub.docker.com/r/setsoft/kicad_auto](https://hub.docker.com/r/setsoft/kicad_auto) (50K+ 6/2024)
- 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)
- Full images (with Blender, PanDoc, etc.)
- DockerHub: [https://hub.docker.com/r/setsoft/kicad_auto_test](https://hub.docker.com/r/setsoft/kicad_auto_test) (9K+ 6/2024)
- 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)
- Examples:
- Variants:
- Repository: [https://github.com/INTI-CMNB/kibot_variants_arduprog]([https://github.com/INTI-CMNB/kibot_variants_arduprog)
- Site: [https://inti-cmnb.github.io/kibot_variants_arduprog/](https://inti-cmnb.github.io/kibot_variants_arduprog/)
- 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)
- Satellite projects:
- KiAuto: [https://github.com/INTI-CMNB/KiAuto](https://github.com/INTI-CMNB/KiAuto)
- KiDiff: [https://github.com/INTI-CMNB/KiDiff](https://github.com/INTI-CMNB/KiDiff)
- Contributed projects:
- KiCost: [https://github.com/hildogjr/KiCost](https://github.com/hildogjr/KiCost) (2nd 487 commits 6/2024)
- KiBoM: [https://github.com/SchrodingersGat/KiBoM/](https://github.com/SchrodingersGat/KiBoM/) (2nd 34 commits 6/2024)
- PcbDraw: [https://github.com/yaqwsx/PcbDraw/](https://github.com/yaqwsx/PcbDraw/) (2nd 32 commits 6/2024)
- iBoM: [https://github.com/openscopeproject/InteractiveHtmlBom/](https://github.com/openscopeproject/InteractiveHtmlBom/) (3rd 9 commits 6/2024)
- pcbnewTransition: [https://github.com/yaqwsx/pcbnewTransition](https://github.com/yaqwsx/pcbnewTransition) (2nd 2 commits 6/2024)
- KiKit: [https://github.com/yaqwsx/KiKit/](https://github.com/yaqwsx/KiKit/) (2 commits 6/2024)
Loading

0 comments on commit 4160450

Please sign in to comment.