@openmixer/omx-contract 2.10.0 → 2.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/semver.mjs +11 -4
- package/package.json +1 -1
- package/share/omx-contract/omx-contract.json +1 -1
package/README.md
CHANGED
|
@@ -49,7 +49,7 @@ pkg-config --cflags omx-contract
|
|
|
49
49
|
```
|
|
50
50
|
|
|
51
51
|
Pin one version and build against its renders instead of keeping a copy: the installed package at exactly
|
|
52
|
-
that version (`pkg-config --exact-version=2.10.
|
|
52
|
+
that version (`pkg-config --exact-version=2.10.1 omx-contract`), else the npm tarball, unpacked, and
|
|
53
53
|
`omx-contract render --target c --out build/omx-contract/include`. A kernel's controls and readouts, in their
|
|
54
54
|
order, are in `share/omx-contract/omx-contract.json`; how a declaration is written is in
|
|
55
55
|
[docs/kernel-files.md](docs/kernel-files.md), and what a readout is in [docs/readouts.md](docs/readouts.md).
|
package/lib/semver.mjs
CHANGED
|
@@ -23,7 +23,7 @@ const RANK = { none: 0, patch: 1, minor: 2, major: 3 };
|
|
|
23
23
|
* The development-phase rule (omx-contract spec §3.6): while every consumer of
|
|
24
24
|
* omx-contract is a FreeMixer repository named here, removing an item is MINOR. The rule ends, and
|
|
25
25
|
* this becomes null so a removal is MAJOR again, in the release that names the first consumer
|
|
26
|
-
* outside the list.
|
|
26
|
+
* outside the list. Until then a MAJOR class is released as a minor bump (see refusal).
|
|
27
27
|
*/
|
|
28
28
|
export const DEVELOPMENT_PHASE = Object.freeze({ consumers: Object.freeze(['omx-dsp', 'omx-plugins', 'openmixer']) });
|
|
29
29
|
const same = (a, b) => JSON.stringify(a) === JSON.stringify(b);
|
|
@@ -155,9 +155,16 @@ export function bumpOf(from, to) {
|
|
|
155
155
|
return 'none';
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
-
/**
|
|
159
|
-
|
|
158
|
+
/**
|
|
159
|
+
* null when bumping `from` -> `to` covers `level`, else the refusal. In the development phase no
|
|
160
|
+
* release takes a major bump (operator ruling 2026-10-13: majors wait for the first public
|
|
161
|
+
* release), so a MAJOR class is covered by a minor bump; the classes are still reported as found.
|
|
162
|
+
*/
|
|
163
|
+
export function refusal(level, from, to, { developmentPhase = DEVELOPMENT_PHASE } = {}) {
|
|
160
164
|
let bump;
|
|
161
165
|
try { bump = bumpOf(from, to); } catch (e) { return e.message; }
|
|
162
|
-
|
|
166
|
+
const need = developmentPhase && level === 'major' ? 'minor' : level;
|
|
167
|
+
if (RANK[bump] >= RANK[need]) return null;
|
|
168
|
+
const phase = need === level ? '' : ' (at least a minor in the development phase)';
|
|
169
|
+
return `the changes since ${from} are ${level.toUpperCase()}, and ${from} -> ${to} is a ${bump} bump${phase}`;
|
|
163
170
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openmixer/omx-contract",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.1",
|
|
4
4
|
"description": "The FreeMixer declarations as data: a JSON Schema, the data, and one CLI that renders them into C, TypeScript and JSON",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "GPL-3.0-or-later",
|