blob: 78610e65f1347d56bc7c901a358866df28cd7367 [file] [log] [blame]
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001Bitbake
2=======
3
4BitBake is a generic task execution engine that allows shell and Python tasks to be run
5efficiently and in parallel while working within complex inter-task dependency constraints.
6One of BitBake's main users, OpenEmbedded, takes this core and builds embedded Linux software
7stacks using a task-oriented approach.
8
9For information about Bitbake, see the OpenEmbedded website:
Andrew Geisslereff27472021-10-29 15:35:00 -050010 https://www.openembedded.org/
Brad Bishopd7bf8c12018-02-25 22:55:05 -050011
12Bitbake plain documentation can be found under the doc directory or its integrated
13html version at the Yocto Project website:
Andrew Geissler95ac1b82021-03-31 14:34:31 -050014 https://docs.yoctoproject.org
Brad Bishopd7bf8c12018-02-25 22:55:05 -050015
Andrew Geissler517393d2023-01-13 08:55:19 -060016Bitbake requires Python version 3.8 or newer.
17
Brad Bishopd7bf8c12018-02-25 22:55:05 -050018Contributing
19------------
20
21Please refer to
Andrew Geisslereff27472021-10-29 15:35:00 -050022https://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded
Brad Bishopd7bf8c12018-02-25 22:55:05 -050023for guidelines on how to submit patches, just note that the latter documentation is intended
24for OpenEmbedded (and its core) not bitbake patches (bitbake-devel@lists.openembedded.org)
25but in general main guidelines apply. Once the commit(s) have been created, the way to send
26the patch is through git-send-email. For example, to send the last commit (HEAD) on current
27branch, type:
28
29 git send-email -M -1 --to bitbake-devel@lists.openembedded.org
30
31Mailing list:
32
Andrew Geisslereff27472021-10-29 15:35:00 -050033 https://lists.openembedded.org/g/bitbake-devel
Brad Bishopd7bf8c12018-02-25 22:55:05 -050034
35Source code:
36
Andrew Geisslereff27472021-10-29 15:35:00 -050037 https://git.openembedded.org/bitbake/
Andrew Geisslerd159c7f2021-09-02 21:05:58 -050038
Andrew Geissler517393d2023-01-13 08:55:19 -060039Testing
40-------
Andrew Geisslerd159c7f2021-09-02 21:05:58 -050041
42Bitbake has a testsuite located in lib/bb/tests/ whichs aim to try and prevent regressions.
43You can run this with "bitbake-selftest". In particular the fetcher is well covered since
44it has so many corner cases. The datastore has many tests too. Testing with the testsuite is
45recommended before submitting patches, particularly to the fetcher and datastore. We also
46appreciate new test cases and may require them for more obscure issues.
Andrew Geissler517393d2023-01-13 08:55:19 -060047
Andrew Geissler8f840682023-07-21 09:09:43 -050048To run the tests "zstd" and "git" must be installed.
Andrew Geissler517393d2023-01-13 08:55:19 -060049
50The assumption is made that this testsuite is run from an initialized OpenEmbedded build
51environment (i.e. `source oe-init-build-env` is used). If this is not the case, run the
52testsuite as follows:
53
54 export PATH=$(pwd)/bin:$PATH
55 bin/bitbake-selftest
Andrew Geissler8f840682023-07-21 09:09:43 -050056
57The testsuite can alternatively be executed using pytest, e.g. obtained from PyPI (in this
58case, the PATH is configured automatically):
59
60 pytest