-
Notifications
You must be signed in to change notification settings - Fork 3
Description
hello all of you!
I am working on something that is somehow related to this. though it is
more about hardware documentation, the question is a more general one,
about an architecture for .. tools/plugins/scripts that are useful in
OSH documentation repos.
Introduction through an example
So... let's imagine we are documenting a machine, that is made up of
some mechanical parts and some electronics. The mechanical parts are
designed in FreeCAD (FC), the electronic ones in KiCad (KC).
So our repo contains some Markdown files, some FC files and some KC
files. In our CI/CD (build-bot) job, we want to generate renders in SVG
and/or PNG for the FC and KC files, and STL files from the FC files, and
Gerbers from the KC files (that last one I am working on/have mostly
done now). Because FC uses a binary format, we also want to pre-process
these files with a git filter before storing them in the repo (for
example with ReZipDoc).
MoVeDo (pronunciation is like an Italian person would say it, btw.)
handles the Markdown part, ReZipDoc the FC storage issue, what I am
working on now the Gerbers for KC, and the rest is still to be done, and
we need more tools for FC and KC, but probably also for other formats
not present in this example (OpenSCAD would be a candidate).
The Question
How to best organize this all?
I imagine a kind of flexible system of small tools, that can also be
replaced one by one, if desired, and are easy to modify.
My personal wishes for the requirements would be:
- to prevent lock-ins - our whole system or parts of it should be replaceable with alternatives
- to make it modular
- to support a modular documentation style - hardware is usually made up of modules, which might be recombined into other hardware; the documentation should support this gracefully
- to keep common functionality in a kind of library, which could be yet
a other tool - platform independent - if not, it has to be Linux compatible at the
very least as it will mostly run on CI jobs - multi-programming-language support - each tool could use a different
language - plumbing through CLI interfaces
- to have a kind of comfortable managing interface to list, update, add
and remove tools in any OSH documentation repo - tools being git repos, and added to the OSH doc repo as git sub-modules
... but I am open for a completely different idea as well.
It would be especially cool, if a system that fits in here would already
exist of course.
Any ideas/inspirations/... ?