diff --git a/docs/samples/generic_plot.kibot.yaml b/docs/samples/generic_plot.kibot.yaml index d3af46f2..4ddf2931 100644 --- a/docs/samples/generic_plot.kibot.yaml +++ b/docs/samples/generic_plot.kibot.yaml @@ -1634,6 +1634,30 @@ outputs: # [string='default'] Path to a template directory or a name of built-in one. # See KiKit's doc/present.md for template specification template: 'default' + # KiRi: + # Recursive git submodules aren't supported (submodules inside submodules) + - name: 'kiri_example' + comment: 'Generates a PDF with the differences between two PCBs or schematics.' + type: 'kiri' + dir: 'Example/kiri_dir' + options: + # [string='_builtin_classic'] Selects the color theme. Only applies to KiCad 6. + # To use the KiCad 6 default colors select `_builtin_default`. + # Usually user colors are stored as `user`, but you can give it another name + color_theme: '_builtin_classic' + # [string|list(string)='_none'] Name of the filter to mark components as not fitted. + # A short-cut to use for simple cases where a variant is an overkill + dnf_filter: '_none' + # [boolean=false] Avoid PCB and SCH images regeneration. Useful for incremental usage + keep_generated: false + # [string='%f-%i%I%v.%x'] Filename for the output (%i=diff_pcb/diff_sch, %x=pdf). Affected by global options + output: '%f-%i%I%v.%x' + # [string|list(string)='_none'] Name of the filter to transform fields before applying other filters. + # A short-cut to use for simple cases where a variant is an overkill + pre_transform: '_none' + # [string=''] Board variant to apply + variant: '' + layers: all # Navigate Results: - name: 'navigate_results_example' comment: 'Generates a web page to navigate the generated outputs' diff --git a/docs/source/configuration/outputs/kiri.rst b/docs/source/configuration/outputs/kiri.rst new file mode 100644 index 00000000..752b2ad0 --- /dev/null +++ b/docs/source/configuration/outputs/kiri.rst @@ -0,0 +1,70 @@ +.. Automatically generated by KiBot, please don't edit this file + +.. index:: + pair: KiRi; kiri + +KiRi +~~~~ + +Generates a PDF with the differences between two PCBs or schematics. +Recursive git submodules aren't supported (submodules inside submodules) + +Type: ``kiri`` + +Categories: **PCB/docs**, **Schematic/docs** + +Parameters: + +- **comment** :index:`: ` [string=''] A comment for documentation purposes. It helps to identify the output. +- **dir** :index:`: ` [string='./'] Output directory for the generated files. + If it starts with `+` the rest is concatenated to the default dir. +- **layers** :index:`: ` [list(dict)|list(string)|string] [all,selected,copper,technical,user] + List of PCB layers to use. When empty all available layers are used. + Note that if you want to support adding/removing layers you should specify a list here. + + - Valid keys: + + - ``description`` :index:`: ` [string=''] A description for the layer, for documentation purposes. + A default can be specified using the `layer_defaults` global option. + - ``layer`` :index:`: ` [string=''] Name of the layer. As you see it in KiCad. + - ``suffix`` :index:`: ` [string=''] Suffix used in file names related to this layer. Derived from the name if not specified. + A default can be specified using the `layer_defaults` global option. + +- **name** :index:`: ` [string=''] Used to identify this particular output definition. + Avoid using `_` as first character. These names are reserved for KiBot. +- **options** :index:`: ` [dict] Options for the `diff` output. + + - Valid keys: + + - **color_theme** :index:`: ` [string='_builtin_classic'] Selects the color theme. Only applies to KiCad 6. + To use the KiCad 6 default colors select `_builtin_default`. + Usually user colors are stored as `user`, but you can give it another name. + - **keep_generated** :index:`: ` [boolean=false] Avoid PCB and SCH images regeneration. Useful for incremental usage. + - **output** :index:`: ` [string='%f-%i%I%v.%x'] Filename for the output (%i=diff_pcb/diff_sch, %x=pdf). Affected by global options. + - ``dnf_filter`` :index:`: ` [string|list(string)='_none'] Name of the filter to mark components as not fitted. + A short-cut to use for simple cases where a variant is an overkill. + + - ``pre_transform`` :index:`: ` [string|list(string)='_none'] Name of the filter to transform fields before applying other filters. + A short-cut to use for simple cases where a variant is an overkill. + + - ``variant`` :index:`: ` [string=''] Board variant to apply. + +- **type** :index:`: ` [string=''] Type of output. +- ``category`` :index:`: ` [string|list(string)=''] The category for this output. If not specified an internally defined category is used. + Categories looks like file system paths, i.e. **PCB/fabrication/gerber**. + The categories are currently used for `navigate_results`. + +- ``disable_run_by_default`` :index:`: ` [string|boolean] Use it to disable the `run_by_default` status of other output. + Useful when this output extends another and you don't want to generate the original. + Use the boolean true value to disable the output you are extending. +- ``extends`` :index:`: ` [string=''] Copy the `options` section from the indicated output. + Used to inherit options from another output of the same type. +- ``groups`` :index:`: ` [string|list(string)=''] One or more groups to add this output. In order to catch typos + we recommend to add outputs only to existing groups. You can create an empty group if + needed. + +- ``output_id`` :index:`: ` [string=''] Text to use for the %I expansion content. To differentiate variations of this output. +- ``priority`` :index:`: ` [number=50] [0,100] Priority for this output. High priority outputs are created first. + Internally we use 10 for low priority, 90 for high priority and 50 for most outputs. +- ``run_by_default`` :index:`: ` [boolean=true] When enabled this output will be created when no specific outputs are requested. + diff --git a/docs/source/configuration/sup_outputs.rst b/docs/source/configuration/sup_outputs.rst index e27e3a23..70c571d5 100644 --- a/docs/source/configuration/sup_outputs.rst +++ b/docs/source/configuration/sup_outputs.rst @@ -31,6 +31,7 @@ Notes: outputs/kibom outputs/kicost outputs/kikit_present + outputs/kiri outputs/navigate_results outputs/netlist outputs/panelize diff --git a/docs/source/dependencies.rst b/docs/source/dependencies.rst index e70150e2..2e3863bd 100644 --- a/docs/source/dependencies.rst +++ b/docs/source/dependencies.rst @@ -19,6 +19,7 @@ - Compare schematics for `diff` (v2.2.0) - Show KiAuto installation information for `info` (v2.0.0) + - Compare schematics for `kiri` (v2.2.0) - Print the page frame in GUI mode for `pcb_print` (v1.6.7) `KiKit `__ :index:`: ` v1.3.0.4 |image11| |Auto-download| @@ -27,43 +28,43 @@ - Optional to separate multiboard projects for general use - Note: Official 1.3.0 release does not work, use my fork if 1.3.0 is the latest -`LXML `__ :index:`: ` |image12| |image13| |Auto-download| +`KiCad PCB/SCH Diff `__ :index:`: ` v2.5.0 |image12| |Auto-download| + +- Mandatory for: `diff`, `kiri` + +`LXML `__ :index:`: ` |image13| |image14| |Auto-download| - Mandatory for: `pcb_print`, `pcbdraw` -`OpenSCAD `__ :index:`: ` |image14| |image15| +`OpenSCAD `__ :index:`: ` |image15| |image16| - Mandatory for: `stencil_3d`, `stencil_for_jig` -`Xvfb `__ :index:`: ` |image16| |image17| +`Xvfb `__ :index:`: ` |image17| |image18| - Mandatory for: `stencil_3d`, `stencil_for_jig` -`Xvfbwrapper `__ :index:`: ` |image18| |image19| |Auto-download| +`Xvfbwrapper `__ :index:`: ` |image19| |image20| |Auto-download| - Mandatory for: `stencil_3d`, `stencil_for_jig` -`KiCost `__ :index:`: ` v1.1.8 |image20| |Auto-download| +`KiCost `__ :index:`: ` v1.1.8 |image21| |Auto-download| - Mandatory for `kicost` - Optional to find components costs and specs for `bom` -`Blender `__ :index:`: ` v3.4.0 |image21| |image22| +`Blender `__ :index:`: ` v3.4.0 |image22| |image23| - Mandatory for `blender_export` -`Interactive HTML BoM `__ :index:`: ` v2.7.0 |image23| |Auto-download| +`Interactive HTML BoM `__ :index:`: ` v2.7.0 |image24| |Auto-download| - Mandatory for `ibom` -`KiBoM `__ :index:`: ` v1.8.0 |image24| |Auto-download| +`KiBoM `__ :index:`: ` v1.8.0 |image25| |Auto-download| - Mandatory for `kibom` -`KiCad PCB/SCH Diff `__ :index:`: ` v2.4.4 |image25| |Auto-download| - -- Mandatory for `diff` - `markdown2 `__ :index:`: ` |image26| |image27| |image28| - Mandatory for `kikit_present` @@ -86,6 +87,7 @@ - Compare with files in the repo for `diff` - Find commit hash and/or date for `kikit_present` + - Compare with files in the repo for `kiri` - Find commit hash and/or date for `pcb_replace` - Find commit hash and/or date for `sch_replace` - Find commit hash and/or date for `set_text_variables` @@ -165,34 +167,34 @@ :target: https://github.com/INTI-CMNB/KiAuto .. |image11| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png :target: https://github.com/INTI-CMNB/KiKit -.. |image12| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/Python-logo-notext-22x22.png - :target: https://pypi.org/project/LXML/ -.. |image13| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png - :target: https://packages.debian.org/stable/python3-lxml -.. |image14| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png - :target: https://openscad.org/ -.. |image15| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png - :target: https://packages.debian.org/stable/openscad -.. |image16| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png - :target: https://www.x.org -.. |image17| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png - :target: https://packages.debian.org/stable/xvfb -.. |image18| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/Python-logo-notext-22x22.png - :target: https://pypi.org/project/Xvfbwrapper/ -.. |image19| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png - :target: https://packages.debian.org/stable/python3-xvfbwrapper -.. |image20| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png - :target: https://github.com/hildogjr/KiCost -.. |image21| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png - :target: https://www.blender.org/ -.. |image22| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png - :target: https://packages.debian.org/stable/blender -.. |image23| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png - :target: https://github.com/INTI-CMNB/InteractiveHtmlBom -.. |image24| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png - :target: https://github.com/INTI-CMNB/KiBoM -.. |image25| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png +.. |image12| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png :target: https://github.com/INTI-CMNB/KiDiff +.. |image13| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/Python-logo-notext-22x22.png + :target: https://pypi.org/project/LXML/ +.. |image14| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png + :target: https://packages.debian.org/stable/python3-lxml +.. |image15| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png + :target: https://openscad.org/ +.. |image16| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png + :target: https://packages.debian.org/stable/openscad +.. |image17| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png + :target: https://www.x.org +.. |image18| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png + :target: https://packages.debian.org/stable/xvfb +.. |image19| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/Python-logo-notext-22x22.png + :target: https://pypi.org/project/Xvfbwrapper/ +.. |image20| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png + :target: https://packages.debian.org/stable/python3-xvfbwrapper +.. |image21| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png + :target: https://github.com/hildogjr/KiCost +.. |image22| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png + :target: https://www.blender.org/ +.. |image23| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png + :target: https://packages.debian.org/stable/blender +.. |image24| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png + :target: https://github.com/INTI-CMNB/InteractiveHtmlBom +.. |image25| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png + :target: https://github.com/INTI-CMNB/KiBoM .. |image26| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/Python-logo-notext-22x22.png :target: https://pypi.org/project/markdown2/ .. |image27| image:: https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png diff --git a/src/kibot-check b/src/kibot-check index bad560ca..97c1b2d5 100755 --- a/src/kibot-check +++ b/src/kibot-check @@ -187,7 +187,7 @@ deps = '{\ "extra_arch": null,\ "extra_deb": null,\ "help_option": "--version",\ - "importance": 5,\ + "importance": 6,\ "in_debian": true,\ "is_kicad_plugin": false,\ "is_python": false,\ @@ -212,6 +212,13 @@ deps = '{\ "output": "kikit_present",\ "version": null\ },\ + {\ + "desc": "Compare with files in the repo",\ + "mandatory": false,\ + "max_version": null,\ + "output": "kiri",\ + "version": null\ + },\ {\ "desc": "Find commit hash and/or date",\ "mandatory": false,\ @@ -390,7 +397,7 @@ deps = '{\ "extra_arch": null,\ "extra_deb": null,\ "help_option": "--version",\ - "importance": 150003,\ + "importance": 150004,\ "in_debian": false,\ "is_kicad_plugin": false,\ "is_python": false,\ @@ -456,6 +463,17 @@ deps = '{\ 0\ ]\ },\ + {\ + "desc": "Compare schematics",\ + "mandatory": false,\ + "max_version": null,\ + "output": "kiri",\ + "version": [\ + 2,\ + 2,\ + 0\ + ]\ + },\ {\ "desc": null,\ "mandatory": true,\ @@ -614,7 +632,7 @@ deps = '{\ "extra_arch": null,\ "extra_deb": null,\ "help_option": "--version",\ - "importance": 10000,\ + "importance": 20000,\ "in_debian": false,\ "is_kicad_plugin": false,\ "is_python": false,\ @@ -635,6 +653,17 @@ deps = '{\ 4,\ 4\ ]\ + },\ + {\ + "desc": null,\ + "mandatory": true,\ + "max_version": null,\ + "output": "kiri",\ + "version": [\ + 2,\ + 5,\ + 0\ + ]\ }\ ],\ "tests": [],\