From 8d7b3571cdd1065638f580b487f1547bcf24ade3 Mon Sep 17 00:00:00 2001 From: "Salvador E. Tropea" Date: Fri, 2 Feb 2024 11:09:53 -0300 Subject: [PATCH 1/2] [DOCs] Updated changelogs for release --- CHANGELOG.md | 7 +-- debian/changelog | 134 +++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 135 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ae4453be..9b9cd1d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ 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.6.4] - UNRELEASED +## [1.6.4] - 2024-02-02 ### Added - New outputs: - KiRi: interactive diff @@ -55,8 +55,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 the same footprint but different orientation in the reel. - 3D outputs: - `download_lcsc` option to disable LCSC 3D model download (See #415) - - Problems when creating a colored resistor, but we didn't have a cache yet - (i.e. no model downloaded) #553 - Preflights: - Individual directory for the ERC and DRC reports (#562) - BoM: @@ -169,6 +167,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Problems scanning dirs without enough privileges - PCB/SCH Variant - Makefile/compress targets (missing project) +- 3D outputs: + - Problems when creating a colored resistor, but we didn't have a cache yet + (i.e. no model downloaded) #553 ## [1.6.3] - 2023-06-26 ### Added diff --git a/debian/changelog b/debian/changelog index 37f02b74..60715225 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,136 @@ -kibot (1.6.4-1) UNRELEASED; urgency=medium +kibot (1.6.4-1) stable; urgency=medium - * Next release + * Added KiRi output (interactive diff) + * Added KiCanvas output (on-line schematic/PCB browser) + * Now operations that copies the project now also copies the PRL and the DRU + * Now files named *.kibot.yml are also detected as configuration files + * Added mechanism to specify all inner layers (inners) and all external + copper layers (outers) + * New command line options: + - `--help-list-offsets` to list footprint offsets (JLCPCB) + - `--help-list-rotations` to list footprint rotations (JLCPCB) + - `--stop-on-warnings` (`-W`) to stop on warnings + - `--defs-from-env` allows using environment vars for substitution + * New global options: + - `remove_solder_mask_for_dnp` similar to `remove_solder_paste_for_dnp` but + applied to the solder mask apertures. + - `layer_defaults` to specify the default suffix and description. + - `include_components_from_pcb` to disable the new behavior that includes + components from the PCB in the filter/variants processing + - `restore_project` now also restores the PRL + * Added support for *unit names* in KiCad 7 schematics + * New internal templates 3DRender_top, 3DRender_top_straight, 3DRender_bottom + and 3DRender_bottom_straight: to generate simple and quick 3D renders. + * New internal templates options: + - _KIBOT_POS_DNF_FILTER option to JLCPCB. It now excludes components added + by KiKit to create panels and can be customized. + - _KIBOT_PLOT_FOOTPRINT_REFS and _KIBOT_PLOT_FOOTPRINT_VALUES to + manufacturer templates. + - _KIBOT_COMPRESS_MOVE to move gerber and drill files to the compressed + output, enabled by default. + * New `_rot_footprint_jlcpcb` internal filter to fix the JLCPCB bottom + rotations. + * New options for the `rot_footprint` filters: + - `mirror_bottom`: used to undo the KiCad mirroring of the bottom. + - `rot_fields`: list of fields to indicate arbitrary rotations. + - `offset_fields`: list of fields to indicate arbitrary offsets. + - `offsets`: a list of pairs containing regex and offset ("x, y") + - `bennymeg_mode`: used to provide compatibility with the + bennymeg/JLC-Plugin-for-KiCad tool. + - `rotations_and_offsets`: a more flexible mechanism to select + rotations and offsets. So you can have two different rotations + applied to the same footprint, i.e. different components with + the same footprint but different orientation in the reel. + * Added `download_lcsc` option to disable LCSC 3D model download + * Now the preflights has individual directory for the ERC and DRC reports + * Added support for ${field} expansion in the BoM. + * LCSC links to the BoM + * Added `parse_value` BoM option to disable the *Value* parser + * New iBoM option `forced_name` to force the name displayed at the top left + corner + * New on the Blender export: + - Support for pcb2blender v2.6/2.7 (Blender 3.5.1/3.6) + - `auto_camera_z_axis_factor`: used to control the default camera distance + - Options to create simple animations: + - PoV `steps`: to create rotation angle increments + - `default_file_id`: can be used to create numbered PNGs + - `fixed_auto_camera`: to avoid adjusting the automatic camera on each + frame + - Camera option to set the clip start + - Traceback dump when Blender output contains it + - Subdirectory for each output generated + - Option to disable the denoiser + * Added support to expand text variables and KiBot %X markers in text objects + of the KiKit outputs + * Added to the PCB Print: + - Support for CURRENT_DATE text variable + - Options to mirror the text in the user layers when creating a mirrored + page + - Options to select which layers are used for centering purposes + * Added basic support for regular list items to the populate output. + * Added experimental support for gerber position files + * Added a mode to export the whole project (SCH, PCB, symbols, footprints, + 3D models and project files) to the Copy Files output. + * Diff output: + - Added option to un/fill zones before doing the comparison + - Added a new mode where we can control the colors used for added/removed + * Now components only in the PCB are now processed + * Footprints in the QR Lib output are flagged with exclude from BoM and Pos, + also with no court yard requirements, symbol are excluded from simulation + * Elecrow, FusionPCB, JLCPCB, PCBWay and P-Ban templates now moves the files + to the compressed output by default. + * Quick Start now generates configs only for projects, not separated files. + This avoids problems for sub-sheets in separated dirs. + * When *check_zone_fills* is enabled now we do a refill for the boards in + the diff output. + * Fixed problems with deep nested and recycled schematic sheets + * Fixed problems saving deep nested schematic sheets + * Fixed makefile/compress targets/dependencies for schematics + * Fixed rotated polygons and text used in the worksheet + * Fixed --log/-L didn't enabled full debug for all messages + * Fixed problems when trying to aggregate the datasheet field in the BoM + * Fixed the kibot-check to show 7.x as supported + * Fixed in the Blender export: + - Rotations are now applied to the current view, not just the top view + - Board/components not visible for small boards + - Light type names (extra space) + - Problems when no point of view was defined + * Fixed in update_xml with check_pcb_parity enabled: + - Avoid errors for KiCad 6 using "Exclude from BoM" components. + This limitation isn't found on KiCad 7. + - *exclude_from_bom* mismatch on KiCad 7 + - *Sheetfile* mismatch on KiCad 7 when testing from different directory + - Honor the 'Not in schematic' (board_only) flag when doing a parity check + * Fixed problems when connection timed-out when downloading a dependency + * Fixed sub PCB separation using annotation method for some edeges and KiCad + versions + * Fixed problems when using NET_NAME(n) for a value + * Fixed JLCPCB rotations for bottom components (JLCPCB changes it from time + to time) + * Fixed in the Copy Files: + - Warnings when using both, the STEP and WRL model, of the same component + - Fail to detect 3D models subdirs when running alone + * Fixed in the QR Lib: + - When used from the preflight the name of the file changed to the name of + a temporal, generating problems with the plot outputs, like pcb_print + - Project options not preserved, i.e. set_text_variables failing + - Bottom QRs should be mirrored in the Y axis + * Fixed in the Diff: + - `current`: didn't apply global variants + - `current`: didn't honor KiCad native DNP flags, they need a filter + - Problems when trying to use an already existent worktree + - Avoid using unexpected branches for worktrees + * Fixed in PCB Print: + - Issues when forcing the board edge and using scaling + - Text not searchable when using newer rsvg-convert tools + * Fixed in Quick Start: + - Problems with KiCad 6+ files using KiCad 5 names for layers + - Problems scanning dirs without enough privileges + * Fixed makefile/compress targets (missing project) for PCB/SCH Variant + * Fixed problems when creating a colored resistor, but we didn't have a cache + yet (i.e. no model downloaded) for all 3D outputs - -- Salvador Eduardo Tropea Wed, 28 Jun 2023 06:35:51 -0300 + -- Salvador E. Tropea Fri, 2 Feb 2024 06:35:51 -0300 kibot (1.6.3-1) stable; urgency=medium From ba82f40798781a07ed9e4625bf69d581d355c4c7 Mon Sep 17 00:00:00 2001 From: "Salvador E. Tropea" Date: Fri, 2 Feb 2024 12:22:02 -0300 Subject: [PATCH 2/2] [DOCs][Added] Changelog to the RSTs --- CHANGELOG.md | 6 +- docs/Makefile | 7 +- docs/changelog_pre.rst | 5 + docs/source/Changelog.rst | 2006 +++++++++++++++++++++++++++++++++++++ docs/source/conf.py | 2 +- docs/source/index.rst | 1 + 6 files changed, 2022 insertions(+), 5 deletions(-) create mode 100644 docs/changelog_pre.rst create mode 100644 docs/source/Changelog.rst diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b9cd1d4..a4216a53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -279,8 +279,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Support for time stamp in the date (i.e. 2023-04-02T09:22-03:00) - Support to pass variables to the 3D models download URL (#414) - Support for netclass flags (#418) - - Export KICADn_* environment variables for the older versions - So you can use KICAD6_* variables on KiCad 7. + - Export *KICADn_* environment variables for the older versions + So you can use *KICAD6_* variables on KiCad 7. - Expansion patterns: - **%M** directory where the pcb/sch resides. Only the last component i.e. /a/b/c/name.kicad_pcb -> c (#421) @@ -503,7 +503,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Gerber: Extension used for JLCPCB inner layers. (#329) - BoM: - The length of the CSV separator is now validated. - - Using \t, \n, \r and \\ is now supported. (See #334) + - Using the escaped t, n, r and \ is now supported. (See #334) - Digi-key link in the HTML output. - KiBoM: User defined fields wasn't available as column names. (#344) - Imports: diff --git a/docs/Makefile b/docs/Makefile index 8f51b990..cef2a99b 100755 --- a/docs/Makefile +++ b/docs/Makefile @@ -50,6 +50,11 @@ source/rotations.rst: ../kibot/misc.py ../kibot/config_reader.py source/offsets.rst: ../kibot/misc.py ../kibot/config_reader.py ../src/kibot --help-list-offsets > $@ +source/Changelog.rst: ../CHANGELOG.md + pandoc -o tmp.rst $< + cat changelog_pre.rst tmp.rst > $@ + rm tmp.rst + help: @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) @@ -57,7 +62,7 @@ help: # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). $(SPHINXTARGETS): Makefile source/configuration/sup_outputs.rst source/dependencies.rst source/usage.txt source/configuration/sup_preflights.rst \ source/configuration/sup_filters.rst source/configuration/sup_variants.rst source/configuration/sup_globals.rst source/errors.rst \ - source/rotations.rst source/offsets.rst + source/rotations.rst source/offsets.rst source/Changelog.rst @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/changelog_pre.rst b/docs/changelog_pre.rst new file mode 100644 index 00000000..ad5acfe4 --- /dev/null +++ b/docs/changelog_pre.rst @@ -0,0 +1,5 @@ +.. index:: + single: Changelog + +.. _Changelog: + diff --git a/docs/source/Changelog.rst b/docs/source/Changelog.rst new file mode 100644 index 00000000..9143883b --- /dev/null +++ b/docs/source/Changelog.rst @@ -0,0 +1,2006 @@ +.. index:: + single: Changelog + +.. _Changelog: + +Changelog +========= + +All notable changes to this project will be documented in this file. + +The format is based on `Keep a +Changelog `__, and this project +adheres to `Semantic +Versioning `__. + +[1.6.4] - 2024-02-02 +-------------------- + +Added +~~~~~ + +- New outputs: + + - KiRi: interactive diff + - KiCanvas: on-line schematic/PCB browser + +- General: + + - Operations that copies the project now also copies the PRL and the + DRU + - Files named \*.kibot.yml are also detected as configuration files + - Mechanism to specify + + - All inner layers (inners) + - All external copper layers (outers) + +- Command line: + + - ``--help-list-offsets`` to list footprint offsets (JLCPCB) + - ``--help-list-rotations`` to list footprint rotations (JLCPCB) + - ``--stop-on-warnings`` (``-W``) to stop on warnings (#545) + - ``--defs-from-env`` allows using environment vars for substitution + (#549) + +- Global options: + + - ``remove_solder_mask_for_dnp`` similar to + ``remove_solder_paste_for_dnp`` but applied to the solder mask + apertures. (#476) + - ``layer_defaults`` to specify the default suffix and description. + (#504) + - ``include_components_from_pcb`` to disable the new behavior that + includes components from the PCB in the filter/variants processing + - ``restore_project`` now also restores the PRL + +- Schematic format: + + - Support for *unit names* (#513) + +- Internal templates: + + - 3DRender_top, 3DRender_top_straight, 3DRender_bottom and + 3DRender_bottom_straight: to generate simple and quick 3D renders. + - \_KIBOT_POS_DNF_FILTER option to JLCPCB. It now excludes + components added by KiKit to create panels and can be customized. + - \_KIBOT_PLOT_FOOTPRINT_REFS and \_KIBOT_PLOT_FOOTPRINT_VALUES to + manufacturer templates. (#523) + - \_KIBOT_COMPRESS_MOVE to move gerber and drill files to the + compressed output, enabled by default. (#537) + +- Filters: + + - New ``_rot_footprint_jlcpcb`` internal filter to fix the JLCPCB + bottom rotations. + - New options for the ``rot_footprint`` filters: (See #510) + + - ``mirror_bottom``: used to undo the KiCad mirroring of the + bottom. + - ``rot_fields``: list of fields to indicate arbitrary rotations. + - ``offset_fields``: list of fields to indicate arbitrary + offsets. + - ``offsets``: a list of pairs containing regex and offset (“x, + y”) + - ``bennymeg_mode``: used to provide compatibility with the + bennymeg/JLC-Plugin-for-KiCad tool. + - ``rotations_and_offsets``: a more flexible mechanism to select + rotations and offsets. So you can have two different rotations + applied to the same footprint, i.e. different components with + the same footprint but different orientation in the reel. + +- 3D outputs: + + - ``download_lcsc`` option to disable LCSC 3D model download (See + #415) + +- Preflights: + + - Individual directory for the ERC and DRC reports (#562) + +- BoM: + + - Support for ${field} expansion. (#471) + - LCSC links (SchrodingersGat/KiBoM#190) + - ``parse_value`` can be used to disable the *Value* parser (See + #494) Also added a warning about using extra data in the *Value* + field. + +- iBoM: + + - ``forced_name`` option to force the name displayed at the top left + corner (#470) + +- Blender export: + + - Support for pcb2blender v2.6/2.7 (Blender 3.5.1/3.6) + - ``auto_camera_z_axis_factor``: used to control the default camera + distance + - Options to create simple animations: + + - PoV ``steps``: to create rotation angle increments + - ``default_file_id``: can be used to create numbered PNGs + - ``fixed_auto_camera``: to avoid adjusting the automatic camera + on each frame + + - Camera option to set the clip start (#484) + - Traceback dump when Blender output contains it + - Subdirectory for each output generated (#541) + - Option to disable the denoiser (#539) + +- KiKit + + - Expand text variables and KiBot %X markers in text objects (see + #497) + +- PCB Print: + + - Support for CURRENT_DATE text variable + - Options to mirror the text in the user layers when creating a + mirrored page (#561) + - Options to select which layers are used for centering purposes + (#573) + +- Populate: + + - Basic support for regular list items (#480) + +- Position: + + - Experimental support for gerber position files (#500) + +- Copy Files: + + - Mode to export the whole project (SCH, PCB, symbols, footprints, + 3D models and project files) (#491) + +- Help for the error levels +- Warnings: + + - Explain about wrong dir/output separation (#493) + +- Diff: + + - Added option to un/fill zones before doing the comparison (See + #391) + - Added a new mode where we can control the added/removed colors + (#551) + +Changed +~~~~~~~ + +- Documentation: + + - Now you can search in the docs + - Indexed so you can search by topic + - With a navigation side bar + +- Variants and filters: + + - Components only in the PCB are now processed + +- QR Lib: + + - Footprints: now they are flagged with exclude from BoM and Pos, + also with no court yard requirements for KiCad 7 + - Symbol: Excluded from simulation for KiCad 7 + +- Elecrow, FusionPCB, JLCPCB, PCBWay and P-Ban templates now moves the + files to the compressed output by default. + + - Note that JLCPCB BoM and Position files aren’t included anymore, + they are uploaded separately. + +- Quick Start: + + - Now we generate only for projects, not separated files. This + avoids problems for sub-sheets in separated dirs. + +- Diff: + + - When *check_zone_fills* is enabled now we do a refill for the + boards + +Fixed +~~~~~ + +- Schematics: + + - Problems with deep nested and recycled sheets (#520) + - Problems saving deep nested sheets + - Makefile/compress targets + +- Rotated polygons and text used in the worksheet (#466) +- The –log/-L didn’t enabled full debug for all messages +- BoM: + + - Problems when trying to aggregate the datasheet field (#472) + +- kibot-check: + + - Show 7.x as supported (#469) + +- Blender export: + + - Rotations are now applied to the current view, not just the top + view + - Board/components not visible for small boards (See #484) + - Light type names (extra space) (#505) + - Problems when no point of view was defined (#546) + +- update_xml with check_pcb_parity enabled: + + - Avoid errors for KiCad 6 using “Exclude from BoM” components. This + limitation isn’t found on KiCad 7. (#486) + - *exclude_from_bom* mismatch on KiCad 7 + - *Sheetfile* mismatch on KiCad 7 when testing from different + directory + - Honor the ‘Not in schematic’ (board_only) flag when doing a parity + check + +- Dependencies downloader: + + - Problems when connection timed-out + +- Sub PCB separation using annotation method for some edeges and KiCad + versions (#496) +- Problems when using NET_NAME(n) for a value (#511) +- JLCPCB rotations for bottom components +- Copy Files: + + - Warnings when using both, the STEP and WRL model, of the same + component + - Fail to detect 3D models subdirs when running alone + +- QR Lib: + + - When used from the preflight the name of the file changed to the + name of a temporal, generating problems with the plot outputs, + like pcb_print + - Project options not preserved, i.e. set_text_variables failing + - Bottom QRs should be mirrored in the Y axis + +- Diff + + - ``current``: didn’t apply global variants + - ``current``: didn’t honor KiCad native DNP flags, they need a + filter + - Problems when trying to use an already existent worktree (#555) + - Avoid using unexpected branches for worktrees (#556) + +- PCB Print: + + - Issues when forcing the board edge and using scaling (#532) + - Text not searchable when using newer rsvg-convert tools (#552) + +- Quick Start: + + - Problems with KiCad 6+ files using KiCad 5 names for layers + - Problems scanning dirs without enough privileges + +- PCB/SCH Variant + + - Makefile/compress targets (missing project) + +- 3D outputs: + + - Problems when creating a colored resistor, but we didn’t have a + cache yet (i.e. no model downloaded) #553 + +.. _section-1: + +[1.6.3] - 2023-06-26 +-------------------- + +.. _added-1: + +Added +~~~~~ + +- General: + + - OS environment expansion in ${VAR} + - Now outputs can request to be added to one or more groups (#435) + - PCB text variables cached in the PCB are now reset when the config + uses ``set_text_variables``. This is a complex dilemma of KiCad + 6/7 policy implementation. See `KiCad issue + 14360 `__. + (#441) + - Default values for @TAGS@ + - Parametrizable imports + +- Command line: + + - ``--list-variants`` List all available variants (See #434) + - ``--only-names`` to make ``--list`` list only output names + - ``--only-pre`` to list only the preflights + - ``--only-groups`` to list only the groups + - ``--output-name-first`` to list outputs by name, no description + (See #436) + +- Global options: + + - ``use_os_env_for_expand`` to disable OS environment expansion + - ``environment``.\ ``extra_os`` to define environment variables + - ``field_voltage`` Name/s of the field/s used for the voltage + raiting + - ``field_package`` Name/s of the field/s used for the package, not + footprint + - ``field_temp_coef`` Name/s of the field/s used for the temperature + coefficient + - ``field_power`` Name/s of the field/s used for the power raiting + - ``invalidate_pcb_text_cache`` controls if we reset the text + variables cached in the PCB file. + - ``git_diff_strategy`` selects how we preserve the current repo + state. (See #443) + +- Filters: + + - New ``value_split`` to extract information from the Value field + and put it in separated fields. I.e. tolerance, voltage, etc. + - New ``spec_to_field`` to extract information from the distributors + specs and put in fields. I.e. RoHS status. + - New ``generic`` options ``exclude_not_in_bom`` and + ``exclude_not_on_board`` to use KiCad 6+ flags. (See #429) + +- Internal templates: + + - JLCPCB_with_THT and JLCPCB_stencil_with_THT: adding THT + components. + +- New internal filters: + + - ``_value_split`` splits the Value field but the field remains and + the extra data is not visible + - ``_value_split_replace`` splits the Value field and replaces it + +- Internal templates: + + - CheckZoneFill: Used to check if a zone fill operation makes the + PCB quite different (#431) + - Versions with stencil for Elecrow, FusionPCB, P-Ban and PCBWay. + - PanelDemo_4x4: Demo for a 4x4 panel. + +- Render_3D: + + - ``realistic``: can be used to disable the realistic colors and get + the GUI ones + - ``show_board_body``: can be used to make the PCB core transparent + (see inner) + - ``show_comments``: to see the content of the User.Comments layer. + - ``show_eco``: to see the content of the Eco1.User/Eco2.User + layers. + - ``show_adhesive``: to see the content of the \*.Adhesive layers. + +- Navigate_Results: + + - ``skip_not_run``: used to skip outputs not generated in default + runs. + +- Compress: + + - ``skip_not_run``: used to skip outputs not generated in default + runs. + +- Position: + + - ``quote_all``: forces quotes to all values in the CSV output. (See + #456) + +.. _changed-1: + +Changed +~~~~~~~ + +- Command line: + + - ``--list`` also lists groups + +- KiCad v6/7 schematic: + + - When saving an schematic the hierarchy is expanded only if needed, + i.e. value of an instance changed + +- List actions: + + - Now you must explicitly ask to configure outputs. Otherwise isn’t + needed. As a result you no longer need to have an SCH/PCB. Use + ``--config-outs`` to get the old behavior. + +- Git diff link file name: + + - Now we default to using worktrees instead of stash push/pop. As a + side effect the names of the git points are changed. This is + because main/master only applies to the main worktree. So the + names now refer to the closest tag. + +- JLCPCB_stencil: Is now just like JLCPCB. The only difference is the + added layers. + +.. _fixed-1: + +Fixed +~~~~~ + +- KiCad v6/7 schematic: + + - Net Class Flags not saved in variants or annotated schematics + - Repeated UUIDs saved in variants + - Bitmap scale not saved in variants or annotated schematics + - ``lib_name`` attribute not saved in variants or annotated + schematics + +- Position: + + - Components marked as “Exclude from position files” not excluded + when only SMD components are selected. (See #429) + +- Diff: + + - KIBOT_TAG with n > 0 skipped n commits, not n tags (#430) + - Details related to the project not applied during a diff involving + a variant (project not copied) (#438) + +- Copy files: + + - PCB not loaded if the only action was to copy the 3D models + - Problems for STEP models when copying models + +- Gerber: + + - Problems trying to compress gerbers for a board with inner layers + when using legacy file extensions (#446) + +- Electro-grammar: + + - Problems with floating point tolerances (i.e. 0.1%) (#447) + +- KiCad user template directory autodetection for KiCad 7+ + +.. _section-2: + +[1.6.2] - 2023-04-24 +-------------------- + +.. _added-2: + +Added +~~~~~ + +- General: + + - Support for time stamp in the date (i.e. 2023-04-02T09:22-03:00) + - Support to pass variables to the 3D models download URL (#414) + - Support for netclass flags (#418) + - Export *KICADn\_* environment variables for the older versions So + you can use *KICAD6\_* variables on KiCad 7. + +- Expansion patterns: + + - **%M** directory where the pcb/sch resides. Only the last + component i.e. /a/b/c/name.kicad_pcb -> c (#421) + +- Command line: + + - ``--banner N`` Option to display a banner + - ``--log FILE`` Option to log to a file, in addition to the stderr + +- Global options: + + - ``colored_tht_resistors`` to disable the 3D colored resistors. + - ``field_tolerance`` field/s to look for resistor tolerance. + - ``default_resistor_tolerance`` which tolerance to use when none + found. + - ``cache_3d_resistors`` to avoid generating them all the time. + - ``resources_dir`` to specify fonts and colors to install (CI/CD) + +- 3D: colored 3D models for THT resistors +- Blender export: + + - Better default light + - More light options + +- Datasheet download: now the warnings mention which reference failed. +- Plot related outputs and PCB_Print: + + - ``individual_page_scaling``: to control if the center of the page + is computed using all pages or individually. + +- Plot related outputs: + + - All outputs now support scaling. + +- BoM: + + - Support for extra information in the *Value* field. Currently just + parsed, not rejected. + +- PCB/SCH parity test: + + - Check for value and fields/properties. + +- SCH print: + + - Support for title change + +- VRML: + + - Option to use the auxiliary origin as reference. (#420) + +.. _fixed-2: + +Fixed +~~~~~ + +- Makefile: don’t skip all preflights on each run, just the ones we + generate as targets. (#405) +- KiKit present: problems when no board was specified. (#402) +- Datasheet download: + + - Avoid interruptions when too many redirections is detected (#408) + +- PcbDraw: + + - KiCad 7.0.1 polygons used as board edge. (yaqwsx/PcbDraw#142) + +- PCB Print: + + - Interference between the visible layers in the PRL file and the + results when scaling. (#407) + - Problems with images in the WKS (KiCad 5/6) + +- Diff: + + - Problems when using an output and no variant specified. + +- PCB/SCH parity test: + + - Workaround for bogus net codes generated by KiCad (#410) + +- 3D Models: + + - Problems to download KiCad 7 models (#417) + - Added workaround for KiCad 7 failing to export VRMLs for PCBs + using paths relative to the footprint. (See #417) + +- VRML: + + - ref_y coordinate not used. (#419) + +.. _changed-2: + +Changed: +~~~~~~~~ + +- Some R, L and C values that were rejected are accepted now. You just + get a warning about what part of the value was discarded. + +.. _section-3: + +[1.6.1] - 2023-03-16 +-------------------- + +.. _added-3: + +Added +~~~~~ + +- KiCad 7.0.1 support +- Global options: + + - ``allow_blind_buried_vias`` and ``allow_microvias`` for KiCad 7 + (no longer in KiCad) + - ``erc_grid`` to specify the grid size for KiCad 7 ERC tests + +- Report: + + - Counters for total vias and by via type (``vias_count``, + ``thru_vias_count``, ``blind_vias_count`` and + ``micro_vias_count``) + - Warnings when micro and/or blind vias aren’t allowed, but we found + them. + +- KiCad 7 specific: + + - Avoid warnings about missing coutyard for footprints marked as + excluded from courtyard tests. + - ``kicad_dnp_applied`` global option to use the *Do Not Populate* + schematic flag as *do not fit* for KiBot, enabled by default. + - ``kicad_dnp_applies_to_3D`` global option to eliminate the 3D + models of components marked as *Do Not Populate*. This option + applies to the case where no filter or variants are in use. + Enabled by default. The ``kicad_dnp_applied`` option also disables + it. + - ``cross_using_kicad`` global option to use KiCad to cross DNP + components in the schematic. Enabled by default. + +.. _fixed-3: + +Fixed +~~~~~ + +- Problems to detect the schematic name when the path to the config + contained a dot that isn’t used for an extension and some particular + conditions were met. +- PCB Print: KiCad crashing on some complex filled zones (#396) + +.. _section-4: + +[1.6.0] - 2023-02-06 +-------------------- + +.. _added-4: + +Added +~~~~~ + +- General: + + - Support for ``groups`` of ``outputs`` + - Internal templates import + - Better support for wrong pre-flight options (#360) + - A mechanism to cache downloaded 3D models + - Support to download 3D models from EasyEDA (using LCSC codes) + +- Global options: + + - field_lcsc_part: to select the LCSC/JLCPCB part field + +- New outputs: + + - ``vrml`` export the 3D model in Virtual Reality Modeling Language + (#349) + - ``ps_sch_print``, ``dxf_sch_print`` and ``hpgl_sch_print`` + variants of ``pdf_sch_print`` + - ``blender_export`` exports the PCB to Blender and other 3D + formats, renders the PCB with impressive quality (experimental) + +- New internal filters: + + - ``_only_smd`` used to get only SMD parts + - ``_only_tht`` used to get only THT parts + - ``_only_virtual`` used to get only virtual parts + +- Variants: + + - Support for multi-boards as defined by KiKit + +- Internal templates: + + - FusionPCB: gerber, drill and compress + - Elecrow: gerber, drill and compress + - JLCPCB: gerber, drill, position, BoM and compress + - MacroFab_XYRS: XYRS position file compatible with MacroFab + - P-Ban: gerber, drill and compress + - PCB2Blender_2_1: generates a pcb2blender 2.1 file to import on + Blender (See #349) + - PCB2Blender_2_1_haschtl: PCB2Blender_2_1 variant for @Haschtl + fork. + - PCBWay: gerber, drill and compress + +- Compress: + + - Option to use the output’s ``dir`` as reference + (``from_output_dir``) + +- iBoM: + + - ``hide_excluded`` to hide excluded \*.Fab drawings. + +- PCB_Print: + + - Added a mechanism to create a page for each copper layer. (#365) + +- Plot related outputs and PCB_Print: + + - Added support for the KiCad 6 “sketch_pads_on_fab_layers” option. + (#356) + +- Report: + + - Expansion for KiCad text variables and environment variables (See + #368) + +- \*SCH_Print: + + - Added options to select the color theme and enable background + color. (#362) + +- SVG: + + - Options to limit the view box to the used area. ### Fixed + +- BoM: + + - pre_transform filers can’t be logic filters + +- Copy_Files: + + - Problems on KiCad 5 (no 3rd party dir) (#357) + - Problems with compress output (also Makefile) (#372) + +- DOCs + + - annotate_pcb pre-flight missing options (#360) + - annotate_pcb pre-flight wrong example (#360) + +- iBoM: + + - Variant changes to the \*.Fab weren’t exported. Now all 2D variant + stuff is applied before calling iBoM (#350) + +- PCB_Print: + + - Images not showing in custom frames. (#352) + - Problems when trying to use groups of layers (i.e. copper) + +- Report: + + - Computed size when using circles and some arcs in the PCB edge + (#375) ### Changed + +- Downloaded 3D models are no longer discarded. They are stored in + ~/.cache/kibot/3d You can change the directory using KIBOT_3D_MODELS +- License is now AGPL v3, since we are incorporating AGPL code. + +.. _section-5: + +[1.5.1] - 2022-12-16 +-------------------- + +.. _fixed-4: + +Fixed +~~~~~ + +- System level resources look-up + +.. _section-6: + +[1.5.0] - 2022-12-16 +-------------------- + +.. _added-5: + +Added +~~~~~ + +- New output: + + - ``populate`` to create step-by-step assembly instructions With + support for ``pcbdraw`` and ``render_3d``. + - ``panelize`` to create a PCB panel containing N copies of the PCB. + - ``stencil_3d`` to create 3D self-registering printable stencils. + - ``stencil_for_jig`` to create steel stencils and 3D register. + - ``kikit_present`` to create a project presentation web page. + +- generic filters: options to filter by PCB side +- BoM: + + - Option to link to Mouser site. + - Human readable text output format. + +- Diff: + + - Option to compare only the first schematic page. (See #319) + +- iBoM: + + - Support for the ``offset_back_rotation`` option + +- Navigate Results: + + - Support for compress + +- PcbDraw: + + - BMP output format + - Image margin + - Outline width + - Solder paste removal + - V-CUTS layer + - Resistor remap and flip + - A ``remap_components`` option with better type checks + - Better support for variants + - Option to control the *SVG precision* (units scale) + - Filter expansion in ``show_components`` and ``highlight`` + +- PCB_Print: + + - Option to control the *SVG precision* (units scale) + - Now the text in the PDF is searchable. (#331) + - Margins for the autoscale mode. (#337) + +- Render_3D: + + - Option to render only some components (like in PcbDraw) + - Option to auto-crop the resulting PNG + - Option to make transparent the background + - Option to highlight components + +- SVG: + + - Option to control the *SVG precision* (units scale) + +.. _changed-3: + +Changed +~~~~~~~ + +- Diff: + + - Now the default is to compare all the schematic pages. (#319) + +- Report: + + - loss tangent decimals, added one more. + +.. _fixed-5: + +Fixed +~~~~~ + +- QR lib update: Problems when moving the footprint to the bottom for + KiCad 5. +- SVG, PCB_Print, PcbDraw: Problems to display the outputs using Chrome + and Firefox. +- Diff: Problems when comparing to a repo point where the PCB/SCH + didn’t exist yet. (#323) +- Report: Problems when using NPTH holes with sizes that doesn’t + correspond to real drill tools. It generated bogus reports about + wrong OARs. (#326) +- Problems when using more than one dielectric in the stack-up. (#328) +- Gerber: Extension used for JLCPCB inner layers. (#329) +- BoM: + + - The length of the CSV separator is now validated. + - Using the escaped t, n, r and  is now supported. (See #334) + - Digi-key link in the HTML output. + +- KiBoM: User defined fields wasn’t available as column names. (#344) +- Imports: + + - Problems with recursive imports when the intermediate import + didn’t contain any of the requested elements (i.e. no outputs). + (#335) + +- Navigate results: fail when no output to generate. Now you get a + warning. +- Makefile: outputs marked as not run by default were listed in the + ``all`` target. + +.. _section-7: + +[1.4.0] - 2022-10-12 +-------------------- + +.. _added-6: + +Added +~~~~~ + +- General things: + + - Some basic preprocessing, now you can parametrize the YAML config. + (See #233 #243) + - Support for 3D models aliases and also a global option to define + them in the KiBot configuration (See #261) + - Environment and text variables now can be used as 3D model + aliases. (See #261) + - Environment and text variables expansion is now recursive. So in + ``${VAR}`` the *VAR* can contain ``${OTHER_VAR}`` + - Command line option to specify warnings to be excluded. Useful for + warnings issued before applying the global options (i.e during + import). (#296) + - ``pre_transform`` filter to outputs supporting variants. + +- New outputs: + + - PCB_Variant: saves a PCB with filters and variants applied. + - Copy_Files: used to copy files to the output directory. (#279) You + can also copy the 3D models. + +- Support for Eurocircuits drill adjust to fix small OARs. Option + ``eurocircuits_reduce_holes``. (#227) +- Global options: + + - Support for changing text variables with variants during outputs + creation. Option ``set_text_variables_before_output``. (See #233) + - Options to control which stuff is changed on PCB variants: (See + #270) + + - cross_footprints_for_dnp + - remove_adhesive_for_dnp + - remove_solder_paste_for_dnp + - hide_excluded (default value) + + - Mechanism to give more priority to local globals. (See #291) + +- Diff: + + - Mechanism to compare using a variant (See #278) + - Mechanism to specify the current PCB/Schematic in memory (See + #295) + - Mechanism to compare with the last Nth tag (See #312) + - Option to skip pages with no differences + +- Sch Variant: + + - Option to copy the project. Needed for text variables. + - Option to change the title (similar to PCB Variant) + +- Render_3D: Options to disable some technical layers and control the + silkscreen clipping. (#282) +- Internal BoM: + + - Now you can aggregate components using CSV files. (See #248) + - Added some basic support for “Exclude from BoM” flag (See #316) + +- Now you can check PCB and schematic parity using the ``update_xml`` + preflight (See #297) +- New filters: + + - ``urlify`` to convert URLs in fields to HTML links (#311) + - ``field_modify`` a more generic field transformer + +- Position: option to set the resolution for floating values (#314) + +.. _fixed-6: + +Fixed +~~~~~ + +- Problems to compress netlists. (#287) +- 2D PCB processing didn’t show in 3D targets (i.e. solder paste not + removed in the 3D render). (See #270) +- KiBot exited when downloading a datasheet and got a connection error + (#289 #290) +- KiCad 5 “assert”lower <= upper” failed in Clamp()” (#304) +- Missing XYRS information for components with multiple units (#306) +- Schematic v6: + + - Problems when creating a variant of a sub-sheet that was edited as + a standalone sheet (#307) + - Autoplace fields could be lost in variants. + +- iBoM: Name displayed in the HTML when using filters and/or variants. +- Position: Components wrongly separated by side when the side column + wasn’t the last column (#313) + +.. _changed-4: + +Changed +~~~~~~~ + +- Diff: + + - When comparing a file now the links says Current/FILE instead of + None + - The default was to compare the current file on storage, now is the + current file on memory. It includes the zone refill indicated in + the preflights. (See #295) + - Now the error about differences bigger than the threshold is more + clear. KiBot also returns a distinct error level. + +- Now the global ``dir`` option also applies to the preflights, can be + disabled using ``use_dir_for_preflights``. (#292) +- When importing globals now options that are lists or dicts are + merged, not just replaced. (#291) + +.. _section-8: + +[1.3.0] - 2022-09-08 +-------------------- + +.. _added-7: + +Added +~~~~~ + +- New outputs: + + - Diff: to compute differences between PCBs and SCHs. + (INTI-CMNB/KiAuto#14) + - Info: collects info about the environment. (See #209) + +- Try to download missing tools and Python modules. The user also gets + more information when something is missing. It can be disabled from + the command line. +- Global options: + + - Cross components without a body (#219) + - Restore the project at exit (#250) + +- Imports: + + - Now you can nest imports (import from an imported file) (#218) + - Preflights can be imported (#181) + +- ``--dont-stop`` command line option, to try to continue even on + errors (#209) +- PDF/SVG PCB Print: option to print all pages/single page (#236) +- iBoM: Support for variants that change component fields (#242) +- Workaround for problems with DRC exclusions (See INTI-CMNB/KiAuto#26, + #250) Global option: ``drc_exclusions_workaround`` KiCad bug + `11562 `__ +- Internal BoM: KiCad 6 text variables expansion in the fields (#247) +- Compress: Option to store symlinks. (See #265) +- PCB Print: + + - Option to configure the forced edge color. (#281) + - Option to control the resolution (DPI). (See #259) + - Option to move the page number to the extension + (page_number_as_extension) (See #283) + - Option to customize the page numbers (See #283) + +- Installation checker: option to show the tool paths. + +.. _fixed-7: + +Fixed +~~~~~ + +- OAR computation (Report) (#225) +- Position: Problems when doing manual panelization (repeated + references) (#224) +- PCB_Print: + + - Problems with filtered/modified PCBs + - Problems with zones on multiple layers (#226) + - Problems with ``hide_excluded: true`` and components not in the + SCH (#258) + - Text vars generated in the same run didn’t show up (#280) + - Low resolution for the solder mask. (See #259) + +- SCH Variants on KiCad 6: Problems with missing values in the title + block. +- Report: Converted file wasn’t stored at ``dir`` (#238) +- Datasheet download: Time-outs on some servers expecting modern + browsers (#240) +- SCH Print and Netlist: name collisions. When the default name used by + KiCad belongs to an already existing file. (#244) +- Install checker: fixed problems to detect iBoM installed as plugin. + (#209) +- Internal Netlist generation (i.e. iBoM with variants): problems withg + components that doesn’t specify a library. (See #242) +- Problems when setting a text variable to an empty string. (#268) +- QR lib update: Problems when moving the footprint to the bottom. + (#271) +- Misleading messages for missing 3D models that starts with ${VAR} + when VAR isn’t defined. The old code tried to make it an absolute + path. + +.. _changed-5: + +Changed +~~~~~~~ + +- The order in which main sections are parsed is now fixed. The + declared order is ignored. The order is: kiplot/kibot, import, + global, filters, variants, preflight, outputs +- Datasheet download: + + - Continue downloading if an SSL certificate error found (#239) + +- PCB_Print: PNGs no longer has transparent background. This is because + now we use a PDF as intermediate step. +- Fails to expand KiCad vars are reported once (not every time) +- No more warnings about missing 3D models when we can download them + +.. _section-9: + +[1.2.0] - 2022-06-15 +-------------------- + +.. _added-8: + +Added +~~~~~ + +- The outputs help now display the more relevant options first and + highlighted. Which ones are more relevant is somehow arbitrary, + comments are welcome. +- General stuff: + + - Outputs now can have priorities, by default is applied. Use ``-n`` + to disable it. + +- New outputs: + + - ``navigate_results`` creates web pages to browse the generated + outputs. + `Example `__ + +- New globals: + + - ``environment`` section allows defining KiCad environment + variables. (See INTI-CMNB/KiAuto#21) + +- GitHub discussions are now enabled. Comment about your KiBot + experience `here `__ + +.. _fixed-8: + +Fixed +~~~~~ + +- Components with mounting hole where excluded (#201) +- GenCAD output targets. +- Problems expanding multiple KiCad variables in the same value. +- XML BoM: Fixed problems with fields containing / (#206) +- pcb_print: vias processing was disabled. +- pcb_print: problems with frame in GUI mode and portrait page + orientation. +- svg_pcb_print: page orientation for portrait. + +.. _changed-6: + +Changed +~~~~~~~ + +- KiCad environment variables: more variables detected, native KiCad 6 + names, all exported to the environment (#205) +- Consequences of the priorities implementation: + + - ``qr_lib`` outputs are created before others + - ``navigate_results`` and ``compress`` outputs are created after + others + +.. _section-10: + +[1.1.0] - 2022-05-24 +-------------------- + +.. _added-9: + +Added +~~~~~ + +- ``kibot-check`` tool to check the installation +- New outputs: + + - KiCad netlist generation + - IPC-D-356 netlist generation (#197) + +- Internal BoM: + + - Pattern and text variables expansion in the title (#198) + - Customizable extra info after the title (#199) + +.. _fixed-9: + +Fixed +~~~~~ + +- Already configured outputs not created (i.e. when creating reports) +- KiCost+Internal variants: UTF-8 problems +- KiCost+Internal variants: problem with ``variant`` field + capitalization + +.. _section-11: + +[1.0.0] - 2022-05-10 +-------------------- + +.. _added-10: + +Added +~~~~~ + +- General stuff: + + - KiCad 6 support + - Import mechanism for filters, variants and globals (#88) + - Outputs can use the options of other outputs as base (extend + them). (#112) + - A mechanism to avoid running some outputs by default. (#112) + - ``--cli-order`` option to generate outputs in arbitrary order. + (#106) + - ``--quick-start`` option to create usable configs and outputs. + +- Filters and variants: + + - Options to better control the rotation filter (#60 and #67): + + - invert_bottom: bottom angles are inverted. + - skip_top: top components aren’t rotated. + - skip_bottom: bottom components aren’t rotated. + + - Generic filter: options to match if a field is/isn’t defined. + - Another experimental mechanism to change 3D models according to + the variant. (#103) + - Support for variants on KiCost output. (#106) + +- Expansion patterns: + + - **%g** the ``file_id`` of the global variant. + - **%G** the ``name`` of the global variant. + - **%C1**, **%C2**, **%C3** and **%C4** the comments in the sch/pcb + title block. + - **%bc**, **%bC1**, **%bC2**, **%bC3**, **%bC4**, **%bd**, **%bf**, + **%bF**, **%bp** and **%br** board data + - **%sc**, **%sC1**, **%sC2**, **%sC3**, **%sC4**, **%sd**, **%sf**, + **%sF**, **%sp** and **%sr** schematic data + - **%V** the variant name + - **%I** user defined ID for this output + - Now patterns are also expanded in the out_dir name. + +- Global options: + + - Default global ``dir`` option. + - Default global ``units`` option. + - Global option to specify ``out_dir`` (like -d command line option) + - Global options to control the date format. + - Added global options to define the PCB details (``pcb_material``, + ``solder_mask_color``, ``silk_screen_color`` and ``pcb_finish``) + +- New preflights: + + - Commands to replace tags in the schematic and PCB (KiCad 5). (#93) + Also a mechanism to define variables in KiCad 6. (#161) + - Annotate power components. (#76) + - Annotate according to PCB coordinates (#93) + +- New outputs: + + - 3D view render + - Report generation (for design house) (#93) + - QR codes generation and update: symbols and footprints. (#93) + - Print PCB layers in SVG/PDF/PS/EPS/PNG format. + - Join PDFs. (#156) + - Export PCB in GENCAD format. (#159) + - Datasheet downloader. (#119) + +- XLSX BoM: option to control the logo scale (#84) +- PDF/SVG PCB Print: + + - option ``hide_excluded`` to hide components marked by the + ``exclude_filter``. + https://forum.kicad.info/t/fab-drawing-for-only-through-hole-parts/ + - mechanism to change the block title. (#102) + - KiCad 6 color theme selection. + - New ``pcb_print`` output with more flexibility and faster. + +- Internal BoM: + + - option to avoid merging components with empty fields. Is named + ``merge_both_blank`` and defaults to true. + - when a ``Value`` field can’t be interpreted as a ``number+unit``, + and it contain at least one space, now we try to use the text + before the space. This helps for cases like “10K 1%”. + - ``count_smd_tht`` option to compute SMD/THT stats. (#113) + - option to add text to the ``join`` list. (#108) + - two other options for the sorting criteria. + - XYRS support (you can generate position files using it) + - CSV ``hide_header`` option + +- Drill: + + - Excellon: added ``route_mode_for_oval_holes`` option. + - Support for blind/buried vias. (#166) + +- SCH PDF Print: monochrome and no frame options. +- Compress: + + - Now you can compress files relative to the current working + directory. So you can create a compressed file containing the + source schematic and PCB files. (#93) + - Added an option to remove the files we compressed. (#192) + +- Support for new KiCost options ``split_extra_fields`` and + ``board_qty``. (#120) +- Position files now can include virtual components. (#106) +- Support for ``--subst-models`` option for KiCad 6’s kicad2step. + (#137) + +.. _changed-7: + +Changed +~~~~~~~ + +- Internal BoM: now components with different Tolerance, Voltage, + Current and/or Power fields aren’t grouped together. These fields are + now part of the default ``group_fields``. (#79) +- JLCPCB example, to match current recommendations + (g200kg/kicad-gerberzipper#11) +- Internal BoM: the field used for variants doesn’t produce conflicts. + (#100) +- The ``%v/%V`` expansion patterns now expand to the global variant + when used in a context not related to variants. I.e. when a + ``compress`` target expands ``%v``. +- Now you get an error when defining two outputs with the same name. +- The ``%d/%sd/%bd`` expansion patterns are now affected by the global + ``date_format``. Can be disabled using ``date_reformat: false``. + (#121) +- The default output pattern now includes the ``output_id`` (%I) +- The ``source`` path for ``compress`` now has pattern expansion (#152) + +.. _fixed-10: + +Fixed +~~~~~ + +- Position files now defaults to use the auxiliary origin as KiCad. Can + be disabled to use absolute coordinates. (#87) +- Board View: + + - flipped output. (#89) + - problems with netnames using spaces. (#90) + - get_targets not implemented. (#167) + +- Schematic + + - load: problems with fields containing double quotes. (#98) + - Paper orientation was discarded on v5 files. (#150) + +- ``--list``: problems with layers and fields specific for the project. + (INTI-CMNB/kibot_variants_arduprog#4) +- Makefile: %VALUE not expanded in the directory targets. +- KiCost variants: + + - empty DNF fields shouldn’t be excluded. (#101) + - problems when setting a field in a variant that doesn’t exist when + no variant is selected. (#105) + +- KiCost: list arguments wrongly passed. (#120) +- PCB Print: to show the real name of the PCB file. (#102) +- Compress: not expanding %VALUES in target dirs. (#111) +- Gerber: job file didn’t use the global output pattern. (#116) +- Warnings count +- Update XML: Removed the side effect Bom. (#106) +- Problems when using a hidden config file, using an output that needs + the SCH, not specifying the SCH and more than one SCH was found. + (#138) +- 3D: problems to download 3D models for native KiCad 6 files. (#171) + (not imported from KiCad 5) +- Problems when using page layout files with relative paths. (#174) + +.. _section-12: + +[0.11.0] - 2021-04-25 +--------------------- + +.. _added-11: + +Added +~~~~~ + +- ``erc_warnings`` preflight option to consider ERC warnings as errors. +- Pattern expansion in the ``dir`` option for outputs (#58) +- New filter types: + + - ``suparts``: Adds support for KiCost’s subparts feature. + - ``field_rename``: Used to rename schematic fields. + - ``var_rename_kicost``: Like ``var_rename`` but using KiCost + mechanism. + +- New KiCost variant style. +- ``skip_if_no_field`` and ``invert`` options to the regex used in the + generic filter. +- Board view file format export (#69) +- Experimental mechanism to change 3D models according to the variant. +- Support for width, style and color in “wire notes” (#70) +- Level and comment to columns in the XLSX BoM output. +- Basic KiCost support (**experimental**). +- Basic internal BoM and KiCost integration (**experimental**). + +.. _changed-8: + +Changed +~~~~~~~ + +- Errors and warnings from KiAuto now are printed as errors and + warnings. +- Schematic dependencies are sorted in the generated Makefiles. +- Makefile variables KIBOT, DEBUG and LOGFILE can be defined from + outside. +- Reference ranges of two elements no longer represented as ranges. + Examples: “R1-R2” is now “R1 R2”, “R1-R3” remains unchanged. + +.. _fixed-11: + +Fixed +~~~~~ + +- Problem when using E/DRC filters and the output dir didn’t exist. +- Not all errors during makefile generation were caught (got a stack + trace). +- Output dirs created when generating a makefile for a compress target. +- Problems with some SnapEDA libs (extra space in lib termination tag + #57) +- The “References” (plural) column is now coloured as “Reference” + (singular) + +.. _section-13: + +[0.10.1] - 2021-02-22 +--------------------- + +.. _added-12: + +Added +~~~~~ + +- GitLab CI workaround +- Verbosity level is now passed to KiAuto + +.. _section-14: + +[0.10.0-4] - 2021-02-16 +----------------------- + +.. _fixed-12: + +Fixed +~~~~~ + +- Problem using Python 3.6 (ZipFile’s compresslevel arg needs 3.7) + +.. _section-15: + +[0.10.0-3] - 2021-02-16 +----------------------- + +.. _fixed-13: + +Fixed +~~~~~ + +- Problem using Python 3.6 (StreamHandler.setStream introduced in 3.7) + +.. _section-16: + +[0.10.0-2] - 2021-02-12 +----------------------- + +.. _fixed-14: + +Fixed +~~~~~ + +- Missing python3-distutils dependency on Debian package. + +.. _section-17: + +[0.10.0] - 2021-02-12 +--------------------- + +.. _added-13: + +Added +~~~~~ + +- The multipart id to references of multipart components others than + part 1. +- Internal BoM: + + - ``no_conflict`` option to exclude fields from conflict detection. + - HTML tables can be sorted selecting a column (Java Script). + - You can consolidate more than one project in one BoM. + +- Support for KICAD_CONFIG_HOME defined from inside KiCad. +- Now layers can be selected using the default KiCad names. +- More control over the name of the drill and gerber files. +- More options to customize the excellon output. +- Custom reports for plot outputs (i.e. custom gerber job generation) +- Example configurations for gerber and drill files for: + + - `Elecrow `__ + - `FusionPCB `__ + - `JLCPCB `__ + - `P-Ban `__ + - `PCBWay `__ + +- Support for ZIP/TAR/RAR generation. +- Makefile generation. +- KiAuto time-out control. +- Now you can import outputs from another config file. + +.. _changed-9: + +Changed +~~~~~~~ + +- Now the default output name applies to the DRC and ERC report names. + This provides more coherent file names. +- Internal BoM: The “Quantity” column no longer includes the DNF/C + status. This status was moved to a separated column named ``Status``. + You can join both columns if you want. +- Internal BoM: HTML rows are highlighted on hover (not just the cell). +- Now information messages go to stdout (not stderr). Debug, warning + and error messages still use stderr. +- Now InteractiveHtmlBom can be installed just as a plugin. + +.. _fixed-15: + +Fixed +~~~~~ + +- Extra data about drill marks in gerber files. +- Problems using internal names for drill maps in gerb_drill output + (#47). +- Problems using layer suffixes containing non-ASCII chars + (i.e. UTF-8). +- Problems when using components with more than 10 subparts. + +.. _section-18: + +[0.9.0] - 2021-01-04 +-------------------- + +.. _added-14: + +Added +~~~~~ + +- iBoM output: file name patterns are allowed for the ``netlist_file`` + option. +- File name patterns: %F is the name of the source file without + extension, but with the path. +- A hint for pip installations without using ``--no-compile``. +- Support to field overwrite according to variant. +- Support to generate negative X positions for the bottom layer. +- A filter to rotate footprints in the position file (#28). +- The step output now can download missing 3D models. + +.. _changed-10: + +Changed +~~~~~~~ + +- Now position files are naturally sorted (R10 after R9, not after R1) +- Position files in CSV format quotes only the columns that could + contain an space. Just like KiCad does. + +.. _fixed-16: + +Fixed +~~~~~ + +- Now we support missing field names in schematic library entries. +- Generic filter ``include_only`` option worked only when debug + enabled. + +.. _section-19: + +[0.8.1] - 2020-12-09 +-------------------- + +.. _added-15: + +Added +~~~~~ + +- Internal BoM HTML: highlight cell when hover. +- Internal BoM HTML: allow to jump to REF of row number using anchors. + +.. _fixed-17: + +Fixed +~~~~~ + +- Internal BoM separator wasn’t applied when using ``use_alt`` +- Problems loading plug-ins when using ``pip``. + +.. _section-20: + +[0.8.0] - 2020-11-06 +-------------------- + +.. _added-16: + +Added +~~~~~ + +- The KiBoM and internal BoM generators now support configuring the + separator used for the list of references. +- Help for filters and variants. +- Support for new ``pcbnew_do export`` options. +- Filters for KiBot warnings. +- Columns in position files can be selected, renamed and sorted as you + like. + +.. _fixed-18: + +Fixed +~~~~~ + +- KiBom variants when using multiple variants and a component uses more + than one, specifying opposite rules. +- Problems when using the ``pdf_pcb_print`` output and variants to + remove a component with ridiculous pads that only has solder paste + (no copper, nor even solder mask aperture). +- Excellon drill output when using unified output and not using default + KiCad names. + +.. _section-21: + +[0.7.0] - 2020-09-11 +-------------------- + +.. _added-17: + +Added +~~~~~ + +- Now variants are separated entities. Two flavors implemented: KiBoM + and IBoM. +- New filters entities. They work in complement with variants. All the + filtering functionality found in KiBoM and IBoM is supported. +- Most outputs now supports variants. You can: + + - Mark not fitted components with a cross in the schematic + - Mark not fitted components with a cross in the \*.Fab layers of + the PCB + - Remove solder paste from not fitted components + - Remove adhesive glue from not fitted components + - Exclude components from the BoM (also mark them as DNF and/or DNC + (Do Not Change)) + - Exclude components from the interactive BoM + - Remove not fitted components from the STEP file + - Exclude components from the position (pick & place) file + +- Default output file name format and default variant can be specified + from the command line. + +.. _fixed-19: + +Fixed +~~~~~ + +- Virtual components are always excluded from position files. Note you + can change it using the variants mechanism. + +.. _section-22: + +[0.6.2] - 2020-08-25 +-------------------- + +.. _changed-11: + +Changed +~~~~~~~ + +- Discarded spaces at the beginning and end of user fields when + creating the internal BoM. They are usually mistakes that prevents + grouping components. + +.. _fixed-20: + +Fixed +~~~~~ + +- The variants logic for BoMs when a component requested to be only + added to more than one variant. +- Removed warnings about malformed values for DNF components indicating + it in its value. +- Problems with PcbDraw when generating PNG and JPG outputs. Now we use + a more reliable conversion method when available. + +.. _section-23: + +[0.6.1] - 2020-08-20 +-------------------- + +.. _added-18: + +Added +~~~~~ + +- More robust behavior on GUI dependent commands. + +.. _changed-12: + +Changed +~~~~~~~ + +- Incorporated mcpy, no longer a dependency. + +.. _fixed-21: + +Fixed +~~~~~ + +- Problems when using ``pip install`` without –no-compile. At least for + user level install. + +.. _section-24: + +[0.6.0] - 2020-08-18 +-------------------- + +.. _added-19: + +Added +~~~~~ + +- Internal BoM generator, based on KiBoM code. This generator doesn’t + need the netlist, works directly from the SCH. It features enhanced + HTML and XLSX outputs, in addition to the CSV, TSV, TXT and XML + traditional outputs. +- Support for full KiBoM configuration from the YAML +- Added output to print to an SVG file. +- Added default output file name pattern. Can be applied to all + outputs. +- Unified output name: + + - ``pdf_pcb_print.output`` can be used instead of + ``pdf_pcb_print.output_name`` + - ``gerber.gerber_job_file`` option to control the gerber job file + name. + - ``output`` option to control the file name to all plot output + formats. + - ``drill``, ``drill.map`` and ``position`` file names can be + configured. + - Output file names supports expansion of various interesting values + (base name, sheet title, revision, etc.). + +- The filters now accept the following aliases (suggested by @leoheck): + + - ``filter_msg`` -> ``filter`` + - ``error_number`` -> ``number`` + - ``regexp`` -> ``regex`` + +.. _changed-13: + +Changed +~~~~~~~ + +- Default file names for: + + - pdf_pcb_print: includes the used layers + - drill maps: uses drill instead of drl + - drill: uses drill instead of drl, used in gbr and drl. + - position: no -pos in CSVs + - step: adds -3D + - pdf_sch_print: adds -schematic + - IBoM: contains the project name. + +.. _section-25: + +[0.5.0] - 2020-07-11 +-------------------- + +.. _changed-14: + +Changed +~~~~~~~ + +- Removed the “plot” option “check_zone_fills”. Use the preflight + option. +- Drill outputs: map.type and report.filename now should be map and + report. The old mechanism is currently supported, but deprecated. +- Now the command line usage is more clearly documented, but also more + strict. +- The –list option doesn’t need a PCB file anymore. Note that passing + it is now considered an error. +- Now we test the PCB and/or SCH only when we are doing something that + needs them. + +.. _added-20: + +Added +~~~~~ + +- The layers entry is much more flexible now. Many changes, read the + README.md +- PcbDraw output. +- -e/–schematic option to specify any schematic (not just derived from + the PCB name. +- -x/–example option to generate a complete configuration example. +- –example supports –copy-options to copy the plot options from the PCB + file. +- Help for the supported outputs (–help-list-outputs, –help-outputs and + –help-output) +- Help for the supported preflights (–help-preflights) +- Better YAML validation. +- Added HPGL options: + + - pen_number + - pen_speed + +- Added metric_units to DXF options +- Added KiBoM options + + - number + - variant + - conf + - separator + +- Added the following InteractiveHtmlBom options: + + - dark_mode + - hide_pads + - show_fabrication + - hide_silkscreen + - highlight_pin1 + - no_redraw_on_drag + - board_rotation + - checkboxes + - bom_view + - layer_view + - include_tracks + - include_nets + - sort_order + - no_blacklist_virtual + - blacklist_empty_val + - netlist_file + - extra_fields + - normalize_field_case + - variant_field + - variants_whitelist + - variants_blacklist + - dnp_field + +.. _fixed-22: + +Fixed +~~~~~ + +- The ``sketch_plot`` option is now implemented. +- ‘ignore_unconnected’ preflight wasn’t working. +- The report of hwo many ERC/DRC errors we found. + +.. _section-26: + +[0.4.0] - 2020-06-17 +-------------------- + +.. _added-21: + +Added +~~~~~ + +- STEP 3D model generation +- Support for unpatched InteractiveHtmlBom + +.. _section-27: + +[0.3.0] - 2020-06-14 +-------------------- + +.. _added-22: + +Added +~~~~~ + +- Better debug information when a BoM fails to be generated. +- Support for compressed YAML files. + +.. _changed-15: + +Changed +~~~~~~~ + +- Allow operations that doesn’t involve a PCB to run if the PCB file is + missing or corrupted. +- The ‘check_zone_fills’ option is now independent of ‘run_drc’ + +.. _fixed-23: + +Fixed +~~~~~ + +- Error codes that overlapped. + +.. _section-28: + +[0.2.5] - 2020-06-11 +-------------------- + +.. _added-23: + +Added +~~~~~ + +- Tolerate config files without outputs +- Mechanism to filter ERC/DRC errors + +.. _fixed-24: + +Fixed +~~~~~ + +- All pcbnew plot formats generated gerber job files +- Most formats that needed layers didn’t complain when omitted + +.. _section-29: + +[0.2.4] - 2020-05-19 +-------------------- + +.. _changed-16: + +Changed +~~~~~~~ + +- Now kicad-automation-scripts 1.3.1 or newer is needed. + +.. _fixed-25: + +Fixed +~~~~~ + +- Problems for kibom and print_sch outputs when the PCB name included a + path. + +.. _section-30: + +[0.2.3] - 2020-04-23 +-------------------- + +.. _added-24: + +Added +~~~~~ + +- List available targets + +.. _section-31: + +[0.2.2] - 2020-04-20 +-------------------- + +.. _fixed-26: + +Fixed +~~~~~ + +- KiBoM temporal files, now removed +- preflight tasks that didn’t honor –out-dir + +.. _section-32: + +[0.2.1] - 2020-04-18 +-------------------- + +.. _fixed-27: + +Fixed +~~~~~ + +- Problem when the excellon drill target directory didn’t exist (now + created) + +.. _section-33: + +[0.2.0] - 2020-03-28 +-------------------- + +.. _added-25: + +Added +~~~~~ + +- Documentation for current functionality +- Now the -b and -c options are optional, we guess the values +- Inner layers sanitation, support for the names used in the PCB file +- Better error report +- Print the PCB and SCH in PDF format (we had plot) +- KiBoM and InteractiveHtmlBoM support +- Pre-flight: generation of the BoM in XML format +- Pre-flight: DRC and ERC +- Option to skip preflight actions +- Option to select which outputs will be generated +- Progress information +- –version option + +.. _fixed-28: + +Fixed +~~~~~ + +- Debian dependencies + +.. _section-34: + +[0.1.1] - 2020-03-13 +-------------------- + +.. _added-26: + +Added +~~~~~ + +- Pick & place position +- Debian package +- Gerber job generation diff --git a/docs/source/conf.py b/docs/source/conf.py index c9e9de9e..a4fe4e2e 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -78,7 +78,7 @@ if branch == 'HEAD': if branch != "master": doc_id = ("**This is the documentation for the current development KiBot, not yet released. " - "To know what changed see the** `changelog `__") + "To know what changed see the** :ref:`Changelog`") else: doc_id = (f"**This is the documentation for KiBot v{release} for the current development read** " "`here `__") diff --git a/docs/source/index.rst b/docs/source/index.rst index 4a6734a8..a3adab6f 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -39,6 +39,7 @@ KiBot (formerly KiPlot) notes_3d propose KiPlotYAML + Changelog .. toctree:: :maxdepth: 2