Skip to content

Release 1.0.0#1

Merged
Kampi merged 14 commits into
ZSWatch:mainfrom
Kampi:1.0.0_Dev
Feb 20, 2026
Merged

Release 1.0.0#1
Kampi merged 14 commits into
ZSWatch:mainfrom
Kampi:1.0.0_Dev

Conversation

@Kampi
Copy link
Copy Markdown
Collaborator

@Kampi Kampi commented Nov 15, 2025

No description provided.

@Kampi Kampi added bug Something isn't working documentation Improvements or additions to documentation duplicate This issue or pull request already exists labels Nov 15, 2025
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Nov 15, 2025

Important

Review skipped

Too many files!

This PR contains 179 files, which is 29 over the limit of 150.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Kampi Kampi force-pushed the 1.0.0_Dev branch 3 times, most recently from e879290 to 966ae83 Compare February 10, 2026 11:44
@Kampi Kampi force-pushed the 1.0.0_Dev branch 10 times, most recently from ffc0726 to bf7b986 Compare February 20, 2026 14:04
Signed-off-by: Daniel Kampert <danielkampert@kampis-elektroecke.de>
@Kampi Kampi marked this pull request as ready for review February 20, 2026 14:47
Copilot AI review requested due to automatic review settings February 20, 2026 14:47
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds the initial “Release 1.0.0” content for the KiCad extension project, including KiCad title block templates, KiBot configuration/resources, and GitHub Actions workflows to generate and publish production outputs.

Changes:

  • Added multiple KiCad worksheet templates (A3/A4/A5 + Git variants) and schematic helper sheets.
  • Added KiBot configuration (preflights, outputs, filters), resources (themes/templates/scripts), and a local launch script.
  • Added CI workflows for changelog validation and production output generation + release packaging.

Reviewed changes

Copilot reviewed 79 out of 908 changed files in this pull request and generated 13 comments.

