[bitbake-devel] [PATCH v2] cooker, toaster: variable definition tracking

Richard Purdie richard.purdie at linuxfoundation.org
Fri Nov 15 11:28:20 UTC 2013


On Thu, 2013-11-14 at 13:56 +0000, Alex DAMIAN wrote:
> From: Alexandru DAMIAN <alexandru.damian at intel.com>
> 
> In order to track the file where a configuration
> variable was defined, this patch bring these changes:
> 
> * a new feature is defined in CookerFeatures, named
> BASEDATASTORE_TRACKING. When a UI requests BASEDATASTORE_TRACKING,
> the base variable definition are tracked when configuration
> is parsed.
> 
> * getAllKeysWithFlags now includes variable history in the
> data dump
> 
> * toaster_ui.py will record the operation, file path
> and line number where the variable was changes
> 
> * toaster Simple UI will display the file path
> and line number for Configuration page
> 
> There is a change in the models to accomodate the recording
> of variable change history.
> 
> [YOCTO #5227]
> 
> Signed-off-by: Alexandru DAMIAN <alexandru.damian at intel.com>
> ---
>  lib/bb/cooker.py                                   | 15 ++++++++++++---
>  lib/bb/cookerdata.py                               |  1 +
>  lib/bb/ui/buildinfohelper.py                       | 14 ++++++++++----
>  lib/bb/ui/toasterui.py                             |  2 +-
>  lib/toaster/bldviewer/templates/configuration.html |  6 ++++--
>  lib/toaster/orm/models.py                          |  6 +++++-
>  6 files changed, 33 insertions(+), 11 deletions(-)
> 
> diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
> index 0580cd5..4c9067b 100644
> --- a/lib/bb/cooker.py
> +++ b/lib/bb/cooker.py
> @@ -81,7 +81,7 @@ class SkippedPackage:
>  
> 
>  class CookerFeatures(object):
> -    _feature_list = [HOB_EXTRA_CACHES, SEND_DEPENDS_TREE] = range(2)
> +    _feature_list = [HOB_EXTRA_CACHES, SEND_DEPENDS_TREE, BASEDATASTORE_TRACKING] = range(3)
>  
>      def __init__(self):
>          self._features=set()
> @@ -177,6 +177,9 @@ class BBCooker:
>          self.data.disableTracking()
>  
>      def loadConfigurationData(self):
> +        if CookerFeatures.BASEDATASTORE_TRACKING in self.featureset:
> +            self.enableDataTracking()
> +
>          self.initConfigurationData()
>          self.databuilder.parseBaseConfiguration()
>          self.data = self.databuilder.data
> @@ -189,6 +192,10 @@ class BBCooker:
>          bb.data.update_data(self.event_data)
>          bb.parse.init_parser(self.event_data)
>  
> +        if CookerFeatures.BASEDATASTORE_TRACKING in self.featureset:
> +            self.disableDataTracking()
> +
> +
>      def modifyConfigurationVar(self, var, val, default_file, op):
>          if op == "append":
>              self.appendConfigurationVar(var, val, default_file)
> @@ -320,7 +327,6 @@ class BBCooker:
>          open(confpath, 'w').close()
>  
>      def parseConfiguration(self):
> -
>          # Set log file verbosity
>          verboselogs = bb.utils.to_boolean(self.data.getVar("BB_VERBOSE_LOGS", "0"))
>          if verboselogs:
> @@ -1175,7 +1181,10 @@ class BBCooker:
>              try:
>                  v = self.data.getVar(k, True)
>                  if not k.startswith("__") and not isinstance(v, bb.data_smart.DataSmart):
> -                    dump[k] = { 'v' : v }
> +                    dump[k] = {
> +    'v' : v ,
> +    'history' : self.data.varhistory.variable(k),
> +                    }
>                      for d in flaglist:
>                          dump[k][d] = self.data.getVarFlag(k, d)
>              except Exception as e:
> diff --git a/lib/bb/cookerdata.py b/lib/bb/cookerdata.py
> index e640ed0..1cc7bc2 100644
> --- a/lib/bb/cookerdata.py
> +++ b/lib/bb/cookerdata.py
> @@ -127,6 +127,7 @@ class CookerConfiguration(object):
>          self.dump_signatures = False
>          self.dry_run = False
>          self.tracking = False
> +        self.server_only = False
>  
>          self.env = {}
>  

Patch looks ok in general but I think the above is leftover and
unneeded?

Cheers,

Richard




More information about the bitbake-devel mailing list