← Back to team overview

kicad-developers team mailing list archive

EESCHEMA: New design for a distributed library management system.


Hey Guys,

After a significant wait, I actually did follow through and put together my thoughts
on a distributed library managment system for EESCHEMA.  Eventually some of these
design ideas could be used on PCBNEW also, but that is not happening yet.

I have been thinking about this design for approximately a year.  Then 3 months ago
began discussing it on the list.  Wayne has been very supportive, and then advanced
beyond that and actually offered to write the part description grammar spec.

Since then, we have been discussing this when we have time, and he has that second
part of the design nearly ready to go in the form of the part description language
spec, tentatively name "Sweet".

There are actually 3 new main concepts being introduced at once:

1) Distributed libraries, with an *abstract* library API.
2) Parts List.
3) Part description language.

Taken together, it will basically mean rewriting EESCHEMA to implement all three
concepts, and I don't think any one of the concepts can be done without the other two.

Wayne and I will be busy over the Christmas holidays, others are welcome to join in. 
In advance of that work, if you feel you can contribute any improvements to the
concepts please let me know soon.

I will be coding the LIB manager and at least one or two LIB_SOURCEs, and the
PARTS_LIST over the holidays, hopefully. 

If there is enough time, and assuming Wayne can do the part parsing and get it to me
on time, I will also do a preliminary text driven GUI which calls the parser to draw a
part on screen, and at that time I'd like to take a look at Torsten's GAL to do the
graphics portion of it.  It is only a single panel, not a significant commitment to
the GAL, but an experiment.  The test tool will not initially support GUI editing,
only GUI display of what is parsed in text, per previous discussion on this list.  

You remember how some HTML editors allow you to edit the HTML source and then display
the GUI in another panel.  I think inkscape may have a similar mode, editing SVG as
text, then displaying it. 

Hopefully Sweet will be easy enough to edit in this way, TBD.

To get a look at the distributed library management design, run doxygen on the
design.h file in /new, or use the script in there to do that.  Output HTML goes into
new/html.  Be sure not to miss the block diagram graphic at the bottom of the main page.


Follow ups