Saving and renaming projects

Continuing the discussion from Saving & Renaming project folder:

@Rene_Poschl:

… If you however want to rename these files then make absolutely sure you do not forget to also rename the cache library! (This special file must always have the same name as the project file plus -cache.lib.) …

As of KiCad 5.1.6 , does this comment still apply?

Not all of my projects have a *-cache.lib, yet they appear to function normally.

The -cache library is just that. It contains schematic symbols cached from other libraries, and as long as all the libraries that are used in the schematic are still present, the -cache library is not very important. You can even delete it and it will get recreated.

If you archive a project, it’s pretty important to save the -cache library too, your else, when you dust off the project years later and the KiCad default libaries have changed, your schematic symbols can not be found anymore and you get the dreaded [??] symbols.

In KiCad-nightly V5.99 schematic symbols are cached in the schematic itself, so it’s one thing less to worry about.

1 Like

On the top level KiCad window, the list of files that appear in the left navigation panel is slightly different than the list you will see in a file manager.

Look with the file manager.

It still does. Here’s a typical directory of mine:

mhzdisplay-cache.lib
mhzdisplay.jpg
mhzdisplay.kicad_pcb
mhzdisplay.pdf
mhzdisplay.pro
mhzdisplay.sch

If the library doesn’t change, then next time you run kicad it will recreate the file (not sure of this, didn’t do this myself, may result in complaints). However when you take your project somewhere else, give it to somebody, or publish it, where not all the symbols you used are present, you may lose symbols if you don’t preserve the -cache.lib file. So there’s no need to delete it when “cleaning up”. Consider it as part of the project.

That sounds great. Thanks for helpful answers, everyone.

The File->Archive Project command also includes the -cached.lib, so that makes sense. However, it does not complain if the -cached.lib is missing.

In my case, KiCad did not automatically create a new -cached.lib, but maybe this has to do with my specific library configuration.

If we are talking about 5.99 and future 6 it may be relevant to know that it has Save As for projects which is effectively copying + renaming the whole project.

2 Likes

I think this is the worst advice i have read here in a long time.

I would suggest one treads the cache library as if it is part of the schematic file(s), or you one is just one mistake away from a broken project! And this mistake can be as simple as starting your next project and changing a symbol forgetting that it is also used in your other project.

Sounds like a bug. The cache lib is essential for your project to be usable if any symbol you use in it changes in the library. Without it your project will just silently change or worse you get a broken project where symbols are replaced with question marks.

Here you’ve ripped my post completely out of context by posting half a sentence.
The second error is that I never gave an advice to delete the -cache file.

Third: In the following paragraph I gave an example of how and when the -cache lib is pretty important.

1 Like

I take your post apart because information like you gave here is exactly why we were not allowed to change anything substantial in the official symbol library. Simply out of fear that users do not treat the cache lib with the respect it needs and therefore a change to the lib would destroy user projects.


And preemptive edit: No i am not saying it was a good idea to rely on the cache lib instead of including symbol data in the schematic files. However, we would have had a lot more options if users had understood the importance of these safety nets. (For example we would not have the shitty logic symbols with invisible power pins anymore, but well we needed to reject the offer of a volunteer who wanted to fix them because of this issue)

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.