--all-features does not build: the garb feature needs symbols that only exist on garb's feat/brag-format branch
@lilith is already working on this.
Since Aug 29, 2026.
- Dominant language
- Rust
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
## What
`cargo test --workspace --all-features` fails to compile with 8 errors:
```
error[E0425]: cannot find function `rgba_to_brag` in module `garb::bytes`
error[E0425]: cannot find function `brag_to_rgba` in module `garb::bytes`
error[E0425]: cannot find function `bgra_to_brag` in module `garb::bytes`
error[E0425]: cannot find function `brag_to_bgra` in module `garb::bytes`
error[E0425]: cannot find function `rgba_to_brag_inplace` in module `garb::bytes`
error[E0425]: cannot find function `brag_to_rgba_inplace` in module `garb::bytes`
error[E0425]: cannot find function `bgra_to_brag_inplace` in module `garb::bytes`
error[E0425]: cannot find function `brag_to_bgra_inplace` in module `garb::bytes`
error: could not compile `brag` (lib) due to 8 previous errors
```
Default features are fine — `cargo test --workspace` is 6 suites / 48 passed / 0 failed. Only the `garb` feature is affected.
## Why
`Cargo.toml` has:
```toml
garb = { optional = true, git = "https://github.com/imazen/garb" }
```
No `branch` or `rev`, so this tracks garb's **default branch** (`main`). Those eight functions exist only on garb's **`feat/brag-format`** branch — the sole commit defining them is `c437c7ae` (`src/bytes/mod.rs`, `src/bytes/avx2.rs`, `src/bytes/neon.rs`). They have never been on `main`.
The currently locked garb rev, `67c4efb`, is an ancestor of garb `main` and does not define them either, so this is not lockfile drift — the feature has never been buildable against garb `main`.
## Why nobody noticed
This repo has **no `.github/workflows/` at all** — no CI runs on it, so neither the `--all-features` build failure nor anything else is gated.
## Options
1. Point the dependency at the branch that has the symbols: `garb = { optional = true, git = "https://github.com/imazen/garb", branch = "feat/brag-format" }` — best pinned to a `rev` so it cannot drift.
2. Land the BRAG swizzle family on garb `main` and keep tracking the default branch.
3. Drop the `garb` feature if it is superseded by the in-tree `swizzle` feature.
Whichever way it goes, adding a minimal CI workflow that runs `cargo test --workspace --all-features` would stop this from silently rotting again.
## Also noticed (minor, not fixed here)
`cargo fmt --all --check` reports drift in two files that predate this report: `brag-art/benches/kernel_tiers.rs` and `brag-art/src/neon.rs`. Left alone since there is no fmt gate to unblock.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.