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 | |
| 21 | Please refer to |
Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 22 | https://www.openembedded.org/wiki/How_to_submit_a_patch_to_OpenEmbedded |
Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 23 | for guidelines on how to submit patches, just note that the latter documentation is intended |
| 24 | for OpenEmbedded (and its core) not bitbake patches (bitbake-devel@lists.openembedded.org) |
| 25 | but in general main guidelines apply. Once the commit(s) have been created, the way to send |
| 26 | the patch is through git-send-email. For example, to send the last commit (HEAD) on current |
| 27 | branch, type: |
| 28 | |
| 29 | git send-email -M -1 --to bitbake-devel@lists.openembedded.org |
| 30 | |
| 31 | Mailing list: |
| 32 | |
Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 33 | https://lists.openembedded.org/g/bitbake-devel |
Brad Bishop | d7bf8c1 | 2018-02-25 22:55:05 -0500 | [diff] [blame] | 34 | |
| 35 | Source code: |
| 36 | |
Andrew Geissler | eff2747 | 2021-10-29 15:35:00 -0500 | [diff] [blame] | 37 | https://git.openembedded.org/bitbake/ |
Andrew Geissler | d159c7f | 2021-09-02 21:05:58 -0500 | [diff] [blame] | 38 | |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 39 | Testing |
| 40 | ------- |
Andrew Geissler | d159c7f | 2021-09-02 21:05:58 -0500 | [diff] [blame] | 41 | |
| 42 | Bitbake has a testsuite located in lib/bb/tests/ whichs aim to try and prevent regressions. |
| 43 | You can run this with "bitbake-selftest". In particular the fetcher is well covered since |
| 44 | it has so many corner cases. The datastore has many tests too. Testing with the testsuite is |
| 45 | recommended before submitting patches, particularly to the fetcher and datastore. We also |
| 46 | appreciate new test cases and may require them for more obscure issues. |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 47 | |
Andrew Geissler | 8f84068 | 2023-07-21 09:09:43 -0500 | [diff] [blame] | 48 | To run the tests "zstd" and "git" must be installed. |
Andrew Geissler | 517393d | 2023-01-13 08:55:19 -0600 | [diff] [blame] | 49 | |
| 50 | The assumption is made that this testsuite is run from an initialized OpenEmbedded build |
| 51 | environment (i.e. `source oe-init-build-env` is used). If this is not the case, run the |
| 52 | testsuite as follows: |
| 53 | |
| 54 | export PATH=$(pwd)/bin:$PATH |
| 55 | bin/bitbake-selftest |
Andrew Geissler | 8f84068 | 2023-07-21 09:09:43 -0500 | [diff] [blame] | 56 | |
| 57 | The testsuite can alternatively be executed using pytest, e.g. obtained from PyPI (in this |
| 58 | case, the PATH is configured automatically): |
| 59 | |
| 60 | pytest |