imazen / imazen/BRAG

--all-features does not build: the garb feature needs symbols that only exist on garb's feat/brag-format branch

Open
#2 0 comments 0 reactions 1 assignee View on GitHub

@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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.