mbox series

[v10,0/9] devtool ide plugin

Message ID 20240122135901.171596-1-adrian.freihofer@siemens.com
Headers show
Series devtool ide plugin | expand

Message

Adrian Freihofer Jan. 22, 2024, 1:58 p.m. UTC
Changes from v9 to v10:
- Fix a bashism issue which was the root cause for the failures on the
  AB Debian and Ubuntu hosts:
  https://autobuilder.yoctoproject.org/typhoon/#/builders/80/builds/6257/steps/14/logs/stdio
  https://autobuilder.yoctoproject.org/typhoon/#/builders/127/builds/2751/steps/14/logs/stdio
  https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6317/steps/14/logs/stdio
  Learning:
    . oe-init-build-env build-folder
  does not work. Sourcing scripts with arguments requires bash.
- Fix a non-reproducible issue. Python os.listdir and os.walk return the
  files in undefined order. This was the root cause for:
  https://autobuilder.yoctoproject.org/typhoon/#/builders/86/builds/6318/steps/14/logs/stdio
  Fixed by sorting the list.
- Fix a bug in the fall-back to devtool build and deploy-target mode.

Changes from v8 to v9 (repeated since v9 was not passing the AB):
- Rename the plugin from "devtool ide" to "devtool ide-sdk".
- Change the wording from "recipe mode" versus "no recipe mode" to
  "devtool modify mode" or "modified mode" versus "shared sysroots mode"
  or "shared mode".
- Use cmake --install to separate the do_install and the do_compile step
  from each other. The dependency is now resolved by bitbake or by the
  SDK/IDE rather then by cmake internally.
- The impelmentation of the do_install step was replicating the code of
  bitbake. This is no longer the case. The new version calls bitbake.
  This works and might be improved later.
- Extend devtool to support pulgins of plugins and make the devtool
  ide-sdk IDE plugins real plugins which can also be provided by other
  layers.
- Improve the --ide=none mode. There is now a full set of scripts
  covering the complete remote debugging workflow. These is also useful
  for the oe-selftest implementaton.
- Improved the oe-selftest coverage.
- Drop the changes related to image-combined-dbg. Merging rootfs and
  rootfs-dbg does not change. Using debuginfod might be supported later
  on.
- Make the refactoring of the devtool deploy function easier to review.
  There are now three commits instead of one. But I have to admit that
  doing the refactoring was very easy but looking at the commits with
  e.g. git diff is still not ideal.
  The 4 commits are now optional and moved after the commits adding the
  devtool ide-sdk code to make them optional.
  What might helps is that devtool deploy-target is well tested by:
  oe-selftest -r devtool.DevtoolExtractTests.test_devtool_deploy_target
- QEMU user-mode related patches are already on poky master.

Documentation:
- The commit "WIP: sdk-manual: extensible.rst: cover devtool ide-sdk"
  documents how this new plugin is supposed to be used.
  The commit will be sent to the docs mailing list after these patches
  have been accepted.
- There was a presentation at the Yocto Summit 2023.11:
  https://www.youtube.com/watch?v=AqSCR5WiUds
  Note: The "none recipe mode" is now more flexible and implemented with
  --mode=shared.

Adrian Freihofer (9):
  cmake.bbclass: use --install
  devtool: support plugins with plugins
  devtool: new ide-sdk plugin
  oe-selftest devtool: ide-sdk tests
  devtool: refactor exec_fakeroot
  devtool: refactor deploy to use exec_fakeroot_no_d
  devtool: refactor deploy-target
  devtool: ide-sdk make deploy-target quicker
  WIP: sdk-manual: extensible.rst: cover devtool ide-sdk

 documentation/sdk-manual/extensible.rst     |  257 ++++-
 meta/classes-recipe/cmake.bbclass           |   14 +-
 meta/lib/oeqa/selftest/cases/devtool.py     |  492 +++++++++
 scripts/devtool                             |    5 +-
 scripts/lib/devtool/__init__.py             |    5 +-
 scripts/lib/devtool/deploy.py               |  239 +++--
 scripts/lib/devtool/ide_plugins/__init__.py |  267 +++++
 scripts/lib/devtool/ide_plugins/ide_code.py |  438 ++++++++
 scripts/lib/devtool/ide_plugins/ide_none.py |   53 +
 scripts/lib/devtool/ide_sdk.py              | 1065 +++++++++++++++++++
 10 files changed, 2716 insertions(+), 119 deletions(-)
 create mode 100644 scripts/lib/devtool/ide_plugins/__init__.py
 create mode 100644 scripts/lib/devtool/ide_plugins/ide_code.py
 create mode 100644 scripts/lib/devtool/ide_plugins/ide_none.py
 create mode 100755 scripts/lib/devtool/ide_sdk.py