Show a summary per file
File Description
extension/templates/KDT_Template_PCB_GIT_A4.kicad_wks New PCB worksheet template including Git hash field (A4).
extension/templates/KDT_Template_PCB_GIT_A3.kicad_wks New PCB worksheet template including Git hash field (A3).
extension/templates/KDT_Template_PCB_A5.kicad_wks New PCB worksheet template (A5).
extension/templates/KDT_Template_PCB_A4.kicad_wks New PCB worksheet template (A4).
extension/templates/KDT_Template_PCB_A3.kicad_wks New PCB worksheet template (A3).
extension/templates/KDT_Template_GIT.kicad_wks New worksheet template including schematic Git hash.
extension/templates/KDT_Template.kicad_wks New base worksheet template.
extension/meta/info.html Extension metadata HTML (description page).
extension/kibot_yaml/kicost_config_local.yaml Local KiCost configuration stub for spreadsheet costing.
extension/kibot_yaml/kibot_pre_set_text_variables.yaml Preflight to set KiCad text variables (git/meta/changelog/sheet names).
extension/kibot_yaml/kibot_pre_include_table.yaml Preflight include-table configuration template.
extension/kibot_yaml/kibot_pre_erc_report.yaml ERC report preflight configuration.
extension/kibot_yaml/kibot_pre_drc_report.yaml DRC report preflight configuration.
extension/kibot_yaml/kibot_pre_draw_stackup.yaml Preflight to draw stackup table based on gerbers.
extension/kibot_yaml/kibot_out_xlsx_bom.yaml Output definition for XLSX BOM with KiCost integration.
extension/kibot_yaml/kibot_out_txt_report.yaml Output definition for TXT reports (notes).
extension/kibot_yaml/kibot_out_step.yaml Output definition for STEP export.
extension/kibot_yaml/kibot_out_sch_variant.yaml Output definition for schematic variant (value splitting).
extension/kibot_yaml/kibot_out_production_doc.yaml Output definition for copying production docs.
extension/kibot_yaml/kibot_out_png_3d_viewer.yaml Output definition for 3D viewer PNG renders.
extension/kibot_yaml/kibot_out_pdf_schematic.yaml Output definition for schematic PDF prints.
extension/kibot_yaml/kibot_out_pdf_fabrication.yaml Output definition for fabrication PDF package.
extension/kibot_yaml/kibot_out_pdf_assembly.yaml Output definition for assembly PDF package.
extension/kibot_yaml/kibot_out_odb.yaml Output definition for ODB++ archives.
extension/kibot_yaml/kibot_out_netlist.yaml Output definition for KiCad netlist export.
extension/kibot_yaml/kibot_out_navigate_results.yaml Output definition for HTML “navigate results” page.
extension/kibot_yaml/kibot_out_md_report.yaml Output definition for markdown report (README).
extension/kibot_yaml/kibot_out_logo_copy.yaml Output definition to copy logo assets into outputs.
extension/kibot_yaml/kibot_out_html_kiri.yaml Output definition for KiRi diff viewer HTML.
extension/kibot_yaml/kibot_out_html_kicanvas.yaml Output definition for KiCanvas output.
extension/kibot_yaml/kibot_out_html_ibom.yaml Output definition for interactive BOM HTML.
extension/kibot_yaml/kibot_out_html_bom.yaml Output definition for BOM HTML.
extension/kibot_yaml/kibot_out_gerber.yaml Output definition for Gerber plot generation.
extension/kibot_yaml/kibot_out_excellon_drill.yaml Output definition for Excellon drill outputs + maps.
extension/kibot_yaml/kibot_out_csv_testpoints_simple.yaml Output definition for simplified testpoint CSV.
extension/kibot_yaml/kibot_out_csv_testpoints.yaml Output definition for detailed testpoint CSV.
extension/kibot_yaml/kibot_out_csv_report.yaml Output definition for generic CSV reports.
extension/kibot_yaml/kibot_out_csv_pos.yaml Output definition for placement/position (CPL) CSV.
extension/kibot_yaml/kibot_out_csv_drill_table.yaml Output definition for drill table CSV.
extension/kibot_yaml/kibot_out_csv_bom.yaml Output definition for BOM CSV.
extension/kibot_yaml/kibot_out_compress_fab.yaml Output definition to zip fabrication deliverables.
extension/kibot_yaml/kibot_out_blender.yaml Output definition for Blender export/render pipeline.
extension/kibot_yaml/kibot_main.yaml Main KiBot orchestration: groups, imports, definitions, variants.
extension/kibot_yaml/kibot_globals.yaml KiBot global settings and warning filters.
extension/kibot_yaml/kibot_filt_testpoints.yaml Filter definition for selecting testpoints.
extension/kibot_yaml/kibot_filt_field_rename.yaml Filter definition for renaming manufacturer fields.
extension/kibot_yaml/kibot_filt_exclude_testpoints.yaml Filter definition for excluding testpoints.
extension/kibot_resources/templates/readme.txt Template used to generate README.md during CI.
extension/kibot_resources/templates/impedance_table.txt CSV header template for impedance table report.
extension/kibot_resources/templates/fabrication_notes.txt Fabrication notes template for output reports.
extension/kibot_resources/templates/assembly_notes.txt Assembly notes template for output reports.
extension/kibot_resources/scripts/get_sheet_title.py Script to extract sheet titles from KiCad XML.
extension/kibot_resources/scripts/get_changelog_version.py Script to infer latest version string from changelog.
extension/kibot_resources/scripts/get_changelog.py Script to extract changelog title/body for a version.
extension/kibot_resources/scripts/docker_kibot_windows.bat Helper script to run KiBot container on Windows.
extension/kibot_resources/scripts/docker_kibot_linux.sh Helper script to run KiBot container on Linux.
extension/kibot_resources/colors/Altium_Theme.json KiCad color theme used by plot/print outputs.
extension/kibot_launch.sh Local helper script to run KiBot and optionally serve outputs.
extension/Revision History.kicad_sch New schematic sheet for release notes / revision history.
extension/README.md Generated/readme-like content for the extension project folder.
extension/CHANGELOG.md Changelog for the extension project folder.
extension/Block Diagram.kicad_sch New block diagram sheet.
extension/.gitignore KiCad-focused ignore rules for the extension subproject.
docs/ZSWatch Extension.drawio Documentation diagram for the extension.
README.md Root project README introducing the hardware + pipeline.
.github/workflows/extension.yaml CI workflow to build outputs and create releases.
.github/workflows/changelog-check.yaml CI workflow to validate CHANGELOG formatting.
.github/FUNDING.yml Funding configuration for GitHub.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +39 to +46
- variable: '@RELEASE_TITLE_VAR@1.3.0'
command: '@GET_TITLE_CMD@ 1.3.0'
- variable: '@RELEASE_BODY_VAR@1.3.0'
command: '@GET_BODY_CMD@ 1.3.0'

