Project release tool

Hello everyone. Sorry, if this topic has been discussed already. I was unable to find anything on the forum.
I’m thinking about creating a GUI and CLI tool that would allow me to package up the fabrication outputs, documentation and other necessary files in a per-defined folder structure. Before I start making my own, I wanted to check if there is one already.
Googling for the solution didn’t help much. Even ChatGPT suggested a python script for this :slight_smile:
The basic requirements are:

  • open the project folder
  • find all the expected files that one would like to package up
  • allow selection of additional files
  • define folder structure
  • preview the result
  • write the result to specified path.
  • store the config. per project

I really hope that there’s solution already available as I don’t really want to write a lot of code.
Thanks

I suppose you can do this with Git.

KiCad also has “kicad-cli” and this can be used to create output from KiCad, such as Gerber files.

take a look at GitHub - INTI-CMNB/KiBot: KiCad automation utility

1 Like

Thanks. I’m actually using it myself. The downside is that it’s not very user-friendly. People who never seen makefiles before will not be comfortable with configuring there own setup. That’s why I would really like a GUI solution, where non-programmers would be able to achieve the same results.

Yes, that’s a good starting point. File generation is not an issue. The packaging is. I have a lot of extra documents that goes into the fab. or release package that do not come from KiCAD.

I am using KiBot in combination with git and teamcity. Teamcity has user friendly UI (be careful about security, keep it behind firewall) and it checks out the project from git and executes script that runs KiBot.
It is a learning curve to learn KiBot, git and teamcity but in the end it works.

You need to decide if it is worthy for you, simple python script that calls kicad-cli works too. But you need to reimplement wheels. The question is whether you prefer to reimplement some wheels or learn how to use complex gearbox :grinning:

1 Like

Thanks for the tip about Teamcity.
Yes, you are correct - I don’t want to re-invent a wheel if I can avoid it.
I am probably a bit spoiled with Mac philosophy where people make tools with very simple user interface. I agree, it’s best to spend time teaching people a complex tool ones. And most likely there will be no need for everyone to learn all of the details, just the project specific part.

I have mixed feelings about teamcity, I use it as glorified script runner and it had some security issues (someone actually did hack into my server through it), but it provides nice UI, artifact storage and it plays nicely with git. I use KiBot via docker and it works perfectly…

1 Like