Contribute

Introduction

The KiCad libraries are organized in repositories at the KiCad organization on GitHub. User contributions to these libraries are greatly appreciated, whether it is improving existing components or creating new ones.

How to contribute

To contribute to the KiCad libraries, submit a pull request on GitHub for the relevant repository.

If you are new to GitHub, please check out this guide Contributing to Open Source on GitHub before you start.

Making a Pull Request

The KiCad libraries are hosted on GitHub - users can submit their contributions using the Pull Request mechanism. Instructions for submitting a pull request are provided below.

  1. If you do not have one, create an account on GitHub

  2. Fork the repository you wish to contribue to

  3. Clone your newly created fork to your local machine

  4. Create a new branch in your local repository. This ensures that any local changes are not mixed with the master copy of the library until they are checked and merged by a librarian.

  5. Perform any necessary modifications to the library repository. Refer to the KLC for contribution guidelines.

  6. Commit your changes to the local repository, with a message describing the changes you have made. Complex changes may require multiple commits.

  7. Push your local changes to the GitHub remote.

  8. Create a pull request (PR) to merge your branch into the KiCad libraries. Include links to reference documents (e.g. datasheets) in the comments, in addition to a description of the changes you have made.

  9. A librarian will review the changes - discussion and further work may be required.

  10. If further changes are needed, do not create a new branch. Simply make any further changes to the same branch, and push these changes upstream. They will be automatically added to the PR.

It is very helpful to the library team if you can include a description of your contribution and also a screenshot of your contributed file(s) (symbols / footprints / models).

Example:

KLC

When creating/editing/fixing a symbol or footprint a set of conventions should be followed. They are the KiCad Library Convention, or KLC for short. It is important the users are familiar with the KLC before making a contribution.

The KiCad librarian team have also developed a set of helper scripts written in Python which users can use to check their contributions against KLC guidelines before submitting.

Scripting Tools

EDA library elements can be highly repetitive, and can benefit greatly from scripting tools. In fact, many of the components in the KiCad libraries have been scripted using tools developed by the KiCad community.

Footprint Creation Scripts

kicad-footprint-generator is a very comprehensive footprint generation tool written in Python. The script toolset contains comprehensive examples and a large array of scripts used to generate many footprints that can be found in the KiCad libraries.

Parameteric 3D Model Generation

kicad-3d-models-in-freecad is a scripting toolset which allows 3D models to be generated parametrically using Python. It uses the CadQuery module from within FreeCAD (both of which are required to use the scripts).

Become a librarian

If the 'pull request' world is too small for you, feel invited to join the librarians team. Contact the librarians team leader by sending an email to the mailing list telling about your interest to join us.

Currently KiCad librarians team counts with just a few people against a lot of pull requests and work to do, having your help would be very appreciated.

Contacting librarians

If you have any doubt or suggestion, please consider joining the KiCad library mailing list.

You can also try to reach a librarian via IRC at #kicad@freenode.

Many of the librarians can also be contacted on the KiCad user forums.