From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Paul Eggleton <paul.eggleton@linux.intel.com>
Cc: openembedded-architecture@lists.openembedded.org,
bitbake-devel <bitbake-devel@lists.openembedded.org>
Subject: Re: [Openembedded-architecture] [PATCH] data_smart: Drop default expand=False to getVar [API change]
Date: Sat, 06 Feb 2016 09:22:47 +0000 [thread overview]
Message-ID: <1454750567.27087.289.camel@linuxfoundation.org> (raw)
In-Reply-To: <2240342.nbMP20jZIu@peggleto-mobl.ger.corp.intel.com>
On Sat, 2016-02-06 at 19:38 +1300, Paul Eggleton wrote:
> On Tue, 02 Feb 2016 23:55:40 Richard Purdie wrote:
> > At some point in the future, getVar should expand by default. To
> > get
> > there from the current position, we need a period of time where the
> > expand parameter is mandatory.
> >
> > This patch starts that process. Clear errors will result from any
> > code
> > which doesn't provide this. Layers can be fixed with an expression
> > like:
> >
> > sed -e 's:\(\.getVar([^,()]*, [^,()]*\)):\1, False):g' -i `grep
> > -ril getVar
> > *`
> >
> > Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> >
> > diff --git a/bitbake/lib/bb/data_smart.py
> > b/bitbake/lib/bb/data_smart.py
> > index 8c3e9ef..79bec1b 100644
> > --- a/bitbake/lib/bb/data_smart.py
> > +++ b/bitbake/lib/bb/data_smart.py
> > @@ -566,7 +566,7 @@ class DataSmart(MutableMapping):
> > if len(shortvar) == 0:
> > override = None
> >
> > - def getVar(self, var, expand=False, noweakdefault=False,
> > parsing=False): + def getVar(self, var, expand,
> > noweakdefault=False,
> > parsing=False): return self.getVarFlag(var, "_content", expand,
> > noweakdefault, parsing)
> >
> > def renameVar(self, key, newkey, **loginfo):
>
> This change is reasonable and we've been discussing it on and off for
> years
> now, so I'm generally in favour.
>
> However, what I would really like to see us do is write a script that
> people
> can use to upgrade their layers to accommodate this and any other
> breaking
> changes so they don't have to go and figure out what to do
> themselves; the more
> of these kinds of changes we make the more useful this script will
> be. I'll
> file a bug.
This sounds great at first glance. What are the expectations here
though?
The getVar/getVarFlag change can be automatic, however, the MAKEFLAGS
change can't, nor can the python expansion change, at least not at all
easily. I suspect that this change is unusual and that in most cases we
make changes which can't be automatically fixed.
I worry that the user expectation then changes that we'd only ever make
changes which the script can 'save' them from and we end up blocked
from making any other kind of change. Some could argue that is a good
thing, I'm less sure.
This is one reason I put the sed command in these commits. I would note
that the version in one that I sent to the list was incorrect, I did
fix it on the branch though.
The compromise might be better migration notes in the metadata for
these issues?
[Incidentally, there are other kinds of breakage, e.g. I just fixed one
of the sanity tests and merged the fix, thinking I'd checked the
metadata for issues. Turns out multilib is still broken :(. Fixing that
breakage is way beyond a script, sadly, it will probably take me most
of the weekend to untangle that mess :(]
Cheers,
Richard
prev parent reply other threads:[~2016-02-06 9:22 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-02 23:55 [PATCH] data_smart: Drop default expand=False to getVar [API change] Richard Purdie
2016-02-03 10:11 ` [Openembedded-architecture] " Otavio Salvador
2016-02-03 11:22 ` Richard Purdie
2016-02-03 15:06 ` Martin Jansa
2016-02-03 16:22 ` Richard Purdie
2016-02-03 16:29 ` Christopher Larson
2016-02-03 16:38 ` Richard Purdie
2016-02-03 16:52 ` Christopher Larson
2016-02-03 16:43 ` Otavio Salvador
2016-02-06 6:38 ` Paul Eggleton
2016-02-06 9:22 ` Richard Purdie [this message]
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=1454750567.27087.289.camel@linuxfoundation.org \
--to=richard.purdie@linuxfoundation.org \
--cc=bitbake-devel@lists.openembedded.org \
--cc=openembedded-architecture@lists.openembedded.org \
--cc=paul.eggleton@linux.intel.com \
/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.