Issues with version control of project specific libraries

Hi all,
First off, I apologize if this has been covered previously. Feel free to chide me and point to previous topics on this issue.

I tend to keep all symbols (schematic and footprint) in the same folder hierarchy as my project. I know that many like to create large repositories of their custom symbols, but this seems to be a bit sluggish for project portability reasons.

Since I have symbol files I would like to track in the project repository, I have the issue of absolute file paths. Each time the project is cloned, the absolute path of the symbols will now be different.

How are others mitigating this? Manually going through and repairing the absolute paths is not really working in my favor, and has caused many issues so far. A relative path seems like it would fix all issues.

Project GitHub page:

Thanks for any advice!

Depends on the kind of portability. If you want portability between different machines under your control or between people working on a common project or at least in the same organization then global libs are possibly the best option.

If you mean portable in the sense of putting the project out there for anyone to use then yes project specific might be easier (at least short term). Project local libs simply scale horribly.

Project local libraries that live within the project directory should use the path variable KIPRJMOD in the library tables. (KiCad does that automatically). Which means their absolute path should not matter.

More details see Library management in KiCad version 5

1 Like

Hi Rene,
That’s interesting… What triggers the automatic response? It very much appears that in my case, it still used an absolute path (even though I specified the CUSTOM libraries to be created local).
Thanks for your help.

KiCad 5.1.x (and possibly earlier) replace any file system path with path variables if available. So if you save the library inside the project directory and then add it to the project local lib then it should use that path variable. See: simplescreenrecorder-2020-01-12_20.34.34.mkv (856.9 KB) (1.8 KB)


Thank you so much for the help! Part of my problem is that I was attempting to store the symbols and footprints one directory up from the KiCAD project directory. I moved them down into the KiCAD project directory and spent some time remapping, which was now mostly automatic (in that ${KIPRJMOD}/ was added to the appropriate portion of the file path).

The video really helped, thank you for taking the time to record it.

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