← Back to team overview

kicad-developers team mailing list archive

[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