On Thu, Feb 21, 2019 at 4:34 PM sebb <seb...@gmail.com> wrote:

> On Thu, 21 Feb 2019 at 13:14, Philippe Mouawad
> <philippe.moua...@gmail.com> wrote:
> >
> > On Thursday, February 21, 2019, sebb <seb...@gmail.com> wrote:
> >
> > > On Thu, 21 Feb 2019 at 10:29, Philippe Mouawad
> > > <philippe.moua...@gmail.com> wrote:
> > > >
> > > > IMO,
> > > > if Vladimir is willing to do migration to Gradle (of course providing
> > > > alternative or equivalent to existing tasks), we should not stop him
> > > > because it is a change that might be impacting.
> > > > JMeter is not a frozen project and temporary chaos is acceptable and
> it's
> > > > life.
> > > >
> > > > JMeter lacks easy setup for developers and new comers.
> > > > I see it every time I jump start a developer on it.
> > > > I guess a migration to gradle will fix this.
> > >
> > > Yes - that is currently just a *guess* - it remains to be seen.
> >
> >
> > it’s based on 4 experiences already.
> > Like it or not, Ant is no more a standard although it’s great.
> > Dependency management that maven/gradle offer are the missing piece.
> >
> >
> > And nowadays, when you pick on OSS project, you import in your ide either
> > through maven or gradle, they are the standards.
> > Yes Ant does the job for us, but it doesn’t mean we can’t improve.
> > Bringing new developers on the project is also a target for us.
> >
> > We already saw an increase in contributions when we started using our
> > github mirror, adopting nowadays tools is criticial.
> >
> > And IMO, it can be an opportunity to improve also release process which
> > slows down the releases.
> >
> >
> >
> > >
> > > I have my doubts.
> > >
> > > Are the problems new developers experience actually anything to do
> > > with the build system?
> >
> >
> > Yes IME
>
> Such as?
>
Exposed above

>
> >
> > > Or are they issues in the tests?
> >
> >
> > Yes, there is also room for improvement on tests side.
> > Graham and Felix improved this a lot.
> >
> > - e.g. some tests make assumptions about the environment that might
> > > not be true, and the error message does not relate to the underlying
> > > cause.
> > > Or issues in documentation?
> >
> >
> > I think documentation is probably the best among all tools I use.
> > But as you know, nobody reads it.
> >
> > When people select a tool, which one gets better opinion :
> > - the one that builds  immediately after download and import in IdE
> > - or the one that works after reading a long doc and tweaking, asking on
> > mailing list...
>
> Surely that is more a question of which IDE is used?
>

If you use Eclipse or Intellij (and I think Netbeans also since PR was
proposed by Netbeans committer), they accept maven/gradle format.

>
> >
> > In other words, I think the setup issue is tangential to the question
> > > of whether Gradle is better than Ant.
> > >
> > > > sebb, are you vetoing this change ?
> > >
> > > As I already wrote, it needs to be shown that Gradle can properly
> replace
> > > Ant.
> >
> >
> > I guess that’s what Vladimir will do with a pr or a branch
> >
> > >
> > > We should not just assume that it's going to be better (or even
> possible).
> >
> >
> > why be negative before trying?
>
> I'm all for try before buy.
>
> What you seem to be saying is that we should swap to Gradle without
> any further investigation

Certainly not. I am of course waiting for PR.
I am confident it will do it, it is used by Spring Source and those guys
are rather very smart.
I use more Maven, but I think here, Gradle looks a better candidate

> .
>
> Gradle may be the 'new' tool, and may well be better, but new is not
> always better.
>

Gradle is not that new, initial release was 12 years ago. It's a standard.

>
> Sorry, but I need some proof.
>
> >
> > >
> > > So yes, at this point I suppose you could say that I would veto
> > > switching to Gradle.
> >
> >
> > I don’ t share this approach.
> > IMO it discourages enthusiasts.
> > IMO, if a PR shows gradle works and does the job, there is no reason for
> > vetoing.
>
> That is not my position at all.
> I am not vetoing the use of Gradle.
> But I would veto a change to Gradle without first proving that it works.
>
ok then we're ok, and I'm sure we will move forward.


> I see this as being similar to insisting on a unit test before
> accepting some new functionality.
>
> I hope you all agree that unit tests are essential, especially for
> something that affects the entire product.
>

Yes.

