Template
0e002be80cf7c55adb5b7259c9c1c9f3660bbf88
TEMPLATE.md Versioning section; notes in README, CHANGELOG and the firmware/software READMEs. Source: contrib/product-template in B4L/proplan.
$REPO_NAME
$REPO_DESCRIPTION
Created from B4L/product-template.
TEMPLATE.md explains the layout, the rules and proplan.toml.
| Folder | What goes there |
|---|---|
assets/ |
the product image (assets/product.png, shown by proplan), renders |
hardware/$REPO_NAME/ |
the KiCad project of the board |
hardware/lib/ |
symbols, footprints and 3D models shared by the boards |
firmware/ |
MCU code, one folder per target; firmware/lib/ for shared drivers |
external/ |
third-party code as git submodules |
software/ |
host tools and apps |
mech/ |
FreeCAD sources and STEP exports |
sim/ |
LTspice/ngspice models, calculation scripts and notebooks |
test/ |
bench results per prototype stage (test/v0.1/) |
docs/ |
documentation; docs/datasheets/ for vendor PDFs, docs/tex/ for LaTeX |
Prototype stages
Each prototype is a git tag (v0.1, v0.2, ...). CI builds gerbers, BOM and
schematic PDFs for the tag and attaches them to its release; CHANGELOG.md says
what each stage changes. In proplan the prototype stage links the tag.
Versioning
| What | Tag | Scheme |
|---|---|---|
| Prototype stage | v0.1, v0.2 |
the next stage takes the next number |
| Firmware target | firmware/<target>/v1.2.0 |
SemVer |
| Software tool | software/<tool>/2026.10.0 |
CalVer YYYY.MM.MICRO |
TEMPLATE.md has the rules (what counts as breaking, pre-releases, changelogs).
Languages
Python
100%