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@redhat.com >> https://www.redhat.com/mailman/listinfo/freeipa-devel > > _______________________________________________ > Freeipa-devel mailing list > Freeipa-devel@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/ _______________________________________________ Freeipa-devel mailing list Freeipa-devel@redhat.com https://www.redhat.com/mailman/listinfo/freeipa-devel