You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jmeter.apache.org by Vladimir Sitnikov <si...@gmail.com> on 2019/08/01 22:00:32 UTC

Re: [VOTE] JMeter: migration to Git+Gradle

Just in case, I've reimplemented "dependency checksum verification".

New implementation verifies not just third-party dependencies like
"commons-logging.jar", but Gradle's plugins as well.
New approach is faster as well, so I enabled it by default.

There's a Gradle task `./gradlew allDependencies` that prints all the
dependencies in all the projects.

Vladimir

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Vladimir Sitnikov <si...@gmail.com>.
Felix>* The nightly job uploads maven artifacts. Which tasks are the correct
ones for the snapshots?

Can I quote `gradlew tasks` output for you?

Publishing tasks
----------------
publish - Publishes all publications produced by this project.
publishAllPublicationsToNexusRepository - Publishes all Maven publications
produced by this project to the nexus repository.
publishToMavenLocal - Publishes all Maven publications produced by this
project to the local Maven cache.
pushPreviewSite - Builds and publishes site preview

Note: by default it will try to publish to localhost:8080, and you need to
add -Pasf to make it push to ASF servers.

Felix>* It seems to me, as if the javadoc api's are now split up into
Felix>different dirs. Is there one dir with all the javadoc?

Let me quote some more `gradlew tasks` output:

Documentation tasks
-------------------
groovydoc - Generates Groovydoc API documentation for the main source code.
javadoc - Generates Javadoc API documentation for the main source code.
javadocAggregate - Generates aggregate javadoc for all the artifacts

gradlew help --task javadocAggregate shows that the task comes from
:src:dist project, and it means you should seek the output in
src/dist/build folder.

Vladimir

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Felix Schumacher <fe...@internetallee.de>.
Am 04.08.19 um 12:50 schrieb Vladimir Sitnikov:
> Felix>The old dist artifacts had sha512 checksums in the same folder. I
> didn't
> see them in the gradle build ones. Can they be generated, too?
>
> Use ./gradlew :src:dist:assemble
> Or you can use individual  distTar distZip signDistTar signDistZip
>
> Credentials are managed by
> https://docs.gradle.org/current/userguide/signing_plugin.html#sec:signatory_credentials

I don't intend to sign the snapshots, but the task :src:dist:assemble
does exactly what is needed.

Now I have to try the maven upload

Felix

>
> Note: you can add -m (==  --dry-run)  to any Gradle command, and it would
> print the list of tasks to be executed.
>
> Vladimir
>

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Vladimir Sitnikov <si...@gmail.com>.
Felix>The old dist artifacts had sha512 checksums in the same folder. I
didn't
see them in the gradle build ones. Can they be generated, too?

Use ./gradlew :src:dist:assemble
Or you can use individual  distTar distZip signDistTar signDistZip

Credentials are managed by
https://docs.gradle.org/current/userguide/signing_plugin.html#sec:signatory_credentials

Note: you can add -m (==  --dry-run)  to any Gradle command, and it would
print the list of tasks to be executed.

Vladimir

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Felix Schumacher <fe...@internetallee.de>.
Am 03.08.19 um 18:17 schrieb Felix Schumacher:
> Am 03.08.19 um 14:22 schrieb Felix Schumacher:
>> Am 03.08.19 um 14:15 schrieb Vladimir Sitnikov:
>>> Felix>It generates artifacts
>>>
>>> This is handled by `distTar distTarSource distZip distZipSource` (pick the
>>> ones that are required)
>> I will try those.
>>> Felix> with git revision as identifiers (instead of 5.2-SNAPSHOT)
>>>
>>> Is it a matter of a file name?
>>> Currently Git SHA is included into JMeterVersion#getVERSION(). Is it enough?
>>>
>>> If so, then `./gradlew distTar distZip` should be just fine.
>>>
>>> The artifacts would be named like `apache-jmeter-5.2.0-SNAPSHOT.tgz`,
>>> however JMeterVersion inside would include SHA.
>> The files are indexed by another shell script that is quite picky about
>> the file names :) but we can change that script with a PR or rename the
>> artifacts inside buildbot env.
>
> ok, distJar and friends will probably be all right. Now the next questions:

The old dist artifacts had sha512 checksums in the same folder. I didn't
see them in the gradle build ones. Can they be generated, too?

Felix