# - variable: '@RELEASE_TITLE_VAR@x.y.z'
# command: '@GET_TITLE_CMD@ x.y.z'
# - variable: '@RELEASE_BODY_VAR@x.y.z'
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These variable names expand into text variables that appear to include dots and/or mixed tokens (e.g., RELEASE_BODY_1.3.0). KiCad text variable names typically need to be simple identifiers (commonly [A-Za-z_][A-Za-z0-9_]*), and dotted names may not resolve in schematics/worksheets. Consider switching to underscore-only identifiers (e.g., RELEASE_BODY_1_3_0) and keeping the placeholder expansion out of the final variable name.

Suggested change
- variable: '@RELEASE_TITLE_VAR@1.3.0'
command: '@GET_TITLE_CMD@ 1.3.0'
- variable: '@RELEASE_BODY_VAR@1.3.0'
command: '@GET_BODY_CMD@ 1.3.0'
# - variable: '@RELEASE_TITLE_VAR@x.y.z'
# command: '@GET_TITLE_CMD@ x.y.z'
# - variable: '@RELEASE_BODY_VAR@x.y.z'
- variable: '@RELEASE_TITLE_VAR@1_3_0'
command: '@GET_TITLE_CMD@ 1.3.0'
- variable: '@RELEASE_BODY_VAR@1_3_0'
command: '@GET_BODY_CMD@ 1.3.0'
# - variable: '@RELEASE_TITLE_VAR@x_y_z'
# command: '@GET_TITLE_CMD@ x.y.z'
# - variable: '@RELEASE_BODY_VAR@x_y_z'

Copilot uses AI. Check for mistakes.
Comment on lines +49 to +52
- variable: '@RELEASE_TITLE_VAR@UNRELEASED'
command: '@GET_TITLE_CMD@ Unreleased'
- variable: '@RELEASE_BODY_VAR@UNRELEASED'
command: '@GET_BODY_CMD@ Unreleased'
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These variable names expand into text variables that appear to include dots and/or mixed tokens (e.g., RELEASE_BODY_1.3.0). KiCad text variable names typically need to be simple identifiers (commonly [A-Za-z_][A-Za-z0-9_]*), and dotted names may not resolve in schematics/worksheets. Consider switching to underscore-only identifiers (e.g., RELEASE_BODY_1_3_0) and keeping the placeholder expansion out of the final variable name.

