← Back to team overview

kicad-developers team mailing list archive

Re: Kicad 6 API


Hi Conrad,

On 13.07.20 14:48, Conrad Wood wrote:

> I am keen on generating the outputs for manufacturing and documentation
> (e.g. circuit diagram pdfs, rendered 3d-view of pcb) as part of a git
> hook.

There is still some UI code inside the data representation, so for now
scripting can only control a GUI instance. This is kind of annoying for
git hooks as you need to set up a fake display server.

> I've seen various 'hacks' out there to provide a graphical 'diff'. I
> would like to see the API either provide means to do a diff on two
> commits of the same repository, graphical or otherwise, in such a way
> that it can be integrated into a web-based process.
> (with "diff" I mean a method to see where and what changes were made in
> two versions by a person not trained to do PCB design. - this is mostly
> to review changes and spot unintended modifications)

diff/merge is non-trivial, because PCB structures are three-dimensional
while files are one-dimensional strings of bytes. Anything that is able
to generate meaningful diffs would need to fully understand the files,
not just look for similarities.

> On bigger/complex boards, there are often 'sections' which are handled
> by exports. for example, radio vs memory/cpu vs powersupply. It would
> absolutely awesome if we can progress KiCad to support such teams. In
> my mind, I am thinking of a KiCad server which serves clients and
> sections can be 'locked' and worked on simultaneously. Simultaneously I
> mean, with changes being propagated to each KiCad Client in real-time.

That is partially a function of diff/merge, and also requires more of a
notification system than we currently have (basically, we know to update
*the* view when data changes, but we'd need to track multiple views on
the data and add a way for data modifications to fail because of
conflicts -- plus UI presentation for that.

That would require a lot of changes to internals.


Attachment: signature.asc
Description: OpenPGP digital signature

Follow ups