← Back to team overview

kicad-developers team mailing list archive

Symbol library table remapping branch.

 

I finally found the time to finish the symbol library table remapping
implementation and I would like some help with testing before I merge
this into the master branch.  I would like to get as much testing as
possible.  I remember the issues when we switched from the same library
lookup format in Pcbnew so I would like to try to get as many of the
issues resolved before I merge the changes into the master branch.
Please back up your schematic files before you load them.  Otherwise you
will have a bunch of broken symbol library links in schematic since all
of the symbols names will now be in the new format
(LIB_NICKNAME:SYMBOL_NAME).  Also, please don't generate any external
files such as netlists with the remapped symbol names.  I haven't tested
any of that yet.  I am just trying to get the remapping as accurate as
possible.  The branch can be found in my dev repo at:


Before you test this, please perform the following tasks:

1. Delete the sym-lib-table file in your user configuration .kicad
   folder if the table is empty.
2. If you do not have a relatively recent install of the kicad-library
   repo, install the latest libraries so you have the latest fully
   populated symbol library table template file.
3. Start Eeschema and allow the symbol library table config dialog copy
   the default sym-lib-table file to your user config .kicad folder.  If
   the default sym-lib-table file cannot be found, please point the
   config dialog to the correct location.  Using the latest
   sym-lib-table template file will give you the best remapping results.

The first time you attempt to load a schematic that hasn't been
remapped, Eeschema will prompt you remap the symbol library links.  If
you choose not to remap, your schematic will most likely appear fine but
this is because all of the symbols will be linked to the cache library.
Here is what is happening during the remap process:

1. Backups of all of the schematic files are made.

2. The full library file name and path for each symbol is be compared to
   the full library file name and path of every entry in the library
   table.  If an exact match is found, the library nickname is added to
   the LIB_ID object to create the fully qualified ID.

3. If the symbol library is not found in the global symbol library table
   and the library file is valid and on your system, a project symbol
   library is created with the symbol library added to it.  I could have
   added an option to add these libraries to the global symbol library
   table but I left that as an exercise for the user.

4. The symbol library table links in the schematic symbols are
   refreshed.

Obviously, the remapping depends on the availability of the symbol
libraries used in your project.  If you've inadvertently deleted a
symbol library and the cache library is being used then you are skating
on thin ice.  I don't see that as an issue since you were skating on
thin ice already.  I did change the message panel message when you click
on symbols in the schematic that are linked to the cache to display the
library information in red to warn the user that the cache library is
being used as the symbol link.  I am thinking it might be a better idea
to draw symbols that are linked to the cache library with a different
color to make it obvious to the user that they should fix their broken
links.

I still have to convert the symbol chooser, the symbol library viewer,
the symbol library editor, some other minor bits and peices  over to
use the new symbol library table.  Once that is completed, I will make
a last call before I create the stable 5 branch so if you have anything
you want to see make it into the stable 5 release, now would be a good
time to get that ready to go.

If you find any issues please let me know.  If possible, the schematic,
project, and symbol library files that caused the issue would make
debugging easier.

Cheers,

Wayne


Follow ups