Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 1 | Bitbake |
| 2 | ======= |
| 3 | |
| 4 | BitBake is a generic task execution engine that allows shell and Python tasks to be run |
| 5 | efficiently and in parallel while working within complex inter-task dependency constraints. |
| 6 | One of BitBake's main users, OpenEmbedded, takes this core and builds embedded Linux software |
| 7 | stacks using a task-oriented approach. |
| 8 | |
| 9 | For information about Bitbake, see the OpenEmbedded website: |
Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 10 | https://www.openembedded.org/ |
Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 11 | |
| 12 | Bitbake plain documentation can be found under the doc directory or its integrated |
| 13 | html version at the Yocto Project website: |
Andrew Geissler | 95ac1b8 | 2021-03-31 14:34:31 -0500 | [diff] [blame] | 14 | https://docs.yoctoproject.org |
Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 15 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 16 | Bitbake requires Python version 3.8 or newer. |
| 17 | |
Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 18 | Contributing |
| 19 | ------------ |
| 20 | |
Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 21 | Please refer to our contributor guide here: https://docs.yoctoproject.org/dev/contributor-guide/ |
| 22 | for full details on how to submit changes. |
| 23 | |
| 24 | As a quick guide, patches should be sent to bitbake-devel@lists.openembedded.org |
| 25 | The git command to do that would be: |
Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 26 | |
| 27 | git send-email -M -1 --to bitbake-devel@lists.openembedded.org |
| 28 | |
Andrew Geissler | 5082cc7 | 2023-09-11 08:41:39 -0400 | [diff] [blame] | 29 | If you're sending a patch related to the BitBake manual, make sure you copy |
| 30 | the 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 Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 34 | Mailing list: |
| 35 | |
Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 36 | https://lists.openembedded.org/g/bitbake-devel |
Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 37 | |
| 38 | Source code: |
| 39 | |
Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 40 | https://git.openembedded.org/bitbake/ |
Andrew Geissler | d159c7f | 2021-09-02 21:05:58 -0500 | [diff] [blame] | 41 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 42 | Testing |
| 43 | ------- |
Andrew Geissler | d159c7f | 2021-09-02 21:05:58 -0500 | [diff] [blame] | 44 | |
| 45 | Bitbake has a testsuite located in lib/bb/tests/ whichs aim to try and prevent regressions. |
| 46 | You can run this with "bitbake-selftest". In particular the fetcher is well covered since |
| 47 | it has so many corner cases. The datastore has many tests too. Testing with the testsuite is |
| 48 | recommended before submitting patches, particularly to the fetcher and datastore. We also |
| 49 | appreciate new test cases and may require them for more obscure issues. |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 50 | |
Andrew Geissler | 8f84068 | 2023-07-21 09:09:43 -0500 | [diff] [blame] | 51 | To run the tests "zstd" and "git" must be installed. |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 52 | |
| 53 | The assumption is made that this testsuite is run from an initialized OpenEmbedded build |
| 54 | environment (i.e. `source oe-init-build-env` is used). If this is not the case, run the |
| 55 | testsuite as follows: |
| 56 | |
| 57 | export PATH=$(pwd)/bin:$PATH |
| 58 | bin/bitbake-selftest |
Andrew Geissler | 8f84068 | 2023-07-21 09:09:43 -0500 | [diff] [blame] | 59 | |
| 60 | The testsuite can alternatively be executed using pytest, e.g. obtained from PyPI (in this |
| 61 | case, the PATH is configured automatically): |
| 62 | |
| 63 | pytest |