Skip to content

Commit c3e8f05

Browse files
committed
sync: catalog variants expose their bit width; 0.2.2 version macro
`basert pull basecompute/Muse-Glimmer-30B` failed with no pre-converted .base for quant "q4" in this repo; it offers: 17gb, dynamic A bare pull requests "q4", and the catalog row is only served when the requested bits match. `quant_bits` scans for `q` followed by a digit, so `kquant-dynamic` yielded None — the `q` there is followed by `u` — and resolution fell through to matching by filename tag. These files are named after the upstream GGUFs, whose tags are "dynamic" and "17gb". Renamed the variants to `default-q4k-dynamic` / `q4k-17gb`, which scan to "q4". Only the catalog's variant ids change; the published artifacts are untouched. A test now asserts every catalog quant exposes its bit width. Also carries BASERT_VERSION_PATCH 2. Still no header or binding mirrors — those must follow the 0.2.2 engine release, not lead it.
1 parent 780a8c6 commit c3e8f05

5 files changed

Lines changed: 37 additions & 12 deletions

File tree

‎base-convert/Cargo.lock‎

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎base-convert/Cargo.toml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ members = [
1212
]
1313

1414
[workspace.package]
15-
version = "0.2.1"
15+
version = "0.2.2"
1616
edition = "2021"
1717
license = "Apache-2.0"
1818
repository = "https://github.com/basecompute/baseRT"

‎base-convert/crates/base-hub/catalog.json‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -674,7 +674,7 @@
674674
"file": "muse-glimmer-30B-kquant-dynamic.base",
675675
"source_repo": "meta-models/Muse-Glimmer-30B-GGUF",
676676
"arch": "muse_glimmer",
677-
"quant": "default-kquant-dynamic",
677+
"quant": "default-q4k-dynamic",
678678
"size": 20952383488,
679679
"sha256": "1eb639041f638099f6b1f7415c808cd6762b52be672d4ff5ef97829cc7669876"
680680
},
@@ -684,7 +684,7 @@
684684
"file": "muse-glimmer-30B-kquant-17gb.base",
685685
"source_repo": "meta-models/Muse-Glimmer-30B-GGUF",
686686
"arch": "muse_glimmer",
687-
"quant": "kquant-17gb",
687+
"quant": "q4k-17gb",
688688
"size": 18054873088,
689689
"sha256": "9c323d37c192e45375a936828427f50c7a303d5772465f672df478b1f8cfc1d2"
690690
}

‎base-convert/crates/base-hub/src/catalog.rs‎

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,31 @@ mod tests {
307307
assert_eq!(e.arch.as_deref(), Some("llama"));
308308
}
309309

310+
/// Every catalog `quant` must expose its bit-width to `quant_bits`, because
311+
/// `basert pull <id>` with no `--target` asks for "q4" and the Catalog arm
312+
/// only serves the cataloged file when the bits match. A variant whose name
313+
/// hides them — `kquant-dynamic`, where the `q` is followed by `u` — silently
314+
/// falls through to picking a file by filename tag instead, which for a repo
315+
/// named after its upstream GGUFs fails outright:
316+
///
317+
/// no pre-converted .base for quant "q4" in this repo; it offers: 17gb, dynamic
318+
///
319+
/// Hence `q4k`, not `kquant`.
320+
#[test]
321+
fn every_catalog_quant_exposes_its_bit_width() {
322+
let cat = Catalog::bundled().unwrap();
323+
for e in &cat.models {
324+
assert!(
325+
crate::registry::quant_bits(&e.quant).is_some(),
326+
"catalog quant {:?} (id {}) hides its bit width from quant_bits — a bare \
327+
`basert pull {}` cannot match it",
328+
e.quant,
329+
e.id,
330+
e.id
331+
);
332+
}
333+
}
334+
310335
#[test]
311336
fn find_matches_exact_and_ci() {
312337
let cat = Catalog::from_json(

‎include/baseRT/baseRT.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ extern "C" {
6464

6565
#define BASERT_VERSION_MAJOR 0
6666
#define BASERT_VERSION_MINOR 2
67-
#define BASERT_VERSION_PATCH 1
67+
#define BASERT_VERSION_PATCH 2
6868

6969
/// Compile-time version, packed as `(MAJOR<<16) | (MINOR<<8) | PATCH`.
7070
/// Useful for `#if BASERT_VERSION >= 0x000200` feature checks.

0 commit comments

Comments
 (0)