Skip to content

Modular system for tools management for OSH documentation #8

@hoijui

Description

@hoijui

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/... ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussionComplex topic with lots of arguments is expectedhelp wantedExtra attention is neededquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions