jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vladimir Sitnikov <sitnikov.vladi...@gmail.com>
Subject Re: Gradle equivalent of 'ant package'?
Date Mon, 28 Oct 2019 11:01:30 GMT
>without providing migration information.
>AFAICT there is none at present

AFAICT there's a comprehensive guide in gradle.md, and you did confirm
you've seen it, so please refrain from
writing generic statements like "migration information is missing".
It is really sad to hear that after 6+ months of samples, documentation
updates, demos, etc, etc.
I think adding "yet another introduction to Gradle" won't improve things,
and it would make it harder to navigate.

1) The file is located side by side with gradlew
2) The file is referenced in CONTRIBUING.md under the first
section of "Development setup"
3) readme.md references both Gradle commands,
jmeter.apache.org/building.html and gradle.md
4) Mailing list includes lots of samples for the relevant commands
5) Release candidate vote mail includes the command to build the sources
6) All of the above was there for a long time

Could you please recognize the contribution to the documentation?

>The Ant -p command provides an introductory description which shows
>how to use it.
>gradle does not provide any such details.

There's no point in having the "introductory description" as plain "tasks"
output is good enough.

Here's the output with my comments:

  N.B. To build JMeter from a release you need both the binary and source
archives,
  and these must be unpacked into the same directory structure.

^^ it makes no sense. I truly do not understand what that means, and if it
means "one needs binary release in order to build source release",
then the source release is completely broken. The whole purpose of having a
source release is to have the set of sources to build from.

  To download additional jars needed for building the code and
documentation:
      ant download_jars

^^ This is automatic with Gradle, so it makes no sense.

    To build JMeter from source:
      ant [install]
    To rebuild:
      ant clean install

^^ This adds no value. The same information is printed in gradlew tasks,
and it makes the clear distinction between "build" and "build+test"

    To update documentation
      ant docs-site [-Ddocs.force=true]
      ant docs-printable [-Ddocs.force=true]
    To build API documentation (Javadoc)
      ant docs-api
    To build all the docs
      ant docs-all [-Ddocs.force=true]

^^^ this makes no sense at all. What "to update documentation" means? Does
it push the documentation to the website?
What does it do? How docs-site differs from docs-all?
The tasks do not deserve to be included in the "introduction" section since
they are not used often.

    To build all and package up the files for distribution
      ant distribution -Djmeter.version=vvvv [-Dsvn.revision=nnnnn]

^^ Even though the task is important, Gradle shows "Distribution tasks"
with clear separation between source/binary tar/zip distributions.
I don't know which distribution is built by "ant distribution", and I don't
want to spend time on building all the distributions always.
That is why "ant distribution" makes no sense in "introduction"

    Add -Ddisable-svnCheck=true to disable svn check, if you build from src
archive or offline
    Add -Ddisable-check-versions=true to disable matching current svn
revision and JMeterVersion.java,
      if you want build your own custom JMeter package.

^^ This makes no sense. The things are automatic with Gradle

    To create a nightly build (separate bin/src/lib jars):
      ant nightly [-Dsvn.revision=nnnnn]

^^ What does it do? No-one knows. It is obscure how "nightly" build differs
from a regular one.
Thanks to Felix, we have buildbot reconfigured, but I still do not
understand why "nightly" needs to be different.

    To create tar and tgz of the web-site documentation (docs and api)
      ant site [ -Djmeter.version=vvvv ]

^^ Who uses that? Why is it in the introduction part? Is it the most
important task?

    For more info:
      ant -projecthelp

^^ Really? I'm reading the output of and -p which is the alias for ant
-projecthelp. What sense does it make to show "for more info: ant -p"?
Is it trying to cause StackOverflowException at the user side?

    To diagnose usage of deprecated APIs:
      ant -Ddeprecation=on clean compile

^^ What sense does it make? Is it the truly often use case?


That is it. I just went over the "introductory ant -p" output, and it turns
out the description adds no value.

sebb>If not using more, then the screen is updated for a while before the
sebb>help is displayed.

The screen is updating, and it is fine.
The transient info is not shown in the final output, so there's no problem.

>Ant output was usable without any grouping.

Ok. Ant output was usable. However, the output became obsolete with Gradle.
It is not like "the commands should be updated to use Gradle alternatives".
It is like "Gradle makes many more things automatically, so the commands do
not need to be documented any more".
In other words, lots of human actions that were suggested in "ant -p" make
no sense now, and there's no point in trying
to add "ant -p like output".

>They are not contradictory; also it may be useful to know what the
>component names are.

"learning component names" is a different story.
Gradle has ./gradlew projects for that, and my point was compile-* tasks
polluted the output, thus it
effectively reduced usability by making useful tasks harder to find.

Vladimir

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message