[Freeipa-devel] [PATCH] 14 Run lint during each build

Dmitri Pal dpal at redhat.com
Wed Apr 27 17:52:01 UTC 2011


On 04/27/2011 12:33 PM, Adam Young wrote:
> On 04/27/2011 10:24 AM, Martin Kosek wrote:
>> On Wed, 2011-04-27 at 09:56 -0400, Adam Young wrote:
>>> On 04/27/2011 09:34 AM, Dmitri Pal wrote:
>>>> On 04/27/2011 08:13 AM, Jan Cholasta wrote:
>>>>> On 27.4.2011 13:17, Martin Kosek wrote:
>>>>>> On Wed, 2011-04-27 at 12:40 +0200, Jan Cholasta wrote:
>>>>>>> On 26.4.2011 18:14, Martin Kosek wrote:
>>>>>>>> On Tue, 2011-04-26 at 13:42 +0200, Jan Cholasta wrote:
>>>>>>>>> Automatically run the lint script during make
>>>>>>>>> rpms|client-rpms|srpms.
>>>>>>>>>
>>>>>>>> NACK until ticket 1184 is resolved and pushed. Currently,
>>>>>>>> pylint check
>>>>>>>> fails when optional python packages (like python-rhsm) are not
>>>>>>>> installed
>>>>>>>> on the machine. We should be able to build IPA without those
>>>>>>>> packages
>>>>>>>> installed.
>>>>>>> I think printing a note asking the developer to kindly install the
>>>>>>> missing packages would be sufficient. AFAIK there are currently
>>>>>>> only 2
>>>>>>> optional packages: python-rhsm and python-krbV. python-krbV is
>>>>>>> optional
>>>>>>> only for the client part of IPA, so you most likely have it already
>>>>>>> installed and installing python-rhsm is not really much of a chore.
>>>>>>> That
>>>>>>> way all of the code would always be checked and the lint script
>>>>>>> would be
>>>>>>> free of the unnecessary complexity of handling missing packages.
>>>>>> I don't think this is a right approach. When the package is optional
>>>>>> (currently it may be python-rhsm and python-krbV only, but there
>>>>>> may be
>>>>>> others in the future) I shouldn't be obliged to install them in
>>>>>> order to
>>>>>> build IPA.
>>>>> You shouldn't be obliged to install them as a user. As a developer,
>>>>> you should be ready for all kinds of crazy stuff IMHO.
>>>>>
>>>>>> When somebody develops something related with the optional
>>>>>> package he has them installed and the lint will check the
>>>>>> relevant code
>>>>>> too.
>>>>> All of the code goes to the package, so it all should be checked
>>>>> during the build.
>>>>>
>>>>> Imagine situation like this: You change something in module A,
>>>>> accidentally breaking functionality that module B depends on.
>>>>> Module A
>>>>> is checked and no error is found (because it's the kind of issue that
>>>>> exhibits itself only in certain conditions). Module B isn't checked,
>>>>> because it also depends on a not-installed optional package. If it
>>>>> was
>>>>> checked, it would report an error that would lead you to the error in
>>>>> module A. But everything looks fine, so the build succeeds, even when
>>>>> the error is there.
>>>>>
>>>>> The situation might be improbable, but IMO the code should be checked
>>>>> in the same ecosystem every time anyway, because weird stuff could
>>>>> happen if it wasn't.
>>>>>
>>>>>> It is not that big deal, I just think it would be an annoyance for
>>>>>> developers. But maybe there is a different opinion.
>>>>> I know we developers are lazy folk, but this is a matter of writing
>>>>> one simple command, just one time.
>>>>>
>>>>>> Martin
>>>>>>
>>>> How about a compromise?
>>>> By default everything is expected to be installed.
>>>> But there is a command line switch that allows to skip modules you
>>>> want
>>>> to skip. You provide the switch and the list of the modules to skip
>>>> and
>>>> build will validate only modules that are not in the list.
>>>>
>>>> Will something like this work?
>>>>
>>> Actually, make the command line switch just means that a  Lint failure
>>> doesn't stop the build.  That way, by default the build will fail
>>> unless
>>> everything is there and checked, but there is a way to move forward for
>>> building with a subset of packages.
>> Yes, I think we will can settle with a compromise. My only concern was
>> not to force the developers to install unnecessary packages for build.
>>
>> I would suggest that the build (or "make lint") succeeds without those
>> optional packages installed, but a warning is printed out that some
>> packages are missing and not all the code is checked.
>>
>> Then it is a developers responsibility to handle this and wouldn't be
>> force to install those packages for his test builds etc.
>
> How about instead it fails bny default, but prints the message "to
> suppress the lint check stopping the build, run make
> --no-fail-on-lint"  so that skipping lint is a deliberate decision?


Yes this is the approach I prefer.

>
>> Martin
>>
>> _______________________________________________
>> Freeipa-devel mailing list
>> Freeipa-devel at redhat.com
>> https://www.redhat.com/mailman/listinfo/freeipa-devel
>
> _______________________________________________
> Freeipa-devel mailing list
> Freeipa-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/freeipa-devel
>
>


-- 
Thank you,
Dmitri Pal

Sr. Engineering Manager IPA project,
Red Hat Inc.


-------------------------------
Looking to carve out IT costs?
www.redhat.com/carveoutcosts/






More information about the Freeipa-devel mailing list