From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: bitbake-devel@lists.openembedded.org
Subject: [PATCH 00/16] update_data() removal patchset
Date: Wed, 8 Jul 2015 15:58:55 +0100 [thread overview]
Message-ID: <cover.1436367362.git.richard.purdie@linuxfoundation.org> (raw)
Removing the need for finalization or update_data is something we've
idly thought about for a long time. Basically, the whole idea of a
specific finalization phase to the data store causes a lof of issues and
horrible corner cases. For example, should bitbake call update_data,
then expandKeys, or the other way around? Or should we keep calling
update_data until nothing changes?
Through careful thought of some operations and working around the corner
case problems, we've avoided most of the issues however there are some
things we keep observing:
* We keep needing "expanded" data stores in different parts of the
system alongside their unexpanded versions
* Few people understand why/when exactly they should call update_data()
* Its near impossible to set PREFERRED_PROVIDERS of recipes which are
dynamically named (gcc-cross-${TARGET_ARCH}) along with overrides.
This is something meta-darwin/mingw/baremetal could really use.
The alternative is a datastore which dynamically adjusts when anything
changes so that the work is done at getVar time rather than precaching
things at update_data time.
What is missing from the branch as yet is removal of the "expanded" data
stores from use within bitbake and starting to remove the update_data
calls (which are now just empty calls). This can happen once the code
is merged/stablising.
The following changes since commit f883cf240266ee7be2cbd8971a8164cf4df9e372:
cooker: Improve DATE/TIME handling (2015-07-08 00:06:01 +0100)
are available in the git repository at:
git://git.openembedded.org/bitbake noupdatedata
http://cgit.openembedded.org/cgit.cgi/bitbake/log/?h=noupdatedata
Richard Purdie (16):
data_smart: Defer append/prepend handling
data_smart: Remove need for update_data calls
data_smart: Improve override handling
data_smart: Fix cache clearance problems
data_smart: Cache overrides and fix data store
data_smart: Move override handling to getVar
parse/ast/data_smart: Add parsing flag to getVar/setVar
data_smart: VariableHistory: Ignore override duplicates and overlap
with CoW functions
data_smart: Seperate out the override cache
data_smart: Tweak OVERRIDES value cache for performance
data_smart: Improve override recursion handling
data_smart: Cache set(self.overrides)
data_smart: Fix keys() missing overrides
data_smart: Fix data expansion cache issues
data_smart: Fix appendVar/prependVar
tests/data: Add new data tests
lib/bb/data_smart.py | 337 ++++++++++++++++++++++++++++++--------------------
lib/bb/parse/ast.py | 14 +--
lib/bb/tests/data.py | 47 +++++++
lib/bb/tests/parse.py | 46 +++++++
4 files changed, 306 insertions(+), 138 deletions(-)
--
2.1.0
next reply other threads:[~2015-07-08 14:59 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-08 14:58 Richard Purdie [this message]
2015-07-08 14:58 ` [PATCH 01/16] data_smart: Defer append/prepend handling Richard Purdie
2015-07-08 14:58 ` [PATCH 02/16] data_smart: Remove need for update_data calls Richard Purdie
2015-07-08 14:58 ` [PATCH 03/16] data_smart: Improve override handling Richard Purdie
2015-07-08 14:58 ` [PATCH 04/16] data_smart: Fix cache clearance problems Richard Purdie
2015-07-08 14:58 ` [PATCH 05/16] data_smart: Cache overrides and fix data store Richard Purdie
2015-07-08 14:59 ` [PATCH 06/16] data_smart: Move override handling to getVar Richard Purdie
2015-07-08 14:59 ` [PATCH 07/16] parse/ast/data_smart: Add parsing flag to getVar/setVar Richard Purdie
2015-07-08 14:59 ` [PATCH 08/16] data_smart: VariableHistory: Ignore override duplicates and overlap with CoW functions Richard Purdie
2015-07-08 14:59 ` [PATCH 09/16] data_smart: Seperate out the override cache Richard Purdie
2015-07-08 14:59 ` [PATCH 10/16] data_smart: Tweak OVERRIDES value cache for performance Richard Purdie
2015-07-08 14:59 ` [PATCH 11/16] data_smart: Improve override recursion handling Richard Purdie
2015-07-08 14:59 ` [PATCH 12/16] data_smart: Cache set(self.overrides) Richard Purdie
2015-07-08 14:59 ` [PATCH 13/16] data_smart: Fix keys() missing overrides Richard Purdie
2015-07-08 14:59 ` [PATCH 14/16] data_smart: Fix data expansion cache issues Richard Purdie
2015-07-08 14:59 ` [PATCH 15/16] data_smart: Fix appendVar/prependVar Richard Purdie
2015-07-08 14:59 ` [PATCH 16/16] tests/data: Add new data tests Richard Purdie
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.1436367362.git.richard.purdie@linuxfoundation.org \
--to=richard.purdie@linuxfoundation.org \
--cc=bitbake-devel@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.