blob: e9f4c858ee14c0ea7ef259ff06d766e46f9c288d [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
Patrick Williams73bd93f2024-02-20 08:07:48 -060021Please refer to our contributor guide here: https://docs.yoctoproject.org/contributor-guide/
Andrew Geissler5082cc72023-09-11 08:41:39 -040022for full details on how to submit changes.
23
24As a quick guide, patches should be sent to bitbake-devel@lists.openembedded.org
25The git command to do that would be:
Brad Bishopd7bf8c12018-02-25 22:55:05 -050026
27 git send-email -M -1 --to bitbake-devel@lists.openembedded.org
28
Andrew Geissler5082cc72023-09-11 08:41:39 -040029If you're sending a patch related to the BitBake manual, make sure you copy
30the Yocto Project documentation mailing list:
31
32 git send-email -M -1 --to bitbake-devel@lists.openembedded.org --cc docs@lists.yoctoproject.org
33
Brad Bishopd7bf8c12018-02-25 22:55:05 -050034Mailing list:
35
Andrew Geisslereff27472021-10-29 15:35:00 -050036 https://lists.openembedded.org/g/bitbake-devel
Brad Bishopd7bf8c12018-02-25 22:55:05 -050037
38Source code:
39
Andrew Geisslereff27472021-10-29 15:35:00 -050040 https://git.openembedded.org/bitbake/
Andrew Geisslerd159c7f2021-09-02 21:05:58 -050041
Andrew Geissler517393d2023-01-13 08:55:19 -060042Testing
43-------
Andrew Geisslerd159c7f2021-09-02 21:05:58 -050044
45Bitbake has a testsuite located in lib/bb/tests/ whichs aim to try and prevent regressions.
46You can run this with "bitbake-selftest". In particular the fetcher is well covered since
47it has so many corner cases. The datastore has many tests too. Testing with the testsuite is
48recommended before submitting patches, particularly to the fetcher and datastore. We also
49appreciate new test cases and may require them for more obscure issues.
Andrew Geissler517393d2023-01-13 08:55:19 -060050
Andrew Geissler8f840682023-07-21 09:09:43 -050051To run the tests "zstd" and "git" must be installed.
Andrew Geissler517393d2023-01-13 08:55:19 -060052
53The assumption is made that this testsuite is run from an initialized OpenEmbedded build
54environment (i.e. `source oe-init-build-env` is used). If this is not the case, run the
55testsuite as follows:
56
57 export PATH=$(pwd)/bin:$PATH
58 bin/bitbake-selftest
Andrew Geissler8f840682023-07-21 09:09:43 -050059
60The testsuite can alternatively be executed using pytest, e.g. obtained from PyPI (in this
61case, the PATH is configured automatically):
62
63 pytest