Add example packaging for use in Plugin and Content Manager
Summary
We would like to bundle our IPC addon as a single file that can be installed using the Plugin and Content Manager Install from File... method.
The current examples in the repository assume:
For the plugins, copy or symlink them into the appropriate plugins path in order for KiCad to find them.
This is nice for quick development, but we think an example or discussion specifically on how to package an IPC addon into a single self contained, KiCad-installable zip file would be great. This would make distribution smoother to end users.
This page documents the higher level Addon format
But there isn't much discussion on IPC plugins other than
runtime: (optional) (since KiCad 9.0.1) For plugin packages, this field may be set to either "ipc" or "swig" to indicate which runtime the plugin requires. If not set, the plugin will be assumed to require the SWIG (legacy) runtime.
We're struggling to understand the precise layout that is needed for the .zip. For example, there is a metadata.json file and a plugin.json file needed for IPC addons. We're planning to use "exec" runtime (building a standalone binary with PyInstaller so that everything is self contained).
An example of the structure for an IPC "exec" plugin would be useful, and I think help a lot of people out.
For example, this link: https://dev-docs.kicad.org/en/addons/index.html#_python_plugins
Doesn't show where plugin.json would go.
Version Info
Please include all the requested information below. If you do not, your issue may be closed.
- Python version: 3.11.12
-
kicad-pythonversion: 0.4.0
KiCad full version info:
Insert the output of kicad-cli version --format about, or the full KiCad version text found in
the KiCad About dialog, between the sets of triple backticks below
Application: kicad-cli arm64 on arm64
Version: 9.0.3, release build
Libraries:
wxWidgets 3.2.8
FreeType 2.13.3
HarfBuzz 10.2.0
FontConfig 2.15.0
libcurl/8.7.1 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.12 nghttp2/1.64.0
Platform: macOS Sequoia Version 15.5 (Build 24F74), 64 bit, Little endian, wxBase
Build Info:
Date: Jul 7 2025 22:10:04
wxWidgets: 3.2.8 (wchar_t,wx containers)
Boost: 1.87.0
OCC: 7.8.1
Curl: 8.7.1
ngspice: 44.2
Compiler: Clang 16.0.0 with C++ ABI 1002
KICAD_IPC_API=ON
