Skip to content

Moving ext components to dedicated repos

Anas Nashif edited this page Mar 16, 2019 · 1 revision


The goal is to move all external components maintained in ext/ to individual repositories managed by the project as forks of upstream components with local changes integrating those into Zephyr using the module concept.


Have a fork of the upstream code maintained in a pristine state in a branch (master) and maintain changes needed for Zephyr in a zephyr branch. The zephyr branch will have the integration using:

  • Kconfig
  • CmakeLists.txt
  • zephyr/module.yml

How to move components from ext/

Using git filter-branch it is possible to filter the commits related to a specific folder and create a new history for just the files in that directory, for example for QMSI:

git clone hal_qmsi
cd hal_qmsi
git filter-branch --prune-empty --subdirectory-filter ext/hal/qmsi master

This will result in only the commits that touched the code in ext/hal/qmsi


  • For code that is maintained in a git repository, how do we restore common history with the upstream project
You can’t perform that action at this time.