I will just start a definition …
Model 1 requires Kicad 5.1 and later.
Reference R1: Library management in KiCad version 5
Model 1 is just setting out what I want to achieve. Others may prefer model 2 or 3 which they can work out.
First a definition:
A Library-bundle (think of a better name) is a folder holding a collection of libraries each of which holds a collection of symbols.
Model 1 will look like this:
_________User_general_library_bundle (not protected)
Note 1. User_general_library bundle can be used by any User project.
Note 2. Digikey is a work in progress (as they say). I installed it from gitHub (after painfully figuring how to do that). As of writing, they don’t have a footprint for thru-hole C. I expect they are trying to figure how to get sensible smart dimensions from their parts database. In summary, it is a work in progressvand may have errors
A library_bundle holds many Kicad Symbol libraries
(R1)Every symbol library consists of two files. The .lib file defines most of the symbol (graphical elements like pins and lines, symbol fields like the default footprint, …) The .dcm file holds the information that can be specialized for every symbol alias. (Description, keywords and datasheet link)
If I go back to a user library I created a few days ago, and insert a symbol from it, I see I have two collections, one called Robins_Kicad_library and the other called Robins_parts_library and a child of folder …\Term 4.4.
My .pro file is …\Term 4.4\Term 4.4.pro the folder includes Robins_parts_Library.lib, Robins_parts_Library.dcm, and Robins_parts_Library.bck.
I observe that default libs are put in the project folder beside the .pro.
Now, when I go to insert a part in Choose symbol, I see Robins_parts library lists 6 symbols including (as examples) 74HC166 and 74HC4078.
But (R1) says a library holds one symbol where I see 6.
I think I am calling the 6 symbols in a (folder?) a Library_bundle
And as I consider Digikey, it would seem there is further packaging. They might put a collection of library_bundles into a top_level_library_bundle and apply the protection at that level.
Choose symbol deliberately hides this sub-structure and only identifies sources to the library_bundle level, e.g. Robins_parts_library.
If there are errors assembling this list, (as I recall) it does not say where they originate. There is an option to ignore to get past them, but then they are gone if you use it. The offending symbol just becomes a no-show!
Let me pause for breath here and ask for help with the above before continuing with defining my model 1.