>> Felix
>>
>>> Vladimir
>>>

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Felix Schumacher <fe...@internetallee.de>.
Am 03.08.19 um 14:22 schrieb Felix Schumacher:
> Am 03.08.19 um 14:15 schrieb Vladimir Sitnikov:
>> Felix>It generates artifacts
>>
>> This is handled by `distTar distTarSource distZip distZipSource` (pick the
>> ones that are required)
> I will try those.
>> Felix> with git revision as identifiers (instead of 5.2-SNAPSHOT)
>>
>> Is it a matter of a file name?
>> Currently Git SHA is included into JMeterVersion#getVERSION(). Is it enough?
>>
>> If so, then `./gradlew distTar distZip` should be just fine.
>>
>> The artifacts would be named like `apache-jmeter-5.2.0-SNAPSHOT.tgz`,
>> however JMeterVersion inside would include SHA.
> The files are indexed by another shell script that is quite picky about
> the file names :) but we can change that script with a PR or rename the
> artifacts inside buildbot env.


ok, distJar and friends will probably be all right. Now the next questions:

* The nightly job uploads maven artifacts. Which tasks are the correct
ones for the snapshots?

* It seems to me, as if the javadoc api's are now split up into
different dirs. Is there one dir with all the javadoc?

Felix

>
> Felix
>
>> Vladimir
>>

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Felix Schumacher <fe...@internetallee.de>.
Am 03.08.19 um 14:15 schrieb Vladimir Sitnikov:
> Felix>It generates artifacts
>
> This is handled by `distTar distTarSource distZip distZipSource` (pick the
> ones that are required)
I will try those.
>
> Felix> with git revision as identifiers (instead of 5.2-SNAPSHOT)
>
> Is it a matter of a file name?
> Currently Git SHA is included into JMeterVersion#getVERSION(). Is it enough?
>
> If so, then `./gradlew distTar distZip` should be just fine.
>
> The artifacts would be named like `apache-jmeter-5.2.0-SNAPSHOT.tgz`,
> however JMeterVersion inside would include SHA.

The files are indexed by another shell script that is quite picky about
the file names :) but we can change that script with a PR or rename the
artifacts inside buildbot env.

Felix

>
> Vladimir
>

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Vladimir Sitnikov <si...@gmail.com>.
Felix>It generates artifacts

This is handled by `distTar distTarSource distZip distZipSource` (pick the
ones that are required)

Felix> with git revision as identifiers (instead of 5.2-SNAPSHOT)

Is it a matter of a file name?
Currently Git SHA is included into JMeterVersion#getVERSION(). Is it enough?

If so, then `./gradlew distTar distZip` should be just fine.

The artifacts would be named like `apache-jmeter-5.2.0-SNAPSHOT.tgz`,
however JMeterVersion inside would include SHA.

Vladimir

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Felix Schumacher <fe...@internetallee.de>.
Am 03.08.19 um 13:38 schrieb Vladimir Sitnikov:
> Felix>What is the equivalent to the old 'ant nightly' command?
> Felix>Should it be './gradlew createDist'?
>
> What does "ant nightly"?

<target name="nightly"
 
depends="ant-version,nightly-setup,init-svnVersion,install,docs-printable,docs-api,test,_distribution"

<target name="nightly-setup"
    description="Disables some checks"
    depends="clean,clean-docs,clean-apidocs,clean-dist">
   <property name="disable-check-versions" value="true" />
   <property name="docs.force" value="true" />
</target>

It generates artifacts with git revision as identifiers (instead of
5.2-SNAPSHOT)

Those artifacts are copied to some server where the nightlies index page
can find them.

Felix

> What "buildbot" is expected to test?
>
> Vladimir
>

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Vladimir Sitnikov <si...@gmail.com>.
Felix>What is the equivalent to the old 'ant nightly' command?
Felix>Should it be './gradlew createDist'?

What does "ant nightly"?
What "buildbot" is expected to test?

Vladimir

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Felix Schumacher <fe...@internetallee.de>.
Am 02.08.19 um 17:47 schrieb Felix Schumacher:
>
> Am 2. August 2019 17:45:26 MESZ schrieb Vladimir Sitnikov <si...@gmail.com>:
>>> Have you changed the ci pipelines (Jenkins and buildbot) to use gradle
>> already?
>>
>> I've applied minimal changes to Jenkins:
>> https://builds.apache.org/job/JMeter-trunk/7273/console
>> It looks like there's a RAT issue as it thinks *.sxw and *.sxi are text
>> files.
>> I'm just inclined to add those to ratignore
> +1
>
>> I would love if you could adapt buildbot though.
> I can try, but probably not before tomorrow. 

I am just now looking at the needed changes and have a question on the
new tasks.

What is the equivalent to the old 'ant nightly' command? Should it be
'./gradlew createDist'?

Felix

>
> Felix 
>
>> Vladimir

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Felix Schumacher <fe...@internetallee.de>.

