[bitbake-devel] [Openembedded-architecture] [PATCH] data_smart: Drop default expand=False to getVar [API change]

Richard Purdie richard.purdie at linuxfoundation.org
Sat Feb 6 09:22:47 UTC 2016


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 at 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




More information about the bitbake-devel mailing list