I have been using KiCad as a consultant for some time now, but I have recently moved to a new position where I will need to actively collaborate with more people.
I already use GitHub fairly effectively for tracking individual single-board projects and issuing releases; I do it manually right now as I have not automated this yet but would like to in the future.
My biggest question relates to library management. Ideally I would like to (privately) publish and maintain a set of libraries which themselves are version controlled. What would be ideal would be for a certain project to have a certain version of a certain library that it can just reference and whenever we decide to make a new iteration of that board, we can choose to update the library version that it is using. This should happen automatically when you clone the project, and not depend on what libraries happen to be installed on that machine. I would prefer for the footprint and symbol libraries to be global as they are reused often between projects.
I know that KiCad has a plugin and content manager that can deal with versioned libraries, but this only appears at the installation level? I guess you could mange this by having multiple version of the same library with repository showing the full history but this would get very messy.
I know Git submodules are also a thing and I have tried using them before but they seem to be more finicky than I would expect. Does anyone had a good expoerence with these in a KiCad context?
Any other suggestions or workflows to get this working would be apprecatied!