The default libraries for schematic symbols changed, specifically passives. This means if you import an older version of a schematic, it will break the connections between the passives and the rest of the schematic. The newer symbols are much more compact, so the leads do not contact the past interconnects that put them into the schematic.
Nothing will break immediately because your netlist and layout are untouched. However, you should be sure to double check your schematic before generating another netlist and/or do ERC again, as you could have unconnected nets without knowing it.
When you create a schematic in eeschema, all schematic symbols that are used are locally cached in a file named “<project-name>-cache.lib”
Now, if a library is changed / vanishes, the symbols can still be pulled in from that file, which avoids the dreaded “?” showing up.
So e.g. for an old project, after adding this file (which should live in the project folder) to the list of schematic libraries and putting it as #1, is has precedence over anything else that might happen. Symbols with the same name that are changed in some library will be ignored, if found in the cache.
Ah, so this is a problem with my .gitignore, where I don’t push the -cache.lib to the repository. Aha! OK, so this is PEBKAC, not necessarily the new repo (though that doesn’t help)
To avoid disruptive changes NEVER use default library. Make your own copy in other location and use it. If you use default library in default location every update/reinstall of kicad with libraries can break something.
Extensive renaming of 3d models was made to clean up big mess in packages3d so update of library will remove all 3d models from pcb made with older footprints.
I find it a bit unfortunate that the schematic editor doesn’t seem to include the cache file in a way that protects against library issues. It could most likely be done as default.
Think of it, if the layout editor had the same issue! Vanishing footprints if some library changed, total madness. There is a very good reason why footprints are saved in the board file.
That is one point Eagle does better, you can just send someone the “.sch” file and it can be viewed without worrying about libraries.
One caveat: if the library-cache is inserted at top position, this will also ignore intentional changes to libraries you might do yourself! A workaround would be to manually delete the symbol from the cache file, which would then allow the updated one to be pulled from the library.
So I guess this is only a sensible thing to do with old / retired projects that won’t be changed anymore.
Agreed, the old ones were unnecessary big, I’ve even had to make my own smaller versions of some symbols like dpdt switches which were HUGE.
Debating with myself right now the possibility to rebuild schematics with new standard symbols for some of my later designs…
Embedding everything into the schematic / board-file will make sharing projects much easier. At least one can be sure that the receiving end will be able to open it and have it complete.