Putting Project Files on GitHub

Hi guys,

I wanted to share my very first KiCad project on GitHub.

I used to use Diptrace and as their format are not friendly for version system, so I usually append the revision to the each of the files (PCB and schematic like BoardA-1R00.dch and BoardA-1R00.dip).

So, moving onto KiCad, that practice of appending the version number stuck with me! I only realize them when I start thinking about putting them into KiCad. So, my files would look like BoardA-1R00.pro, BoardA-1R00.sch, BoardA-1R00.kicad_pcb, etc.

So, my question here is, do you guys think that this version append is the wrong thing to do?

If you backup your files, e.g. for documentation or several versions got published (to the manufacturer …) it’s a good idea to have the version in the filename.
MUST BE DONE if somebody is intended to handle the files and has no KiCad to read the version (or does not know how to do it with a text editor).
If you have some supply chain managers around, refer to Einstein’s saying about human stupidity.

I think it is a waste of time to rename KiCad files (not outputs), but not a big problem. This means each time you make a new revision git will see files moving around. Sometimes git will interpret this as a deletion.
You should just care about the names of the files got knows about :

  • the .pro file
  • the top level .sch file, it must be named like the .pro
  • make sure that it you rename hierarchical sheet files you also change their symbols in their parent sheet
  • the .kicad_pcb file, it must be named like the .pro
  • your libraries shouldn’t change names if you don’t want to change each component

From all these files you can recreate all outputs : netlist, Gerbers, BOM, drill file, pos file, …
You can do what you want with these files. You can archive them in git from time to time if you want (I don’t).

The files that I need to send to someone I rename to include a revision number, and move them to an archive directory.

The remaining files (i can’t think of anything but the netlist and all the autosave/autobackups) I just ignore.

Hi guys,

Thanks for the suggestion.

Yes, I only put the essential files inside as caer mentioned.
For the library, I included the cache library. But the whole library (including those components not used in the project) is uploaded in another repository. I also rename the files without the revision.
So, basically just a bit of rename work whenever a version is released.

Eh, versioning is a bitch… Software or hardware… I like to use file name versioning in hope, that a month from now I will remember… I don’t. I tried git, cvs… Being one man show should be easier… It’s not :smiley:

To add to what @caer said regarding the import files. Here is my workflow with Git (GitLab in my case):

  • KiCAD PCB Project folder stored in Git per @caer, no output files (Gerbers,etc.)
  • KiCAD Libs in a separate repository, since it’s shared across projects
  • When I send a board to Fab:
    Zip Project Directory, including all Fab outputs
    Name Zip file with Version Number
    Commit Project to Git and Tag with same Version Number
    Place Zip file in a Dropbox Archive for future backup/sharing/reproducing board revision