Following up on this to note that I've started adding some documentation for plugin developers here: https://dev-docs.kicad.org/en/apis-and-binding/ipc-api/for-addon-developers/index.html
On Sat, Dec 21, 2024 at 10:24 AM Jon Evans <[email protected]> wrote: > Hi folks, > > With the release of 9.0.0-rc1 coming this weekend, I've also released the > first version of the Python supporting library > <https://pypi.org/project/kicad-python/> for it. > > There is currently no documentation for this, but if you're the kind of > person who is happy to work with just the code as documentation, consider > this an invitation to start playing around with it (especially if you have > developed plugins for the SWIG bindings in the past and want to try porting > them over). > > There will be more formal public announcements of this along with some > documentation when 9.0 stable is released, but for now here are some quick > answers to FAQ: > > - The SWIG bindings are not being removed in 9.0. They will be removed > once we are confident that all existing use cases are covered by new > functionality. The earliest this would happen is 10.0, but it's tied to > that confidence, not a specific release version. > > - The IPC API requires that KiCad be running to communicate with it. It > only supports "plug-in to the KiCad UI" use cases at the moment. It does > not support some current use-cases of the SWIG bindings at the moment, such > as opening/manipulating/exporting KiCad board files without KiCad actually > being running. We have plans to support this kind of use in the future, > but not initially in 9.0. > > - The IPC API does not support any plotting/exporting functionality at the > moment. We recommend using kicad-cli for this functionality. > > - The IPC API in 9.0 has focused on replicating the functionality > currently available to SWIG action plugins. It does not add very many new > features yet, and it does not yet support the schematic editor or library > editors. > > - Python plugins using the IPC API can run with any Python interpreter on > the user's system (currently supporting between version 3.9 and 3.12; 3.13 > doesn't work yet due to a dependency issue). KiCad has an experimental > feature to automatically manage virtual environments and dependencies for > Python-based plugins. This works if binary wheels for all required > dependencies are available for the user's platform. There is not yet any > good user-facing error reporting for handling cases when dependencies can't > be installed automatically. > > - There is an experimental Rust binding, but I haven't had the time to > maintain it recently. I still plan to get back to it, but don't expect > feature parity with the Python bindings anytime soon. > > -Jon > -- You received this message because you are subscribed to the Google Groups "KiCad Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/a/kicad.org/d/msgid/devlist/CA%2BqGbCCrT%2Bpuh%3D3OG8%3DfQLGX1xMHPj4M9hx%2BHyO7e5bCgjHogw%40mail.gmail.com.
