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

Aníbal Limón anibal.limon at linux.intel.com
Tue Jun 16 16:56:10 PDT 2015


Hi Paul,

On 16/06/15 08:01, Paul Eggleton wrote:
> 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.
I agree, i'll add new class MaintainerError and make 
Configure/Compilation/Patch/License to
extend it.

>
>>               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?
Now UpgradeNotNeededError is handled by new upstream mechanism when load 
recipes to upgrade
printing message about it.

>
> Cheers,
> Paul
>

Regards,
     alimon



More information about the yocto mailing list