Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

release: ship the engine under its plain name so the archive actually runs#508

Merged
JustVugg merged 1 commit into
devJustVugg/colibri:devfrom
fix/release-package-engine-nameJustVugg/colibri:fix/release-package-engine-nameCopy head branch name to clipboard
Jul 21, 2026
Merged

release: ship the engine under its plain name so the archive actually runs#508
JustVugg merged 1 commit into
devJustVugg/colibri:devfrom
fix/release-package-engine-nameJustVugg/colibri:fix/release-package-engine-nameCopy head branch name to clipboard

Conversation

@JustVugg

Copy link
Copy Markdown
Owner

Every published release archive is unusable, on every platform, including v1.0.0.

Download it, unpack it, run coli chat:

engine is not built. Run: coli build

— with the engine sitting right there in the same directory.

Cause

coli locates the engine by looking for colibri / colibri.exe (then glm) next to itself, or $COLI_ENGINE. The Package step copied it in as colibri-<tag>-<platform>[.exe], which matches none of those, so it fell through to the $PREFIX/libexec/colibri layout that does not exist in an unpacked archive.

So anyone who downloaded a prebuilt binary — the whole point of publishing binaries — was told to build from source.

Fix

The version belongs in the archive name, which is where someone downloading it looks. It does not belong in the executable that a launcher has to find by name.

Reproduced the Package step locally, both ways:

before:  $ python3 coli chat --model <model>
         engine is not built. Run: coli build

after:   $ python3 coli info
             (\      colibrì v1.1.0
              )·>     tiny engine, immense model
         $ python3 coli chat --model <model>
         └─ 1024 tok · 633.41 tok/s · hit 100% · RSS 0.2 GB · 2s

Plus a gate so this cannot happen again

A packaging mistake is invisible to every other job in this repo: the build is green, the tests are green, and the artifact is still broken. Added a step that unpacks the archive we are about to publish into a clean directory and asserts coli finds the engine — asserting on behaviour, not on compilation.

The upload glob is now explicit about publishing only archives; it previously worked by accident, because the versioned engine name happened not to match colibri-*.*.

Note

This should land before the v1.1.0 tag, otherwise v1.1.0 ships the same broken archives.

… runs

Download a release archive, unpack it, run `coli chat`, and it says:

    engine is not built. Run: coli build

with the engine sitting right there in the same directory.

`coli` locates the engine by looking for "colibri"/"colibri.exe" (then "glm") next to itself,
or $COLI_ENGINE. The Package step copied it in as colibri-<tag>-<platform>[.exe], which
matches none of those, so it fell through to the $PREFIX/libexec layout that does not exist in
an unpacked archive. Every published archive on every platform was affected -- Windows,
Linux and macOS -- and v1.0.0 shipped this way too. Anyone who downloaded a prebuilt binary
and followed the README was told to build from source.

The version belongs in the ARCHIVE name, which is where someone downloading it looks; it does
not belong in the executable that a launcher has to find by name.

Also adds a verification step that unpacks the archive we are about to publish into a clean
directory and asserts `coli` finds the engine. A packaging mistake is invisible to every other
job here -- the build is green, the tests are green, and the artifact is still unusable -- so
this one has to assert on behaviour, not on compilation. Verified locally by reproducing the
Package step: before, "engine is not built"; after, `coli info` runs and `coli chat` reaches
the engine and generates.

The upload glob is now explicit about publishing only archives. It previously worked by
accident, because the versioned engine name did not match `colibri-*.*`.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@JustVugg
JustVugg merged commit 008ecc3 into dev Jul 21, 2026
9 checks passed
@JustVugg
JustVugg deleted the fix/release-package-engine-name branch July 21, 2026 22:34
pull Bot pushed a commit to bryanwills/colibri that referenced this pull request Jul 22, 2026
…me step

The README and quickstart still told Windows users to rename the downloaded
engine to glm.exe: that was the pre-JustVugg#508 archive layout. Since JustVugg#508 the
archive ships the engine plainly named colibri.exe and the launcher finds it
with zero setup — the rename step now just confuses people (and the file it
names no longer exists).

Same sweep for the build docs: 'make glm.exe' is not a target anymore
(windows.md recommended it), direct-run examples said ./glm(.exe), metal.md
built 'make glm METAL=1'. All now use the real names; troubleshooting rows
keep a '(glm.exe pre-rename)' note where old trees are the subject.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

Morty Proxy This is a proxified and sanitized view of the page, visit original site.