My journey to get my first symbol and footprint accepted in the official library on arch linux

Hi All,

I’d like to document the steps I’ve taken and are about to take to make a symbol of my part, including footprint, a 3d model, ordering information and so on, and get it accepted in the official libraries. That way future me does not have to figure it out again.

First I have compiled and installed the latest development version of Kicad (5.99), as the official KiCad repositories only accept footprints and symbols made with KiCad 5.99.
https://aur.archlinux.org/packages/kicad-git/

Next step is to fork the repositories to my own Gitlab account, clone those to my own machine, make a branch to put my work in, and let KiCad know where the files are.

1 Like

I now have forked all official Kicad repositories to here:


Next I’ve enabled automatic updating, so i can pull them from time to time into my own branch.
This links shows the theory behind it, but the locating of this setings have changed to this location:
settings->repository->mirroring repositories and expand.

Please don’t do that. It causes annoying messages to the original project. You don’t need to keep your fork’s master branch updated at all. You should fetch and merge locally on your machine from the original project to your local branch, then push your modified branch to your remote (gitlab) fork.

Are these the correct commands to do so?
$ git clone https://gitlab.com/Cedric5008/kicad-symbols.git
$ cd kicad-symbols
<make changes, commit them>
$ git pull https://gitlab.com/kicad/libraries/kicad-symbols.git
<make more changes, commit them>
$git push #to my fork
Next use the web interface of gitlab to make a merge request.

https://docs.github.com/en/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/syncing-a-fork

(Yes, it’s github instead of gitlab, but it’s pure git.)

In short: you have your own local feature branch, you merge to it from the original official KiCad repository to keep it up to date and push to your fork’s feature branch.

Thanks. It boils down to these commands:

$ git clone https://gitlab.com/Cedric5008/kicad-symbols.git
$ cd kicad-symbols/
$ git remote add upstream https://gitlab.com/kicad/libraries/kicad-symbols.git
$ git fetch upstream
<make changes>
$ git merge upstream/master
<make more changes>
$ git add newfile
$ git commit -a
$ git push
<use the web interface to create a merge request>

For learning git i found these to be quite helpful:


Also for windows users i suggest the use of git extensions but also get used to using the command line (I do the day to day stuff like committing and pushing via the command line but complex tasks like changing the history via the graphical interface)

1 Like

Kicad is now using the git repositories in /home/cedric/kicad-git-lib

I’ve adjusted kicad->preferences->configure paths like this:


Is it a potential problem that KIGITHUB still points to github instead of gitlab?

Next I removed every library from preferences->manage symbol libraries and added the new ones:


I notice valve is still a legacy library. Has this one escaped the conversion?

Finally I did the same to preferences->manage footprint libraries:

As a result, the 3D viewer now finds all the 3d models of the used components.

No, but there are extensive changes to valves in the works, so it’s been deemed less disruptive to convert it later.

Note that you can overwrite your sym-lib-table/fp-lib-table in .config with the ones in the repo if you just want to update everything.

Was only ever used for footprints. And only works for version 4 of the official lib. This is because the github plugin requires every library to be in its own repo. See I had KiCad 4 installed previosly. Now i updated to v5. Now i have some problems with the library setup

That reminds me… why is it still built by default?

I made an issue to have it removed.

I’m getting closer to my goal, I’ve submitted my first merge request for a new 3d model that I made for an existing part:


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