[yocto] [PATCHv2 09/11][auh] upgradehelper.py: Change policy for send emails and fix error passing

Paul Eggleton paul.eggleton at linux.intel.com
Tue Jun 16 06:01:52 PDT 2015


Hi Aníbal,

On Friday 12 June 2015 20:10:45 Aníbal Limón wrote:
> Now send emails almost in all cases this give the maintainer
> patches and diff to continue work also if the build isn't
> succesful.
> 
> [YOCTO #7489]
> 
> Signed-off-by: Aníbal Limón <anibal.limon at linux.intel.com>
> ---
>  upgradehelper.py | 19 ++++++++++---------
>  1 file changed, 10 insertions(+), 9 deletions(-)
> 
> diff --git a/upgradehelper.py b/upgradehelper.py
> index b1f075d..d065fba 100755
> --- a/upgradehelper.py
> +++ b/upgradehelper.py
> @@ -346,8 +346,6 @@ class Updater(object):
>                  self.git.clean_untracked()
>                  return
> 
> -        status = type(err).__name__
> -
>          # drop last upgrade from git. It's safer this way if the upgrade
> has # problems and other recipes depend on it. Give the other recipes a #
> chance...
> @@ -381,8 +379,14 @@ class Updater(object):
>                  "Attached are the patch, license diff (if change) and
> bitbake log.\n\n" \ "Regards,\nThe Upgrade Helper"
> 
> -            # don't bother maintainer with mail if the recipe is already up
> to date -            if status == "UpgradeNotNeededError":
> +            # if error only send email when useful infomration for
> maintainers exist +            if err and not (isinstance(err, PatchError)
> or \
> +               isinstance(err, ConfigureError) or \
> +               isinstance(err, CompilationError) or \
> +               isinstance(err, LicenseError)):
> +                D( "%s: Don't send email to maintainer because the error
> was " \ +                   "%s and the information isn't useful, please
> review it." \ +                    % (self.pn, type(err).__name__))
>                  return

I think a better approach here would be to have the classes of error that are 
likely to be fixable by the maintainer as inheriting from a particular class 
(e.g. MaintainerError) and then we can just check for that rather than having 
to extend this code every time we add a new type of error.

>              if self.maintainer in maintainer_override:
> @@ -478,6 +482,7 @@ class Updater(object):
> 
>          attempted_pkgs = 0
>          for self.pn, self.new_ver, self.maintainer in pkgs_to_upgrade:
> +            error = None
>              self.recipe = None
>              attempted_pkgs += 1
>              I(" ATTEMPT PACKAGE %d/%d" % (attempted_pkgs, total_pkgs))
> @@ -489,10 +494,6 @@ class Updater(object):
>                      step()
> 
>                  I(" %s: Upgrade SUCCESSFUL! Please test!" % self.pn)
> -                error = None
> -            except UpgradeNotNeededError as e:
> -                I(" %s: %s" % (self.pn, e.message))
> -                error = e

I'm confused by this. Won't this change result in UpgradeNotNeededError being 
treated as an actual error? Surely we don't actually want that?

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the yocto mailing list