[oe] using OE efficiently for development

Nicolas Dechesne nicolas.dechesne at linaro.org
Thu Jan 16 23:25:06 UTC 2014


hi there,

i understand the subject is a bit weird.. i am seeking for advice or
best practices. how would you recommend to deploy OE in a large team
of devs where it is the main 'build' engine for the entire Linux
system which is *being developed*. e.g. the developers are the
'upstream' developer, but the product/system can only be built with
OE.

e.g. an OE build does the right thing from an 'integration'
perspective (fetch from SCM, apply patches, cleanup workspace, ...)
but are there any recommendations or good practices to use OE in a
'development' workflow?

I am familiar with externalsrc of course, but for a very large system
with 100+ recipes this isn't very practical. for the project I am
referring the current/legacy workflow is:

1- checkout all source code required to build the entire system (repo,
gclient, ...)
2- for any development item hack anywhere in any component
3- use a top level 'build script'
4- iterate until code ready, and push to SCM

Basically, that looks like Android development workflow to illustrate even more.

Now, how do we plug OE in such a workflow? any experience with
concrete product development would be very much appreciated.

My initial idea (not implemented, just an idea) was to create a conf
file (or a layer) that has the externalsrc definition for all the
recipes in the layers under development (typically all the proprietary
system bits). the idea is to create a workspace such as:

myproduct
|- oe
|- upstream

and in 'oe' folder put all the recipes, and in 'upstream' all the
source code under development (git clone, svn checkout, ...). the
entire workspace can be checkout with repo/gclient or anything else.

the externsrc variables can point to project in 'upstream' folder such
that switching from 'integration' mode to 'developer' mode would
require to include the conf file.

i am thinking that such a 'developer' pattern must be so common, that
they should be a good solution for it already. of course i am assuming
that doing (large) development in WORKDIR is not very practical, and
that would 'force' a large team of developers to become very familiar
with the inner working of OE (task, clean, rebuild, ..).

any good story to share about how OE is used in such 'developer'
workflow? if we compare to the Android workflow (no troll please!) an
OE workflow is more 'difficult' to grasp, i hope you see what i mean.

More generally, i also curious to discuss other typical developer use
case, such as developing upstream using 'feature branches', ...

thanks

nicolas



More information about the Openembedded-devel mailing list