zudo-PD
GitHub repository

Type to search...

to open search from anywhere

Versioning Scheme (X.Y.Z)

This project uses a custom X.Y.Z version, not standard semver. The numbers track this hardware project's real-world milestones rather than software API compatibility.

The current version is stored in the VERSION file at the repo root. Bumps are done with the project skills /l-bump-version-x, /l-bump-version-y, /l-bump-version-z.

What each digit means

DigitNameMeaningBump skill
XProduct releaseThe product's own release version. We haven't shipped a real product yet, so this stays 0./l-bump-version-x
YJLCPCB order numberHow many times we've ordered a PCBA run from JLCPCB. Lifetime counter — it only ever goes up./l-bump-version-y
ZLocal tagAn ad-hoc local checkpoint, tagged whenever we feel a point in the work is worth marking./l-bump-version-z

Bump rules

  • X bump (/l-bump-version-x): a real product release. Sets Z = 0. Keeps Y (Y is a lifetime JLCPCB-order counter, so it does not reset). Creates a git tag and a GitHub release.

  • Y bump (/l-bump-version-y): a new JLCPCB order. Sets Z = 0. Creates a git tag and a GitHub release. Do this when placing the next order.

  • Z bump (/l-bump-version-z): a local checkpoint. Creates a git tag only (no GitHub release).

Non-standard: Y is a lifetime counter

In real semver, the major bump (X) would reset the minor (Y). Here it does not — Y is defined as "Nth JLCPCB order ever," which keeps climbing across product releases. This is intentional. If you'd rather Y reset on an X bump, change l-bump-version-x.

Mapping from the old v1 / v2 / v3 / v4 labels

The project previously called PCBA runs "v1, v2, v3, v4." Those map directly onto Y:

Old labelNew versionWhat it was
v10.1.01st JLCPCB order (powered up; STUSB4500 PD failed — pin 18 NC, pin 22 issues)
v20.2.02nd JLCPCB order (CC1DB chip-internal short; led to the external-Rd redesign)
v30.3.03rd JLCPCB order (CC fix worked, but pin 18 VBUS_VS_DISCH tied to GND → PD still failed)
v40.4.04th JLCPCB order — current. pin 18 fixed (VBUS_IN → R14 470 Ω → pin 18)

Older docs that say "v2 / v3 / v4" refer to these JLCPCB orders, i.e. the Y digit. New work should use the 0.Y.Z form.

Examples

SituationCommandResult
Placing the 5th JLCPCB order/l-bump-version-y0.4.0 → 0.5.0, tag + GitHub release
Marking a local milestone mid-order/l-bump-version-z0.4.0 → 0.4.1, tag only
First real product ship/l-bump-version-x0.5.2 → 1.5.0, tag + GitHub release (Y kept)

Revision History

Takeshi TakatsudoCreated: 2026-06-03T21:25:23+09:00Updated: 2026-06-16T20:53:54+09:00