You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Problem / Pain Point
Today, Zephyr does not provide a first-class, west-native way to run builds inside containers.
While Zephyr does document how to install dependencies manually and does publish
a reference Docker image, container usage remains:
docker run ...)westCommon pain points I’ve repeatedly seen (and personally hit):
Containers clearly solve many of these problems, but Zephyr has no opinionated,
west-aligned abstraction for them today.
Proposed Direction
This idea explores extending
westwith an environment abstraction that allowsZephyr projects to build:
…without modifying Zephyr itself and without changing existing west workflows.
Key concept
Developers still run:
They just get a reproducible, known-good environment underneath.
The Experiment:
west-envI’ve been prototyping this idea in a west extension called
west-env:👉 Repository:
https://github.com/bitconcepts/west-env
west-envis intentionally not a workspace, not a fork, and not a build system.It is a thin orchestration layer around
west build.What it does
Adds
west envsubcommands:west env buildwest env shellwest env doctorUses a simple
west-env.ymlfile alongsidewest.ymlRuns
west build:Keeps all workspace state on the host
Requires zero changes to Zephyr core
What it deliberately does not do
Why a
westExtension?This approach is intentionally aligned with Zephyr’s existing mental model:
west already owns:
west extensions are the sanctioned way to experiment
No new top-level tooling for users to learn
From the user’s perspective:
…behaves exactly like
west build, just with a reproducible environment.Container Model (High Level)
The container provides:
The host workspace provides:
.west/zephyr/The workspace is mounted at
/workContainers are disposable and stateless
This is enforced via a documented container contract in the repo.
Status & Compatibility
This experiment is currently validated with:
Zephyr: v4.3.0
Zephyr SDK: 0.17.4
Host platforms tested:
Container Image
By default, the project uses a prebuilt image from GitHub Container Registry:
However, the design does not depend on this specific image.
It may also work with Zephyr’s upstream image:
https://github.com/zephyrproject-rtos/docker-image
Swapping images is a config change, not a code change.
Quick Try-It (Minimal)
The repo includes a copy-only reference workspace.
High-level flow:
Authoritative, step-by-step instructions live here:
https://github.com/bitconcepts/west-env/tree/main/example
https://github.com/bitconcepts/west-env/tree/main/container
Why I’m Posting This in Ideas
This is not a proposal to upstream code immediately.
This is a request for:
feedback on the concept
discussion about scope and boundaries
interest from:
If there’s interest, the next steps would be:
Refine the model with community feedback
Write an RFC-style document
Decide whether this belongs as:
Discussion Prompts
I’d love feedback on:
Thanks for reading — happy to demo or iterate publicly.
Beta Was this translation helpful? Give feedback.
All reactions