I have a personal library, but each symbol is in its own .lib file and .pretty folder. To use one I copy it to a project as needed; this may seem like redundant copying, but it ensures each project is self-contained so if someone else clones it they don't get a bunch of dead library references, and I don't have to share my entire collection of symbols.
This does not happen anymore. Starting from KiCad V6 the schematic embeds all used schematic symbols directly in the schematic file.
Not because I would mind, but because some are embarrassingly ad-hoc.
Time to do some maintenance and clean up your mess...
There's an inherent value in not needing anything other than a single repo for a project, including firmware, openocd config, gdb macros, fonts, python build help tools, etc if relevant.
Yes, of course, but starting from KiCad V6, you just need 4 files, the project file, the kicad_prl file and the schematic and PCB files. Libraries are optional.
The other is that if I change the symbol to fix something in project B it will likely break project A;
No it won't anymore,because of the embedded symbols. KiCad does maintain a link to the original source of schematic symbols (so you can update them if you want, and ERC warns you if your symbol is different from the libary symbol, but updating it is a manual process as it should be.
If you like the both belt and braces method, you can use:
Schematic Editor / File / Export / Symbols to New Library, make the new library project specific (KiCad asks for this choice), and then KiCad also asks you if you want the library links in the schematic to point to your new library.
In fact, I wish kicad would handle this automatically, that when I add a symbol from a library to a project, it makes a local copy of it in the project.
So again, indeed this is what KiCad does now. but because that copy is directly in the schematic file you had not noticed it. If you do not believe me, then check it yourself:
1. Create some new bogus symbol.
2. Use that symbol in a dummy project.
3. Delete the original bogus symbol.
4. The dummy project still works.
If I want to update them I could easily just replace them with an updated version later.
Indeed, KiCad also supports this now. It makes a local copy, but a link to the original source is maintained, so you can easily update schematic symbols if the "master library" changed.
[/quote]
My experience has been that sharing a single lib file between multiple projects tends to create a lot of problems in the long term. Not just related to changes to the symbol, but also some projects might still even be kicad v5 while libraries might have gotten updated to v7.
KiCad V5 also maintains a local copy of schematic symbols, but it does so in the [project]-cache.lib file. A lot of people deleted this file, or did not include it if when backing up or sharing a project. This damaged the KiCad project, but they did not notice it, because KiCad silently created new copies from the original libraries each time they start the project. Only when both the [project]-cache.lib file and the orignal libraries are missing, a user notices that the project is damaged.
So overall, this has improved a lot over the last few years. I suggest you spend some time to get familiar with these improvements, and then adjust your workflow. You are now doing a lot of extra work that eats your time, reduces your productivity and has no benefit at all.
I suggest you:
* Create a KiCad project with the single purpose of experimenting and practicing with the improvements in library management.
(you can also use a copy of any existing project to practice with).
* Create a KiCad project with the single purpose of doing library maintenance. (Add all your libraries to this project).
* Put all your old schematic symbols in a single, or a few libraries.
* Make those libraries global, so you can use their contents in other projects.
Library management can also be done in the other direction, and this is probably easier for you:
* First create a global personal library. (You can pin it, so it stays at the top of the list in the Symbol Editor.)
* Select a schematic symbol in one of your projects.
* Depress
ctrl+e to edit that symbol in the Symbol editor (which is also the library management tool).
* (optionally) Enable:
Symbol Editor / View / Show Symbol Tree (It is disabled by default when you open it directly from a schematic file).
*
Symbol Editor /File / Save as... and then browse to the library you want to save the symbol to and save it there.
Edit / addition:
I started using KiCad some 10 years ago but did not use it much in the last few years. I am now also adjusting my own workflow, cleaning up old projects and fixing the mess I made of my old libraries. I have not figured out my workflow completely, but the last method seems to be a clear winner. So just start with making some global libraries (Schematic symbols and Footprints) then open one of the old projects, and from there put parts you want to manage into the libraries you just created.
https://xkcd.com/386/