Copilot uses AI. Check for mistakes.
)
(uuid "0c062e2b-2be1-4307-b752-045c211787f4")
)
(text_box "${RELEASE_BODY_1.0.0}"
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The schematic references RELEASE_BODY_1.0.0 / RELEASE_TITLE_1.0.0, but the KiBot set_text_variables config (in kibot_pre_set_text_variables.yaml) currently sets ...1.3.0 and ...UNRELEASED only. As-is, these boxes will not get populated. Align the configured variables with the schematic (or make the schematic use the configured variables) so release notes render correctly.

Suggested change
(text_box "${RELEASE_BODY_1.0.0}"
(text_box "${RELEASE_BODY_1.3.0}"

Copilot uses AI. Check for mistakes.
)
(uuid "9af8400a-3034-4071-a364-608020db49d5")
)
(text_box "${RELEASE_TITLE_1.0.0}"
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The schematic references RELEASE_BODY_1.0.0 / RELEASE_TITLE_1.0.0, but the KiBot set_text_variables config (in kibot_pre_set_text_variables.yaml) currently sets ...1.3.0 and ...UNRELEASED only. As-is, these boxes will not get populated. Align the configured variables with the schematic (or make the schematic use the configured variables) so release notes render correctly.

Suggested change
(text_box "${RELEASE_TITLE_1.0.0}"
(text_box "${RELEASE_TITLE_1.3.0}"

Copilot uses AI. Check for mistakes.
dir: '@DIR@'
options:
files:
- source: Logos/ZSWatch_logo_with_text.png
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The path uses Logos/ with an uppercase L, while other files in this PR reference logos/ (lowercase) (e.g., LOGO: 'logos/ZSWatch_logo_with_text.png' in kibot_main.yaml). On case-sensitive filesystems (Linux CI), this mismatch can cause the copy step to fail or the logo to be missing. Normalize the directory casing across all references.

Suggested change
- source: Logos/ZSWatch_logo_with_text.png
- source: logos/ZSWatch_logo_with_text.png

Copilot uses AI. Check for mistakes.
Comment thread extension/meta/info.html
</head>
<body>
<h2>Vincent Nguyen - Hierarchical KiCAD Design Template for CI/CD</h2>
<p> This creates a hierachical project, with CI/CD integration using KiBot.</p>
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected spelling of 'hierachical' to 'hierarchical'.

Suggested change
<p> This creates a hierachical project, with CI/CD integration using KiBot.</p>
<p> This creates a hierarchical project, with CI/CD integration using KiBot.</p>

Copilot uses AI. Check for mistakes.
Comment thread extension/kibot_launch.sh
Comment on lines +174 to +178
echo -e "${GREEN}Running: $kibot_command1${NC}"
eval $kibot_command1
if [[ "$costs_flag" == false ]]; then
echo -e "${GREEN}Running: $kibot_command2${NC}"
eval $kibot_command2
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using eval to execute commands composed from variables makes argument handling fragile and can enable command injection if any portion becomes user-controlled (e.g., variant/version flags). Prefer building the command as an array and executing it directly (or invoking kibot with explicit arguments) to avoid shell re-interpretation.

Copilot uses AI. Check for mistakes.
--volume=/tmp/.X11-unix:/tmp/.X11-unix \
--volume="/etc/group:/etc/group:ro" \
--volume="/etc/passwd:/etc/passwd:ro" \
--volume="/etc/shadow:/etc/shadow:ro" \
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mounting /etc/shadow (even read-only) into a container is an unnecessary exposure of sensitive host data for this use case. Consider removing the /etc/shadow bind mount and using a safer approach for UID/GID mapping (e.g., --user, --userns=keep-id where available, or creating a matching user without importing shadow).

Suggested change
--volume="/etc/shadow:/etc/shadow:ro" \

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,45 @@
# KiBot output for generating CSV Tespoints
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There’s a typo in the header comment (TespointsTestpoints) and an extra trailing space in the name: Net column label. These can leak into generated documentation/files; consider correcting both.

Copilot uses AI. Check for mistakes.
Comment on lines +32 to +33
- field: Net Label
name: Net
Copy link

Copilot AI Feb 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There’s a typo in the header comment (TespointsTestpoints) and an extra trailing space in the name: Net column label. These can leak into generated documentation/files; consider correcting both.

Copilot uses AI. Check for mistakes.
Kampi and others added 2 commits February 20, 2026 15:56
Signed-off-by: Daniel Kampert <DanielKampert@kampis-elektroecke.de>
@Kampi Kampi merged commit 9a3ecc6 into ZSWatch:main Feb 20, 2026
2 checks passed
@Kampi Kampi deleted the 1.0.0_Dev branch February 20, 2026 14:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working documentation Improvements or additions to documentation duplicate This issue or pull request already exists

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants