@szczys@chaos.social on Mastodon
@szczys@bsky.social on Bluesky
356 Lines
./west.yml
Entire nRF Connect SDK Manifest (if on allowlist)
west init <arguments>
.west/config
file with path to top-level manifest and Zephyr locationwest update
west init
west init
west init
(even if it fails) you cannot run that command again without removing .west/config
west update
Â
west update
religiously. Â Â Â Â Â It will work, but your app has
no way to track what version of Zephyr should be used for the build.
     Again, this will work. But what version of Zephyr is being used for the build?
project repo
Zephyr location
app
folder*
deps
folder*
app
*names for app
/dep
folders can be anything
Pros:
deps
folderCons:
*But not the Zephyr SDK and Python
west.yml
with app directorydeps
Our repo will be cloned to an app
subfolder of the folder containing .west/config
Adds Zephyr tree to dep/zephyr
(but no modules)
This won't build:
This will download ALL
Zephyr Modules (yuck!)
    Replaces
path: deps/zephyr
path-prefix was added by west manifest v0.8.0
Removed
Limit to only the modules needed by this project
west update
with allow-listNotice .git
, this is your application repo
We don't need Git to track this, the manifest file in our application repo does this!
Problem: are there any other modules needed by the library we're adding?
Solution: Use the manifest from your library to figure this out
Do these versions work together?
Yes, because we manually matched them.
But... let's look at the manifest(s) from this library
This library manifest includes an entry for a tested-working version of Zephyr
We can use inheritance to always pull the correct Zephyr version!
Original Application Manifest
Improved Application Manifest
Custom board definitions
Out-of-tree driver library
west manifest --resolve
west manifest --freeze
west <command> <param>
My name is Mike Szczys, thank you for joining me!