Am 2. August 2019 17:45:26 MESZ schrieb Vladimir Sitnikov <si...@gmail.com>:
>>Have you changed the ci pipelines (Jenkins and buildbot) to use gradle
>already?
>
>I've applied minimal changes to Jenkins:
>https://builds.apache.org/job/JMeter-trunk/7273/console
>It looks like there's a RAT issue as it thinks *.sxw and *.sxi are text
>files.
>I'm just inclined to add those to ratignore

+1

>
>I would love if you could adapt buildbot though.

I can try, but probably not before tomorrow. 

Felix 

>
>Vladimir

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Vladimir Sitnikov <si...@gmail.com>.
>Have you changed the ci pipelines (Jenkins and buildbot) to use gradle
already?

I've applied minimal changes to Jenkins:
https://builds.apache.org/job/JMeter-trunk/7273/console
It looks like there's a RAT issue as it thinks *.sxw and *.sxi are text
files.
I'm just inclined to add those to ratignore

I would love if you could adapt buildbot though.

Vladimir

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Felix Schumacher <fe...@internetallee.de>.

Am 2. August 2019 16:16:10 MESZ schrieb Vladimir Sitnikov <si...@gmail.com>:
>Thanks everybody for the feedback.
>
>I've merged the change, so JMeter is using Gradle, and Ant is no longer
>supported as a build system (build.xml is no longer present).

Thanks for doing it.

Have you changed the ci pipelines (Jenkins and buildbot) to use gradle already? 

Felix 

>
>Vladimir

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Antonio Gomes Rodrigues <ra...@gmail.com>.
Thanks to your job

Le ven. 2 août 2019 à 16:16, Vladimir Sitnikov <si...@gmail.com>
a écrit :

> Thanks everybody for the feedback.
>
> I've merged the change, so JMeter is using Gradle, and Ant is no longer
> supported as a build system (build.xml is no longer present).
>
> Vladimir
>

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Vladimir Sitnikov <si...@gmail.com>.
>... of course, eclipse cannot add this parameter -PallBatch...

Of course you can.
a) Open preferences, navigate to Gradle, and add -PallBatch in "Advanced
Options / Program arguments"
b) create gradle run configuration manually (e.g. find the relevant test
via command line)
c) Add allBatch to your gradle.properties file (e.g.
~/.gradle/gradle.properties). I'm not sure Eclipse will pick it up from
there, however
it is nice how Gradle enables to declare global config parameters.

>Failures detected while testing
C:\Users\fs\wsl\jmeter\bin\testfiles\JDBC_TESTS.jmx: [unexpected output
JDBC_TESTS.csv]

Please provide full execution log.
"unexpected output ..." means there should be diff-like message above with
exact difference of "expected vs actual".

Vladimir

AW: [VOTE] JMeter: migration to Git+Gradle

Posted by Franz Schwab <fr...@exasol.com>.
Hi Vladimir,

great piece of work!

I just noticed the following:

If executing the "gw batchJDBC_TESTS" task via Eclipse, I get an error:

---------------------------------------------------------------------------------------------------------------
> Task :src:dist-check:batchJDBC_TESTS FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':src:dist-check:batchJDBC_TESTS'.
> Failures detected while testing C:\Users\fs\wsl\jmeter\bin\testfiles\JDBC_TESTS.jmx: [unexpected output JDBC_TESTS.csv]

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
---------------------------------------------------------------------------------------------------------------

If I execute the "gw batchJDBC_TESTS" via command line, it says "BUILD SUCCESSFUL".

Notice you have to manually add a gradle run configuration for that tasks, as "batchJDBC_TESTS" is now hidden and cannot be clicked directly in the Eclipse "Gradle Tasks" gui element,
maybe due to the latest change you made due to my suggestion ;-)

gw tasks
"batchTests - Executes all the batch tests (add -PallBatch to see individual batch tasks)"

... of course, eclipse cannot add this parameter -PallBatch...

I am not sure if the failed test is due to the hidden individual batch tasks.

Best,
Franz

-----Ursprüngliche Nachricht-----
Von: Vladimir Sitnikov <si...@gmail.com> 
Gesendet: Friday, August 2, 2019 4:16 PM
An: ApacheJMeter dev list <de...@jmeter.apache.org>
Betreff: Re: [VOTE] JMeter: migration to Git+Gradle

Thanks everybody for the feedback.

I've merged the change, so JMeter is using Gradle, and Ant is no longer supported as a build system (build.xml is no longer present).

Vladimir

Re: [VOTE] JMeter: migration to Git+Gradle

Posted by Vladimir Sitnikov <si...@gmail.com>.
Thanks everybody for the feedback.

I've merged the change, so JMeter is using Gradle, and Ant is no longer
supported as a build system (build.xml is no longer present).

Vladimir