All of lore.kernel.org
 help / color / mirror / Atom feed
From: tim.orling@konsulko.com
To: openembedded-core@lists.openembedded.org
Subject: [PATCH v2 0/5] Implement RECIPE_UPDATE_EXTRA_TASKS
Date: Tue, 11 Jun 2024 08:55:10 -0700	[thread overview]
Message-ID: <cover.1718120117.git.tim.orling@konsulko.com> (raw)

From: Tim Orling <tim.orling@konsulko.com>

Whenever a recipe which inherits cargo-update-recipe-crates is upgraded with
devtool (such as with the Auto Upgrade Helper) we frequently see failures.
If the upstream Cargo.toml or Cargo.lock has been changed, the corresponding
<recipe_name>-crates.inc needs to be updated. This is done by running the
"bitbake -c update_crates <recipe_name>" task, but this has until now been
a manual operation.

Add a new variable RECIPE_UPDATE_EXTRA_TASKS which is a string delimited
list of tasks to be run during the upgrade() method of
meta/lib/devtool/upgrade.py.

To solve the problem described above, the solution is for all recipes which
inherit cargo-update-recipe-crates to add the "do_update_crates" task to
the RECIPE_UPDATE_EXTRA_TASKS variable. Add this to the bbclass.

Add test case based on the guessing-game source we currently use for the
maturin runtime test cases, based on https://www.maturin.rs/tutorial.
This oe-selftest case checks for both the change in the recipe file and
the recipe -crates.inc file.

This relies on a new "guessing-game" git repository which has been added to
git.yoctoproject.org/guessing-game .

Currently, update_crates is the only task tested in this
RECIPE_UPDATE_EXTRA_TASKS use case. Other use cases that have been discussed
are the python3-manifest.json and perl-rdepends.txt files which are generated
by manual tasks after an upgrade of python3 and perl respectively.

Two obvious new use cases that would be nice to add with changes in oe-core are:
(1) some kind of "go-mod://" update class to use a similar <recipe>-go-mods.inc
(2) some kind of rework of the "npm://" fetcher to use <recipe>-npm-mods.inc
But both of those are out of scope for this proposal.

The _run_recipe_update_extra_tasks() method added to lib/devtool/upgrade.py
checks the result of each of the upgrade tasks and raises a DevtoolError if it
fails.

An attempt at documenting the new variable has been added to ref-manual,
but if anyone has some ideas for better clarification, input is welcome.

The following changes since commit 46b5c2ea6cb97bb6dd0a85bef3be9eaa9a19b4b5:

  linuxloader: add -armhf on arm only for TARGET_FPU 'hard' (2024-06-11 11:41:33 +0100)

are available in the Git repository at:

  https://git.yoctoproject.org/poky-contrib timo/RECIPE_UPDATE_EXTRA_TASKS_v2
  https://git.yoctoproject.org/poky-contrib/log/?h=timo/RECIPE_UPDATE_EXTRA_TASKS_v2

Tim Orling (5):
  devtool upgrade: enable RECIPE_UPDATE_EXTRA_TASKS
  cargo-update-recipe-crates: add RECIPE_UPDATE_EXTRA_TASKS
  ref-manual: add RECIPE_UPDATE_EXTRA_TASKS variable
  meta-selftest: add python3-guessing-game
  oe-selftest: add RECIPE_UPDATE_EXTRA_TASKS test

 documentation/ref-manual/variables.rst        |  7 ++
 .../python/python3-guessing-game-crates.inc   | 82 +++++++++++++++++
 .../python3-guessing-game-crates.inc.upgraded | 88 +++++++++++++++++++
 .../python/python3-guessing-game_git.bb       | 19 ++++
 .../python3-guessing-game_git.bb.upgraded     | 19 ++++
 .../cargo-update-recipe-crates.bbclass        |  2 +
 meta/lib/oeqa/selftest/cases/devtool.py       | 46 ++++++++++
 scripts/lib/devtool/upgrade.py                | 11 +++
 8 files changed, 274 insertions(+)
 create mode 100644 meta-selftest/recipes-devtools/python/python3-guessing-game-crates.inc
 create mode 100644 meta-selftest/recipes-devtools/python/python3-guessing-game-crates.inc.upgraded
 create mode 100644 meta-selftest/recipes-devtools/python/python3-guessing-game_git.bb
 create mode 100644 meta-selftest/recipes-devtools/python/python3-guessing-game_git.bb.upgraded

-- 
2.45.2



             reply	other threads:[~2024-06-11 15:55 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-11 15:55 tim.orling [this message]
2024-06-11 15:55 ` [PATCH v2 1/5] devtool upgrade: enable RECIPE_UPDATE_EXTRA_TASKS tim.orling
2024-06-12 17:28   ` [PATCH v3 " tim.orling
2024-06-11 15:55 ` [PATCH v2 2/5] cargo-update-recipe-crates: add RECIPE_UPDATE_EXTRA_TASKS tim.orling
2024-06-12 14:44   ` [OE-core] " Ross Burton
2024-06-12 17:33   ` [PATCH v3 " tim.orling
2024-06-11 15:55 ` [PATCH v2 3/5] ref-manual: add RECIPE_UPDATE_EXTRA_TASKS variable tim.orling
2024-06-11 15:55 ` [PATCH v2 4/5] meta-selftest: add python3-guessing-game tim.orling
2024-06-11 15:55 ` [PATCH v2 5/5] oe-selftest: add RECIPE_UPDATE_EXTRA_TASKS test tim.orling

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1718120117.git.tim.orling@konsulko.com \
    --to=tim.orling@konsulko.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.