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.
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".

So far
++1 (Binding): Vladimir Sitnikov
++1 (Binding): Philippe Mouawad

Vetos: none

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.
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.

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.
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

On top of that, there are good reasons for certain folder layout.
For instance, Gradle encourages to keep dependency jar files in a
completely separate folder (outside of the project).
This prevents accidentally putting multi-megabyte blobs under source
control like in
https://github.com/apache/jmeter/commit/c9a4d557f9a8e213ccc93215264a254dfb2bc50a

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.

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.

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?

Vladimir

Reply via email to