>
> >
> > >
> > > But if it can be proved to work, then I would drop the veto
> > > - unless Gradle turned out to be much more complicated than Ant
> > > (that is probably not going to be the case, but at present there is no
> > > evidence that it will be simpler for JMeter)
> >
> >
> > let’s us see what Vladimir will do, I am confident he will succeed.
> >
> > >
> > > > If Vladimir works in a branch or with a PR, why would be block it ?
> > >
> > > I never said that.
> > >
> > > It's obviously fine to work on a PoC (proof of concept) so long as it
> > > does not impact current development unduly.
> >
> >
> > We all agree I think
> >
> > >
> > > >
> > > > Thanks
> > > >
> > > > On Thu, Feb 21, 2019 at 11:23 AM sebb <seb...@gmail.com> wrote:
> > > >
> > > > > On Thu, 21 Feb 2019 at 09:48, Vladimir Sitnikov
> > > > > <sitnikov.vladi...@gmail.com> wrote:
> > > > > >
> > > > > > sebb> Whoever wants to switch should show that it can replace the
> > > current
> > > > > > sebb> Ant build system without causing disruption.
> > > > > > sebb> It needs to support all of the existing Ant targets.
> > > > > >
> > > > > > Ok, I read that as you agree to replace Ant with Gradle.
> > > > >
> > > > > No, I did not agree to that.
> > > > > I would only agree if you can show that switching to Gradle won't
> > > > > affect current functionality.
> > > > >
> > > > > > So far the only technical justification (see
> > > > > > https://www.apache.org/foundation/voting.html#Veto ) I see is
> > > "Gradle
> > > > > might
> > > > > > fail to implement some of current build logic".
> > > > > > Of course the only way to prove that "Gradle fails to implement
> the
> > > > > > required tasks" is to actually implement the tasks. I agree there
> > > might
> > > > > be
> > > > > > issues, however I'm sure this fear alone does not qualify as
> > > "technical
> > > > > > justification".
> > > > >
> > > > > Huh?
> > > > > Of course that is a technical justification.
> > > > >
> > > > > > So far
> > > > > > ++1 (Binding): Vladimir Sitnikov
> > > > > > ++1 (Binding): Philippe Mouawad
> > > > > >
> > > > > > Vetos: none
> > > > >
> > > > > -1 from me unless Gradle can be shown to be equivalent.
> > > > >
> > > > > > sebb> (The Ant scripts don't change that often, so that should
> not
> > > be too
> > > > > > difficult).
> > > > > >
> > > > > > Maintenance of multiple build systems at once is always a time
> > > consuming
> > > > > > task.
> > > > >
> > > > > Of course, but my point was that we rarely need to change Ant, so
> > > > > there should not be much/any parallel maintenance.
> > > > > Assuming that the Gradle build proves to work, at that point the
> Ant
> > > > > build can be dropped (and the build docs updated)
> > > > >
> > > > > > We don't seem to have funding for that, so I suggest we just
> > > implement
> > > > > > Gradle build as a branch, and merge that in a single go.
> > > > >
> > > > > What's funding got to do with anything?
> > > > >
> > > > > > sebb> Why use a build system that all but forces a change on you?
> > > > > >
> > > > > > Sebb, I don't suggest Gradle just because it forces to move files
> > > around.
> > > > >
> > > > > My comment above was related to Maven, not Gradle.
> > > > >
> > > > > If Gradle forces files to be moved, then it is a reason not to use
> it.
> > > > >
> > > > > > I suggest Gradle since it simplifies day-to-day coding activities
> > > like:
> > > > > > 1) loading JMeter project to IDE
> > > > > > 2) building JMeter
> > > > > > 3) testing JMeter
> > > > > > 4) dependency management
> > > > > > 5) other
> > > > >
> > > > > Those are mere assertions, and have to be justified/shown to be
> true
> > > > > in practise.
> > > > >
> > > > > > On top of that, there are good reasons for certain folder layout.
> > > > >
> > > > > Of course, but AFAICT that is not really relevant to whether to use
> > > > > Gradle or not.
> > > > >
> > > > > > For instance, Gradle encourages to keep dependency jar files in a
> > > > > > completely separate folder (outside of the project).
> > > > >
> > > > > That could affect JMeter at run-time.
> > > > >
> > > > > > This prevents accidentally putting multi-megabyte blobs under
> source
> > > > > > control like in
> > > > > >
> > > > >
> https://github.com/apache/jmeter/commit/c9a4d557f9a8e213ccc93215264a25
> > > 4dfb2bc50a
> > > > > > Then it makes sense to keep test classes close to the relevant
> code.
> > > > > > Otherwise the codebase looks like a single module which really
> takes
> > > time
> > > > > > to comprehend.
> > > > > > Currently all the test code is located in a single
> folder/structure,
> > > and
> > > > > it
> > > > > > is not clear which tests are related to which jars.
> > > > >
> > > > > I agree the test code could perhaps be moved.
> > > > >
> > > > > > So moving files around it not just to make Gradle happy, but it
> is
> > > more
> > > > > to
> > > > > > make developers who read and maintain the code happy.
> > > > >
> > > > > Again, that is just an assertion.
> > > > >
> > > > > > sebb> Note that the current Ant build relies on some Beanshell
> > > scripting
> > > > > and
> > > > > > sebb> Maven integration.
> > > > > >
> > > > > > Gradle approach there would be to use Java (or Kotlin) code and
> > > place it
> > > > > in
> > > > > > buildSrc folder.
> > > > > > Gradle builds buildSrc code at build script initialization, and
> > > buildSrc
> > > > > > code can represent whatever build logic is required
> > > > > > Doc:
> > > > > >
> > > > > https://docs.gradle.org/current/userguide/organizing_
> > > gradle_projects.html#sec:build_sources
> > > > > >
> > > > > > Apparently, Java/Kotlin code is way better than Beanshell.
> Should I
> > > > > > elaborate?
> > > > >
> > > > > My point was that the Ant build uses Beanshell to perform certain
> > > > > functions, and these are relatively complicated (otherwise it would
> > > > > not have been necessary to use a scripting language such as BSH)
> > > > >
> > > > > These functions need to be supported by Gradle.
> > > > > It does not have to use BeanShell, but must produce the same
> result.
> > > > >
> > > > > Since this part of the conversion is likely to give the most
> trouble,
> > > > > it should be tackled early on to avoid wasted effort.
> > > > >
> > > > > > Vladimir
> > > > >
> > > >
> > > >
> > > > --
> > > > Cordialement.
> > > > Philippe Mouawad.
> > >
> >
> >
> > --
> > Cordialement.
> > Philippe Mouawad.
>


-- 
Cordialement.
Philippe Mouawad.

Reply via email to