Template
A stage tag (v*) now builds, with kicad-cli, pandoc and pdflatex in the CI image (.gitea/scripts/release-files.py): - per board: Gerbers + Excellon drill zip (JLCPCB-compatible settings), BOM (grouped, DNP left out), pick and place, schematic and PCB PDFs, 3D renders; - docs/*.md and docs/tex/*.tex as PDF, tag and commit in the footer; - release/README.md with tag, commit, ERC/DRC result, files, SHA-256 and the stage's CHANGELOG section. Every file name carries the tag. release-attach.py attaches the files plus a zip of the whole folder to the tag's release (replacing assets of an earlier run); for the newest stage tag (not older stages, not pre-releases) the job commits them to release/ on main with [skip ci]. .gitignore: !/release/ after Release/ (Windows matches it case-insensitively); .gitattributes: release/** -text so the SHA-256 match on every checkout. TEMPLATE.md: "Release files" section, rules and CI updated. Tested in git.b4l.co.th/b4l/kicad10_auto_node with harNES's board and docs: v0.1 committed, v0.0 and v0.2-rc.1 left release/ alone, v0.2 tagged on an older commit landed on top of a moved main; uploads byte-exact against a stub of the Gitea release API.
39 lines
1.7 KiB
Markdown
39 lines
1.7 KiB
Markdown
# $REPO_NAME
|
|
|
|
$REPO_DESCRIPTION
|
|
|
|
Created from [B4L/product-template](https://git.b4l.co.th/B4L/product-template).
|
|
TEMPLATE.md explains the layout, the rules and `proplan.toml`.
|
|
|
|
| Folder | What goes there |
|
|
|---|---|
|
|
| `release/` | **the latest stage's files**: Gerbers, BOM, pick and place, PDFs, renders and documentation; written by CI at every stage tag, never by hand |
|
|
| `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`, ...). For the tag, CI builds the
|
|
Gerbers and drill files, BOM, pick and place, schematic and PCB PDFs, 3D renders
|
|
and the documentation as PDF, attaches them to the tag's release and puts them
|
|
into `release/`, which always holds the newest stage. 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).
|