kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #17468
[proposal] Handling conflict between projname-cache.lib and an updated library
When loading an old schematic, it's fairly common for it to be broken,
if symbols have changed significantly in the libraries. An example:
https://i.imgur.com/7cVBneA.png
A workaround suggested by Wayne is to make a local copy of the
projname-cache.lib file, and add it to the project as a library, at the
top of the list. This way, components in it will override the system
libs.
I think it will be friendlier for newer users if we can detect this, and
offer to solve it. What if we were to display something along these
lines, when loading a schematic where projname-cache.lib has symbols
with significant differences from system versions?
"This project appears to use different versions of some components from
what is installed on your system. What would you like to do?
[] Update this project to use the new components. There may be parts
that longer fit correctly, and you will have to fix them yourself.
[] Create a new library containing the versions of the components used
in this project, and add it to the project.
[] Choose manually for each component.
===
[] Never ask me again, I can handle this myself.
"
The first option would do what it does now - components will be loaded
from the system libraries. The second version will save a copy of
projname-cache.lib into the project directory and add it to the top of
the library list. This may require a way to make sure that a library is
loaded directly out of the project directory rather than checking the
entire search path - I'd think this could be relatively simple, perhaps
load from the project directory if a library filename in the list starts
with ./ ? The third option will display all the conflicting components
with a list of the references using them, allowing only *some* of them
to be exported to the new library.
I know that there are plans to completely change the way libraries work,
but this problem really seems to confuse some beginners, and this seems
to me like a decent stopgap. What do you think?
Chris
Follow ups