Skip to content

Moving ext components to dedicated repos

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

Overview

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.

Structure

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 git@github.com:zephyrproject-rtos/zephyr.git 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

Issues

  • For code that is maintained in a git repository, how do we restore common history with the upstream project