On Mon, 2011-05-02 at 09:34 +0200, Martin Kosek wrote: > On Thu, 2011-04-28 at 18:22 +0200, Jan Cholasta wrote: > > On 28.4.2011 08:57, Martin Kosek wrote: > > > On Wed, 2011-04-27 at 13:52 -0400, Dmitri Pal wrote: > > >> 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. > > > > > > OK then, I won't go against the crowd here, it's not that big deal :-) > > > Honza, please, update the patch accordingly and I will review it. > > > > I've added two new variables to the makefile: DEVELOPER_MODE and > > LINT_OPTIONS. LINT_OPTIONS contains the command line options passed to > > make-lint. Setting DEVELOPER_MODE to 1 enables the developer mode, which > > currently just presets LINT_OPTIONS to --no-fail (it might be used for > > more in future), so you can build your rpms even without python-rhsm > > installed by invoking: > > > > make rpms DEVELOPER_MODE=1 > > > > > > > > When the "make lint" fails because of missing optional package(s), I > > > would like the missing package(s) to be printed out for the user. So > > > that user can easily do "yum install<PKG-LIST>" and finish the IPA > > > build. > > > > This will be in my next patch, dealing with ticket 1184. > > > > ACK. This should be pushed along with your patch 15 (ticket 1184). > > Martin >
Pushed to master, ipa-2-0. Martin _______________________________________________ Freeipa-devel mailing list Freeipa-devel@redhat.com https://www.redhat.com/mailman/listinfo/freeipa-devel