Skip to content

Revert "build: engines ship on npm as @axiomcode/engine-<os>-<cpu>" (#478) - #903

Merged
swapnilpaliwal-sd merged 1 commit into
mainfrom
revert/478-engine-binaries
Sep 18, 2026
Merged

swapnilpaliwal-sd merged 1 commit into
mainfrom
revert/478-engine-binaries

Conversation

@swapnilpaliwal-sd

Copy link
Copy Markdown
Contributor

Reverts f6ba1c2 (#478). The engine binaries work is not ready to ship, so it goes back to a pull request and #454 reopens with it.

Not a plain revert

Two changes landed on top of #478 and both have to keep working.

#897, the locale fix, is preserved. It pinned the collation inside write_program, which #478 introduced, so reverting would remove the function and take the guard with it. The restored executor has the same defect: its #include lines come from unguarded globs, so the compiled-binary cache key follows the user's locale. The guard is re-applied to the restored program generation.

engine-id-locale-test.sh now accepts either shape of the executor, write_program or the inline generation, so it keeps measuring instead of failing for the wrong reason. Its --emit-program checks skip here, because that flag belongs to #478, and they report the skip rather than passing silently.

#887 stays, minus one field. bin, files and dependencies are independent of the engine work: without them the published package installs and then cannot run. optionalDependencies goes with the feature, since nothing resolves a packaged engine any more and those entries would name packages the executor never looks for.

What returns

The executor compiles with a local souffle and caches the binary, exactly as before #478. engine.conf, packaging/ and the two engine tests go with it.

Verified

Both surviving preflights pass against the reverted tree: package-contents 18 checks, engine-id-locale 1 check. Every gate the java preflight references still exists; the two that #478 added are removed from it along with their files.

…478)

Reverts f6ba1c2. The engine binaries work is not ready to ship, so it goes back
to a pull request and #454 reopens with it.

Not a plain revert, because two changes landed on top of it and both have to keep
working:

- #897 pinned the collation inside write_program, which #478 introduced. Reverting
  removes that function and would take the guard with it, and the restored executor
  has the same defect: its #include lines come from unguarded globs, so the cache
  key follows the user's locale. The guard is re-applied to the restored program
  generation, and engine-id-locale-test.sh now accepts either shape of the
  executor so it keeps measuring rather than failing for the wrong reason. Its
  --emit-program checks skip here, since that flag belongs to #478, and they report
  the skip rather than passing silently.

- #887 added bin, files and dependencies, which are independent of the engine work
  and stay. optionalDependencies goes with the feature: nothing resolves a packaged
  engine any more, so those entries would name packages the executor never looks for.

What comes back: the executor compiles with a local souffle and caches the binary,
exactly as before #478. engine.conf, packaging/ and the two engine tests go with it.
@swapnilpaliwal-sd
swapnilpaliwal-sd merged commit f9bdde5 into main Sep 18, 2026
@swapnilpaliwal-sd
swapnilpaliwal-sd deleted the revert/478-engine-binaries branch September 18, 2026 05:48
swapnilpaliwal-sd added a commit that referenced this pull request Sep 18, 2026
Restores the work reverted in #903 so it can be reviewed before it ships.
Unchanged from what was on main, with the fixes that landed on top of it kept:

- the collation pin from #895 stays inside write_program, so the engine id is a
  function of the rules and not of the user's locale. Without it a published
  engine is refused for java and python on any machine with a UTF-8 collation,
  which is the common configuration.
- bin, files and dependencies from #886 stay, so an install can actually run.
  optionalDependencies returns with the feature that reads them.

Known gaps, both measured and neither fixed here:

- linux-arm64 cannot install at all (#901). No dependency in the 0.21.x
  tree-sitter generation ships an arm64 prebuild, and a nested duplicate
  cannot build even with a toolchain. Unrelated to the engine: the install
  fails before any engine is resolved.
- nothing builds the binaries while the CI workflows are out of the tree, so a
  release means building by hand on each platform.
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