You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(pkm): bump to 0.2.0 for the audit change-set + first-party versioning policy
The pkm every-aspect audit (A01-A30 + A24, 29/29 verified) is new, backward-
compatible behavior + fixes on top of 0.1.0 — a SemVer MINOR change, not a
packaging revision. Bumped pkm 0.1.0 -> 0.2.0 (release reset to 1) across all
three places a first-party version is declared:
- pkm/__init__.py __version__ (pkm --version, User-Agent, min_pkm_version check)
- packages/core/pkm/package.yml version (pkgrel source)
- scripts/chroot-build-core-extra.sh run_package arg (pkgver / archive version)
(min_pkm_version stays 0.1.0 — it's the compatibility floor, not the current
version; the index format is unchanged. repo.py:80 stale version comment fixed.)
Origin: operator caught that a 29-finding audit left pkm reading "0.1.0" because
every prior change had bumped release only — we had never defined a versioning
policy for packages we author. Now documented in docs/operations/08-adding-
packages.md (new "Versioning policy" section): version = the software's own
version (SemVer for first-party, mirror-upstream for third-party); release =
packaging revision of the SAME code; the decision rule (source changed -> version,
packaging changed -> release); and the gotcha that a first-party version lives in
multiple files that must be bumped together (grep name+old-version before a bump).
Policy applies going forward; other first-party packages (intergen/theme/helper-
lib) reconcile to a real version the next time each changes.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Copy file name to clipboardExpand all lines: docs/operations/08-adding-packages.md
+45Lines changed: 45 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -103,6 +103,51 @@ pending_acquisition: "<reason — e.g., Microsoft UEFI CA sponsorship still pend
103
103
104
104
The pre-squashfs audit skips packages with `pending_acquisition` set. Don't use this as a workaround for unwilling-to-author cases; it's specifically for blocked-on-external dependencies.
105
105
106
+
#### Versioning policy — `version` vs `release` (what declares a version change)
107
+
108
+
`version`and `release` mean different things, and conflating them was a real
109
+
defect (we caught it 2026-06-16: pkm had absorbed a 29-finding audit yet still read
110
+
`0.1.0` because every change had bumped `release` only). The policy:
111
+
112
+
- **`version`** = the *software's own* version.
113
+
- **Third-party packages:** mirror the upstream release exactly (e.g. `git`
114
+
`2.51.0`). It changes only when we package a new upstream version.
115
+
- **First-party packages** (we author them — pkm, intergen, forge, the theme,
116
+
helper-lib, etc.): **we are upstream, so `version` is ours to bump, by SemVer:**
2. `scripts/chroot-build-core-extra.sh` — the `run_package "pkm" "pkm" "<version>"` arg
144
+
(the driver supplies the build/archive `pkgver`; `package.yml` supplies `pkgrel`).
145
+
3. `pkm/__init__.py` — `__version__` (what `pkm --version`, the User-Agent, and the
146
+
index `min_pkm_version` check report).
147
+
148
+
When bumping any first-party package, grep its name + the old version across
149
+
`packages/`, `scripts/`, and the package's own source to catch every literal.
150
+
106
151
### 2. Author build.sh
107
152
108
153
For `build_style: custom`, `build.sh` defines `configure`, `build`, and `do_install` functions. The orchestrator sources the script inside the chroot's per-package work directory and calls each function in sequence.
0 commit comments