Skip to content

Run plano natively by default#744

Merged
adilhafeez merged 20 commits intomainfrom
adil/build_without_docker
Mar 5, 2026
Merged

Run plano natively by default#744
adilhafeez merged 20 commits intomainfrom
adil/build_without_docker

Conversation

@adilhafeez
Copy link
Copy Markdown
Contributor

@adilhafeez adilhafeez commented Feb 12, 2026

Summary

  • Native mode is now the default (planoai up), Docker is opt-in (--docker)
  • Pre-compiled binaries (Envoy, WASM plugins, brightstaff) auto-downloaded on first run
  • Local build artifacts used when available (e.g. after planoai build)
  • Config templates bundled in wheel — pip install planoai && planoai up config.yaml works without repo clone
  • CI workflow to publish binaries on release + native smoke test

adilhafeez added a commit that referenced this pull request Feb 12, 2026
Add `--native` flag to `planoai build`, `up`, and `down` commands,
enabling Plano to run directly on the host without Docker. Envoy is
auto-downloaded on first run, and WASM plugins + brightstaff are
compiled from source.

- Native build via `planoai build --native` (Rust toolchain required)
- Auto-download Envoy from tetratelabs/archive-envoy releases
- Config rendering reuses config_generator in-process
- Process management via double-fork daemonization with PID file
- Tracing support: `--with-tracing` injects tracing config automatically
- Supports linux-amd64, linux-arm64, darwin-arm64
- Demo config, script, and README in demos/native_run/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@adilhafeez adilhafeez force-pushed the adil/build_without_docker branch from 92382fe to 1ac442f Compare February 12, 2026 01:43
@adilhafeez adilhafeez added this to the 0.2.1 milestone Feb 12, 2026
adilhafeez added a commit that referenced this pull request Feb 12, 2026
Add `--native` flag to `planoai build`, `up`, and `down` commands,
enabling Plano to run directly on the host without Docker. Envoy is
auto-downloaded on first run, and WASM plugins + brightstaff are
compiled from source.

- Native build via `planoai build --native` (Rust toolchain required)
- Auto-download Envoy from tetratelabs/archive-envoy releases
- Config rendering reuses config_generator in-process
- Process management via double-fork daemonization with PID file
- Tracing support: `--with-tracing` injects tracing config automatically
- Bump black to 24.10.0 for Python 3.14 compatibility
- Supports linux-amd64, linux-arm64, darwin-arm64
- Demo config, script, and README in demos/native_run/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@adilhafeez adilhafeez force-pushed the adil/build_without_docker branch from df70c80 to 8e27de6 Compare February 12, 2026 02:48
adilhafeez added a commit that referenced this pull request Feb 19, 2026
Add `--native` flag to `planoai build`, `up`, and `down` commands,
enabling Plano to run directly on the host without Docker. Envoy is
auto-downloaded on first run, and WASM plugins + brightstaff are
compiled from source.

- Native build via `planoai build --native` (Rust toolchain required)
- Auto-download Envoy from tetratelabs/archive-envoy releases
- Config rendering reuses config_generator in-process
- Process management via double-fork daemonization with PID file
- Tracing support: `--with-tracing` injects tracing config automatically
- Bump black to 24.10.0 for Python 3.14 compatibility
- Supports linux-amd64, linux-arm64, darwin-arm64
- Demo config, script, and README in demos/native_run/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@adilhafeez adilhafeez force-pushed the adil/build_without_docker branch 2 times, most recently from 409ef02 to 76a70d6 Compare February 19, 2026 05:13
@salmanap
Copy link
Copy Markdown
Contributor

Before I do a line-level code review: Is the build command mandatory? Meaning if we don't build native then the developer can't run native? This presumes that they must have our source code locally.

If the idea is for us to be a stand-alone binary (much like Envoy can be) then shouldn't we support that as a first-class option. Plus I am not sure if I have seen this --native flag in other open source projects that support both a dockerized container image and a binary. Can you share examples on the developer experience that might inform me here?

- Flip --native to --docker on up/down commands (native is now default)
- Add ensure_wasm_plugins() and ensure_brightstaff_binary() to auto-download from GitHub releases
- Add _find_config_dir() to support pip-installed usage without repo checkout
- Bundle config templates in wheel via pyproject.toml force-include
- Add publish-binaries.yml CI workflow for release binary uploads
- Update docs to reflect native-first experience
@adilhafeez adilhafeez force-pushed the adil/build_without_docker branch from db11594 to edfd237 Compare March 3, 2026 22:50
@adilhafeez adilhafeez changed the title Add native execution mode: run Plano without Docker Make native mode default + auto-download pre-compiled binaries Mar 4, 2026
@adilhafeez adilhafeez changed the title Make native mode default + auto-download pre-compiled binaries Run plano in natively by default Mar 4, 2026
@adilhafeez adilhafeez changed the title Run plano in natively by default Run plano natively by default Mar 4, 2026
@salmanap
Copy link
Copy Markdown
Contributor

salmanap commented Mar 4, 2026

Two comments

1/ update the demos to run with - doocker right now, else we will break all the current demos
2/ we should use compressed binaries that are downloaded for the native experience. Will be a better first-run experience

@adilhafeez
Copy link
Copy Markdown
Contributor Author

1/ update the demos to run with - doocker right now, else we will break all the current demos
2/ we should use compressed binaries that are downloaded for the native experience. Will be a better first-run experience

@salmanap did update CI to publish compressed artifacts and now using all demos with native build also updated demos Readme files to reflect that.

@adilhafeez adilhafeez merged commit f63d5de into main Mar 5, 2026
21 checks passed
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.

2 participants