← Back to team overview

kicad-developers team mailing list archive

Re: Ideas for a lightweight KiCad PDM

 

On 12/6/2016 2:22 AM, Kevin Bortis wrote:
> Hi
> 
> I try to figure out how it would be possible to create a central
> storage for symbols, footprints and other design data. With central I
> mean something like a design data server, where it is possible to
> assign workflows with sign-offs, make proper versioning, assign order
> numbers and define second sources. (PDM ultra light for KiCad).
> 
> I currently work on some projects where we need to be sure that each
> change on current products gets a proper review and documentation.
> This always starts with a "Change Request", followed by a "Change
> Order". To make sure everything is right, we currently use a very
> expensive EDA suite with even more expensive PDM[2] software. Even if
> this seems overkill for private projects, a little more lighter
> version of this workflow makes sens for every company and even for
> some bigger private projects. I helps to grantees some quality and
> data integrity.

I'm fine with this but I will resist anything that imposes a work flow
on users.  Features like this tend to be very personal so I would
request that it be implemented as a plugin or a python script.  Python
scripting would require the schematic code to be swigged.  It's on our
list of things to do but it wont happen until after the new schematic
and symbol library file formats are completed.

> 
> After some analysis how KiCad does things I see some little problems.
> The first of them is described in the following lines:
> 
> Currently the footprint and soon[1] symbols will be assigned with a
> "library nickname"/"symbol name" key. This is also true for the 3D
> model inside the  footprint file. At the moment this is the only
> reference to the library. If the component in the local file storage
> changes, the symbol/footprint gets changed immediately in the project
> and that is exactly what I want to avoid. To make a server based
> library, each symbol or footprint would need a unique identifier and
> some way to define the storage location. Say instead of define
> somelibrary/symbol1 (implicit local storage) define
> srv://remote1/16fd2706-8baf-433b-82eb-8c7fada847da (explicit remote
> storage) where remote1 is a configured remote storage location in the
> app. The fully qualified address of the symbol would then be something
> like https://myserver.local/lib/uuid/16fd2706-8baf-433b-82eb-8c7fada847da
> 
> A second possibility would be to introduce a new file (symbol.origin)
> in the project folder to keep track of every remote stored file.
> 
> symbol.orign:
> somelibrary/symbol1=remote1/16fd2706-8baf-433b-82eb-8c7fada847da
> somelibrary/footprint2=remote1/23fd2706-3baf-223b-82eb-ef7fada847ac

This issue will be pretty much be solved when the new schematic file
format is introduced because symbols will be embedded in the schematic
(unless you specifically externally link them which will be an option at
some point) so they will not change when the library symbol changes.  Of
course this introduces a new problem where the user will have to update
the symbols manually at least initially.  At some point in the future we
will provide a feature for comparing symbols in the schematic against
the symbol linked to the library and inform the user of any changes.

> 
> After retrival from the central storage, I would save the symbol as
> libs/somelibrary/symbol1 locally in the project tree. This would have
> almost no impact on the KiCad code I think. A command can be
> implemented to verifiy data integrity by getting file hashes of each
> component from the central server and checking if everything is in
> sync. A second command to check if a newer version of the symbol is
> available with the option to update it. To make this work, KiCad would
> need to track the origin of every 3D model, symbol, footprint...
> 
> I would appreciate if some one has some input on this topic.
> 
>   [1] https://lists.launchpad.net/kicad-developers/msg26901.html
>   [2] https://en.wikipedia.org/wiki/Product_data_management
> 
> Regards
> Kevin
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 


Follow ups

References