You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by Vladimir Sitnikov <si...@gmail.com> on 2019/05/30 10:09:14 UTC

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Update: I think Gradle-based build for JMeter is 99.42% complete, and I'm
quite happy with that (the link is still
https://github.com/apache/jmeter/pull/448 )
I have commands like "./gradlew prepareVote" that builds artifacts, stages
them to dist.apache.org / repository.apache.org, builds documentation
preview, publishes it along with RAT report to a Git repository (e.g.
GitHub pages preview), and prepares "[VOTE]" email.
Note: I have stub implementations for Nexus, SVN (
https://github.com/vlsi/asflike-release-environment ), so everybody can try
that out with zero risks of updating apache.org servers.

I have "./gradlew runGui" that builds artifacts and launches the app
automatically (== which would be very handy for our ./sqlline since we can
delegate classpath build and cache to Gradle)

If you are feeling lucky/curious, please check out apache/jmeter/pull/448
and try loading the project in IDE / executing some commands (there's a
list in PR description)

The only "sad" point I found is Kotlin-based build scripts take a bit to
compile (e.g. it might take 10-20 seconds to compile "10 build scripts"
after modification of the core build file), however I think it is not a
problem since we don't modify build files often. Subsequent executions are
super-fast.

Vladimir

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Francis Chuang <fr...@apache.org>.
I thought I'd post about an issue I experienced with Gradle while 
testing the build/release process in docker.

I use Docker for Windows, which spins up a Hyper-V VM with docker and I 
interact with it using the docker CLI in WSL (Windows Subsystem for 
Linux). The setup is really neat, because I can use Windows as my main 
OS and almost have Linux running inside with almost native performance 
without having to use a VM.

A couple of days ago, Docker released 2.1.6.0 for their Docker for 
Windows Edge release and the build started hanging.

Basically, I execute the following to build and upload the release for 
voting (in the test environment):

gradle prepareVote -PasfTestSvnUsername=test -PasfTestSvnPassword=test 
-PasfTestNexusUsername=test -PasfTestNexusPassword=test 
-PasfTestGitSourceUsername=test -PasfTestGitSourcePassword=test 
-PasfCommitterId=test -PallowUncommittedChanges -Prc=0 -PuseGpgCmd 
-Psigning.gnupg.keyName=KEY_ID_GOES_HERE

The build will run, but it will hang forever after the configuration. 
Logs here:

2019-11-20T05:01:25.697+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Execute 'allprojects {}' action' completed
2019-11-20T05:01:25.699+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Execute container callback action' started
2019-11-20T05:01:25.701+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] 
Completing Build operation 'Execute container callback action'
2019-11-20T05:01:25.701+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Execute container callback action' completed
2019-11-20T05:01:25.701+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] 
Completing Build operation 'Apply plugin com.github.vlsi.ide to root 
project 'calcite-avatica''
2019-11-20T05:01:25.701+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Apply plugin com.github.vlsi.ide to root project 
'calcite-avatica'' completed
2019-11-20T05:01:25.702+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Apply plugin com.github.vlsi.crlf to root project 
'calcite-avatica'' started
2019-11-20T05:01:25.702+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] 
Completing Build operation 'Apply plugin com.github.vlsi.crlf to root 
project 'calcite-avatica''
2019-11-20T05:01:25.702+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Apply plugin com.github.vlsi.crlf to root project 
'calcite-avatica'' completed
2019-11-20T05:01:25.703+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Apply plugin com.github.vlsi.gradle-extensions to root 
project 'calcite-avatica'' started
2019-11-20T05:01:25.704+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] 
Completing Build operation 'Apply plugin 
com.github.vlsi.gradle-extensions to root project 'calcite-avatica''
2019-11-20T05:01:25.704+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Apply plugin com.github.vlsi.gradle-extensions to root 
project 'calcite-avatica'' completed
2019-11-20T05:01:25.706+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Apply plugin com.github.vlsi.stage-vote-release to root 
project 'calcite-avatica'' started
2019-11-20T05:01:25.728+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Execute container callback action' started
2019-11-20T05:01:25.728+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] 
Completing Build operation 'Execute container callback action'
2019-11-20T05:01:25.728+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Execute container callback action' completed
2019-11-20T05:01:25.728+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Execute container callback action' started
2019-11-20T05:01:25.729+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] 
Completing Build operation 'Execute container callback action'
2019-11-20T05:01:25.729+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Execute container callback action' completed
2019-11-20T05:01:25.729+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Execute container callback action' started
2019-11-20T05:01:25.729+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] 
Completing Build operation 'Execute container callback action'
2019-11-20T05:01:25.729+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Execute container callback action' completed
2019-11-20T05:01:25.730+0000 [DEBUG] 
[org.gradle.internal.operations.DefaultBuildOperationExecutor] Build 
operation 'Apply plugin org.ajoberstar.grgit to root project 
'calcite-avatica'' started
2019-11-20T05:01:25.869+0000 [DEBUG] 
[org.eclipse.jgit.internal.storage.file.FileSnapshot] 
file=/src/.git/config, create new FileSnapshot: lastRead=2019-11-20 
05:01:25.863000000, lastModified=2019-11-20 04:23:05.546426000, 
size=349, fileKey=(dev=65,ino=41)
2019-11-20T05:01:25.875+0000 [DEBUG] [org.eclipse.jgit.util.FS] readpipe 
[git, --version],/usr/bin
2019-11-20T05:01:25.881+0000 [DEBUG] [org.eclipse.jgit.util.FS] readpipe 
may return 'git version 2.17.1'
2019-11-20T05:01:25.881+0000 [DEBUG] [org.eclipse.jgit.util.FS] 
remaining output:

2019-11-20T05:01:25.882+0000 [DEBUG] [org.eclipse.jgit.util.FS] readpipe 
[git, config, --system, --edit],/usr/bin
2019-11-20T05:01:25.885+0000 [DEBUG] [org.eclipse.jgit.util.FS] readpipe 
may return '/etc/gitconfig'
2019-11-20T05:01:25.885+0000 [DEBUG] [org.eclipse.jgit.util.FS] 
remaining output:

2019-11-20T05:01:25.887+0000 [DEBUG] 
[org.eclipse.jgit.internal.storage.file.FileSnapshot] file=null, size 
changed from -1 to 0 bytes
2019-11-20T05:01:25.887+0000 [DEBUG] 
[org.eclipse.jgit.util.SystemReader] loading system config 
FileBasedConfig[/etc/gitconfig]
2019-11-20T05:01:25.888+0000 [DEBUG] 
[org.eclipse.jgit.internal.storage.file.FileSnapshot] file=null, size 
changed from -1 to 0 bytes
2019-11-20T05:01:25.888+0000 [DEBUG] 
[org.eclipse.jgit.util.SystemReader] loading user config 
FileBasedConfig[/root/.gitconfig]
2019-11-20T05:01:25.889+0000 [DEBUG] 
[org.eclipse.jgit.internal.storage.file.FileSnapshot] 
file=/src/.git/config, create new FileSnapshot: lastRead=2019-11-20 
05:01:25.888000000, lastModified=2019-11-20 04:23:05.546426000, 
size=349, fileKey=(dev=65,ino=41)
2019-11-20T05:01:25.892+0000 [DEBUG] 
[org.eclipse.jgit.internal.storage.file.FileSnapshot] 
file=/etc/gitconfig, isRacyClean=false, read=2019-11-20 
05:01:25.887000000, lastModified=1970-01-01 00:00:00.000000000, 
delta=1574226085887000000 ns, racy<=2500000000 ns
2019-11-20T05:01:25.892+0000 [DEBUG] 
[org.eclipse.jgit.internal.storage.file.FileSnapshot] 
file=/etc/gitconfig, is unmodified
2019-11-20T05:01:25.892+0000 [DEBUG] 
[org.eclipse.jgit.internal.storage.file.FileSnapshot] 
file=/root/.gitconfig, isRacyClean=false, read=2019-11-20 
05:01:25.888000000, lastModified=1970-01-01 00:00:00.000000000, 
delta=1574226085888000000 ns, racy<=2500000000 ns
2019-11-20T05:01:25.892+0000 [DEBUG] 
[org.eclipse.jgit.internal.storage.file.FileSnapshot] 
file=/root/.gitconfig, is unmodified
2019-11-20T05:01:25.893+0000 [DEBUG] 
[org.eclipse.jgit.internal.storage.file.FileSnapshot] 
file=/src/.git/config, isRacyClean=false, read=2019-11-20 
05:01:25.888000000, lastModified=2019-11-20 04:23:05.546426000, 
delta=2300341574000 ns, racy<=2500000000 ns
2019-11-20T05:01:25.893+0000 [DEBUG] 
[org.eclipse.jgit.internal.storage.file.FileSnapshot] 
file=/src/.git/config, is unmodified
2019-11-20T05:01:35.058+0000 [LIFECYCLE] 
[org.gradle.cache.internal.DefaultFileLockManager]
2019-11-20T05:01:35.058+0000 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire 
shared lock on daemon addresses registry.
2019-11-20T05:01:35.058+0000 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on 
daemon addresses registry.
2019-11-20T05:01:35.058+0000 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on 
daemon addresses registry.
2019-11-20T05:01:35.058+0000 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire 
shared lock on daemon addresses registry.
2019-11-20T05:01:35.058+0000 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on 
daemon addresses registry.
2019-11-20T05:01:35.058+0000 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on 
daemon addresses registry.
2019-11-20T05:01:45.058+0000 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire 
shared lock on daemon addresses registry.
2019-11-20T05:01:45.058+0000 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on 
daemon addresses registry.
2019-11-20T05:01:45.058+0000 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on 
daemon addresses registry.
2019-11-20T05:01:45.058+0000 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire 
shared lock on daemon addresses registry.
2019-11-20T05:01:45.058+0000 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Lock acquired on 
daemon addresses registry.
2019-11-20T05:01:45.058+0000 [DEBUG] 
[org.gradle.cache.internal.DefaultFileLockManager] Releasing lock on 
daemon addresses registry.

This only happens when I have Avatica on the Windows filesystem and 
mount it into the docker container to build. I suspect these changes in 
Docker for Windows could be the cause:

- Docker Desktop now supports inotify events on shared filesystems for 
Windows file sharing.
- Fixed a cache invalidation bug when a file in a shared volume is 
renamed on the host for Windows file sharing.
- Fixed a handle leak when calling Mknod on a shared volume for Windows 
file sharing.
- To make VM startup more reliable, Docker Desktop now avoids adding a 
Hyper-V NIC to the Windows VM when using Hypervisor sockets for Windows 
file sharing (rather than Samba).

I did test a few of the sample gradle projects[1], and they all built 
without issue.

The issue only happens when mounting the Avatica source folder in the 
Windows filesystem into the docker container. If we clone the git 
repository within the docker container, it works correctly, but this 
wouldn't really work with using docker-compose to orchestrate the build.

Interestingly, I am able to use touch, rm etc to interact with the 
Windows mount within the container and nothing seems to be blocked.

The solution I've found is to downgrade to Docker for Windows 2.1.3.0 
(2.1.4.0 and 2.1.5.0 has issues with starting Docker for Windows and are 
pretty much unusable).

In Docker for Windows 2.1.3.0, I get this error, but the build works fine:

Starting a Gradle Daemon (subsequent builds will be faster)
locking FileBasedConfig[/root/.gitconfig] failed after 5 retries

 > Configure project :
Building Apache Calcite Avatica 1.16.0

Unfortunately, I don't have much time to investigate Gradle's and Docker 
for Windows' internals after spending the whole day on this, so this is 
all I have.

Framcos

[1] https://github.com/gradle/kotlin-dsl-samples/tree/master/samples



On 20/11/2019 6:11 pm, Vladimir Sitnikov wrote:
>> I also notice this output at the end, is this a known issue?
>> Deprecated Gradle features were used in this build, making it incompatible
> with Gradle 7.0.
> 
> It is.
> 
>> Also is there an easy way to specify number of threads for build and test
> run?
> 
> Please find the documentation here:
> https://docs.gradle.org/6.0.1/userguide/command_line_interface.html#sec:command_line_performance
> and here
> https://junit.org/junit5/docs/current/user-guide/#writing-tests-parallel-execution
> 
> Vladimir
> 

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Vladimir Sitnikov <si...@gmail.com>.
>I also notice this output at the end, is this a known issue?
>Deprecated Gradle features were used in this build, making it incompatible
with Gradle 7.0.

It is.

>Also is there an easy way to specify number of threads for build and test
run?

Please find the documentation here:
https://docs.gradle.org/6.0.1/userguide/command_line_interface.html#sec:command_line_performance
and here
https://junit.org/junit5/docs/current/user-guide/#writing-tests-parallel-execution

Vladimir

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Amir Gajst <am...@sisense.com>.
Hi Vladimir,

It works.
FYI, it wasn't setting core.autocrlf to true that made the difference, but
unsetting core.eol.

Thanks

On Wed, Nov 20, 2019 at 7:41 PM Vladimir Sitnikov <
sitnikov.vladimir@gmail.com> wrote:

> >I started with *core.autocrlf true*
>
> Please ensure you are using core.autocrlf true, checkout the repository
> from scratch, and retry.
> It does work on my machine. It does work in GitHub Actions / Windows, it
> does work at AppVeyor.
>
> C:\temp>git config --get core.autocrlf
> true
>
> C:\temp>git config --get core.eol
>
> C:\temp>git clone --depth 100 https://github.com/apache/calcite.git
> calcite-tmp <https://github.com/apache/calcite.gitcalcite-tmp>
> Cloning into 'calcite-tmp'...
>
> C:\temp>cd calcite-tmp
>
> C:\temp\calcite-tmp>gradlew :core:versionClass :core:spotlessCheck
> ...
>
> > Configure project :
> Building Apache Calcite 1.22.0-SNAPSHOT
> ...
> BUILD SUCCESSFUL
> 3 actionable tasks: 3 executed
>
> Vladimir
>


-- 



[image: Sisense]
<https://www.sisense.com/?source=xink&utm_source=xink&utm_medium=email&utm_campaign=emailsignature2018>
*Amir Gajst*
Software Engineer
+972-54-4766239
amir.gajst
[image: Instagram] <https://www.instagram.com/sisense/>   [image: LinkedIn]
<https://www.linkedin.com/company/sisense>   [image: Facebook]
<https://www.facebook.com/Sisense>   [image: Twitter]
<https://twitter.com/Sisense>
<https://t.xink.io/Tracking/Index/jtIBAPDBAADdv0QA0>

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Vladimir Sitnikov <si...@gmail.com>.
>I started with *core.autocrlf true*

Please ensure you are using core.autocrlf true, checkout the repository
from scratch, and retry.
It does work on my machine. It does work in GitHub Actions / Windows, it
does work at AppVeyor.

C:\temp>git config --get core.autocrlf
true

C:\temp>git config --get core.eol

C:\temp>git clone --depth 100 https://github.com/apache/calcite.git
calcite-tmp
Cloning into 'calcite-tmp'...

C:\temp>cd calcite-tmp

C:\temp\calcite-tmp>gradlew :core:versionClass :core:spotlessCheck
...

> Configure project :
Building Apache Calcite 1.22.0-SNAPSHOT
...
BUILD SUCCESSFUL
3 actionable tasks: 3 executed

Vladimir

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Amir Gajst <am...@sisense.com>.
I started with *core.autocrlf true* (and *core.eol lf*). I later switched
it to *core.autocrlf false* in one of the attempts to get it to build.
core/src/main/version/org/apache/calcite/jdbc/CalciteDriverVersion.java has
LF line endings but when it's copied
to core/build/generated/sources/version/org/apache/calcite/jdbc/CalciteDriverVersion.java
the line-ending is changed to CRLF. If I change it to LF and build again,
the file is overwritten and the line-ending is changed back to CRLF and the
build fails again.

On Wed, Nov 20, 2019 at 6:23 PM Vladimir Sitnikov <
sitnikov.vladimir@gmail.com> wrote:

> Are you using core.autocrlf true? (which is a recommended configuration for
> Windows by the way:
>
> https://help.github.com/en/github/using-git/configuring-git-to-handle-line-endings
> )
>
> >the file
>
> core\build\generated\sources\version\org\apache\calcite\jdbc\CalciteDriverVersion.java
> which seems to be the problem is overwritten on every build.
>
> The file is taken
> from
> core/src/main/version/org/apache/calcite/jdbc/CalciteDriverVersion.java,
> and I would suggest checking which line endings the file has on your local
> file system.
>
> Vladimir
>


-- 



[image: Sisense]
<https://www.sisense.com/?source=xink&utm_source=xink&utm_medium=email&utm_campaign=emailsignature2018>
*Amir Gajst*
Software Engineer
+972-54-4766239
amir.gajst
[image: Instagram] <https://www.instagram.com/sisense/>   [image: LinkedIn]
<https://www.linkedin.com/company/sisense>   [image: Facebook]
<https://www.facebook.com/Sisense>   [image: Twitter]
<https://twitter.com/Sisense>
<https://t.xink.io/Tracking/Index/jtIBAPDBAADdv0QA0>

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Vladimir Sitnikov <si...@gmail.com>.
Are you using core.autocrlf true? (which is a recommended configuration for
Windows by the way:
https://help.github.com/en/github/using-git/configuring-git-to-handle-line-endings
)

>the file
core\build\generated\sources\version\org\apache\calcite\jdbc\CalciteDriverVersion.java
which seems to be the problem is overwritten on every build.

The file is taken
from core/src/main/version/org/apache/calcite/jdbc/CalciteDriverVersion.java,
and I would suggest checking which line endings the file has on your local
file system.

Vladimir

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Amir Gajst <am...@sisense.com>.
Hi

Trying to build the project with gradle on windows fails with the following
message:

> Task :core:spotlessJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':core:spotlessJava'.
> The following files had format violations:

core\build\generated\sources\version\org\apache\calcite\jdbc\CalciteDriverVersion.java
          @@ -1,41 +1,41 @@G [6s]sed in this build, making it incompatible
with Gradle 7.0.
          -/*\r\nde all' to show the individual deprecation warnings.
          - * Licensed to the Apache Software Foundation (ASF) under one or
more\r\nline_warnings
          - * contributor license agreements.  See the NOTICE file
distributed with\r\n
          - * this work for additional information regarding copyright
ownership.\r\n
          - * The ASF licenses this file to you under the Apache License,
Version 2.0\r\n
          - * (the "License"); you may not use this file except in
compliance with\r\n
          - * the License.  You may obtain a copy of the License at\r\n
          - *\r\n
          - * http://www.apache.org/licenses/LICENSE-2.0\r\n
          - *\r\nessTestResources
          - * Unless required by applicable law or agreed to in writing,
software\r\n
          - * distributed under the License is distributed on an "AS IS"
BASIS,\r\n
          - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied.\r\n
          - * See the License for the specific language governing
permissions and\r\n
          - * limitations under the License.\r\n
          - */\r\n
          -package org.apache.calcite.jdbc;\r\n
          -\r\n
          -import org.apache.calcite.avatica.DriverVersion;\r\n
          -\r\n
          -/**\r\n
          - * Provides information on the current Calcite version.\r\n
          - */\r\n
          -class CalciteDriverVersion {\r\n
          -  static final DriverVersion INSTANCE =\r\n
          -      new DriverVersion(\r\n
          -          "Calcite JDBC Driver",\r\n
          -          "1.22.0-SNAPSHOT" /* :version */,\r\n
          -          "Calcite",\r\n
          -          "1.22.0-SNAPSHOT" /* :version */,\r\n
          -          true,\r\n
          -          1 /* :major */,\r\n
          -          22 /* :minor */,\r\n
          -          1 /* :major */,\r\n
          -          22 /* :minor */);\r\n
          -\r\n
          -  private CalciteDriverVersion() {\r\n
          -  }\r\n
          -}\r\n
          -\r\n
          -// End CalciteDriverVersion.java\r\n
          +/*\n
          + * Licensed to the Apache Software Foundation (ASF) under one or
more\n
          + * contributor license agreements.  See the NOTICE file
distributed with\n
          + * this work for additional information regarding copyright
ownership.\n
          + * The ASF licenses this file to you under the Apache License,
Version 2.0\n
          + * (the "License"); you may not use this file except in
compliance with\n
          + * the License.  You may obtain a copy of the License at\n
      ... (34 more lines that didn't fit)
  Run 'gradlew spotlessApply' to fix these violations.

Needless to say I tried running gradlew spotlessApply and building again
and it had no effect ( the file
core\build\generated\sources\version\org\apache\calcite\jdbc\CalciteDriverVersion.java
which seems to be the problem is overwritten on every build...)

Best
Amir

On Wed, Nov 20, 2019 at 11:31 AM Danny Chan <yu...@gmail.com> wrote:

> When I use the IDEA 2019.9 version, it works ~
>
> But the travis test is failing for the slow test: here is my log
> https://travis-ci.org/apache/calcite/jobs/614406384?utm_medium=notification&utm_source=github_status
>
> Best,
> Danny Chan
> 在 2019年11月20日 +0800 PM2:28,Vladimir Sitnikov <sitnikov.vladimir@gmail.com
> >,写道:
> > > Here is the stacktrace:
> > java.lang.NoClassDefFoundError: org/gradle/api/internal/plugin
> > s/DefaultConvention
> > at org.jetbrains.plugins.gradle.tooling.builder.ProjectExtensio
> > nsDataBuilderImpl.buildAll(ProjectExtensionsDataBuilderImpl.groovy:50)
> >
> > What is IDEA version?
> >
> > Vladimir
>


-- 



[image: Sisense]
<https://www.sisense.com/?source=xink&utm_source=xink&utm_medium=email&utm_campaign=emailsignature2018>
*Amir Gajst*
Software Engineer
+972-54-4766239
amir.gajst
[image: Instagram] <https://www.instagram.com/sisense/>   [image: LinkedIn]
<https://www.linkedin.com/company/sisense>   [image: Facebook]
<https://www.facebook.com/Sisense>   [image: Twitter]
<https://twitter.com/Sisense>
<https://t.xink.io/Tracking/Index/jtIBAPDBAADdv0QA0>

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Xiening Dai <xn...@gmail.com>.
In case you didn’t know, JetBrains offers a free subscription to all Apache committers.

https://blog.jetbrains.com/blog/2019/05/30/jetbrains-supports-the-apache-software-foundation/ <https://blog.jetbrains.com/blog/2019/05/30/jetbrains-supports-the-apache-software-foundation/>


> On Nov 21, 2019, at 1:51 PM, Haisheng Yuan <h....@alibaba-inc.com> wrote:
> 
> Thanks, Danny. Will try with newer version.
> 
> - Haisheng
> 
> ------------------------------------------------------------------
> 发件人:Danny Chan<yu...@gmail.com>
> 日 期:2019年11月21日 10:50:12
> 收件人:<de...@calcite.apache.org>
> 主 题:Re: Re: CALCITE-2905: Maven -> Gradle: any thoughts
> 
> Haisheng, upgrade to IDEA 2019.3 EAP solves the problem for me.
> 
> Best,
> Danny Chan
> 在 2019年11月21日 +0800 AM9:24,Haisheng Yuan <h....@alibaba-inc.com>,写道:
>> Hi Vladimir,
>> 
>> I had the same error:
>> Unable to load class 'org.gradle.api.internal.plugins.DefaultConvention'.
>> 
>> IntelliJ IDEA 2018.3.4 (Community Edition)
>> Build #IC-183.5429.30, built on January 28, 2019
>> JRE: 1.8.0_152-release-1343-b26 x86_64
>> JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
>> macOS 10.14.4
>> 
>> - Haisheng
>> 
>> ------------------------------------------------------------------
>> 发件人:Danny Chan<yu...@gmail.com>
>> 日 期:2019年11月20日 17:31:18
>> 收件人:<de...@calcite.apache.org>
>> 主 题:Re: CALCITE-2905: Maven -> Gradle: any thoughts
>> 
>> When I use the IDEA 2019.9 version, it works ~
>> 
>> But the travis test is failing for the slow test: here is my log https://travis-ci.org/apache/calcite/jobs/614406384?utm_medium=notification&utm_source=github_status
>> 
>> Best,
>> Danny Chan
>> 在 2019年11月20日 +0800 PM2:28,Vladimir Sitnikov <si...@gmail.com>,写道:
>>>> Here is the stacktrace:
>>> java.lang.NoClassDefFoundError: org/gradle/api/internal/plugin
>>> s/DefaultConvention
>>> at org.jetbrains.plugins.gradle.tooling.builder.ProjectExtensio
>>> nsDataBuilderImpl.buildAll(ProjectExtensionsDataBuilderImpl.groovy:50)
>>> 
>>> What is IDEA version?
>>> 
>>> Vladimir
>> 
> 


Re: Re: Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Haisheng Yuan <h....@alibaba-inc.com>.
Thanks, Danny. Will try with newer version.

- Haisheng

------------------------------------------------------------------
发件人:Danny Chan<yu...@gmail.com>
日 期:2019年11月21日 10:50:12
收件人:<de...@calcite.apache.org>
主 题:Re: Re: CALCITE-2905: Maven -> Gradle: any thoughts

Haisheng, upgrade to IDEA 2019.3 EAP solves the problem for me.

Best,
Danny Chan
在 2019年11月21日 +0800 AM9:24,Haisheng Yuan <h....@alibaba-inc.com>,写道:
> Hi Vladimir,
>
> I had the same error:
> Unable to load class 'org.gradle.api.internal.plugins.DefaultConvention'.
>
> IntelliJ IDEA 2018.3.4 (Community Edition)
> Build #IC-183.5429.30, built on January 28, 2019
> JRE: 1.8.0_152-release-1343-b26 x86_64
> JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
> macOS 10.14.4
>
> - Haisheng
>
> ------------------------------------------------------------------
> 发件人:Danny Chan<yu...@gmail.com>
> 日 期:2019年11月20日 17:31:18
> 收件人:<de...@calcite.apache.org>
> 主 题:Re: CALCITE-2905: Maven -> Gradle: any thoughts
>
> When I use the IDEA 2019.9 version, it works ~
>
> But the travis test is failing for the slow test: here is my log https://travis-ci.org/apache/calcite/jobs/614406384?utm_medium=notification&utm_source=github_status
>
> Best,
> Danny Chan
> 在 2019年11月20日 +0800 PM2:28,Vladimir Sitnikov <si...@gmail.com>,写道:
> > > Here is the stacktrace:
> > java.lang.NoClassDefFoundError: org/gradle/api/internal/plugin
> > s/DefaultConvention
> > at org.jetbrains.plugins.gradle.tooling.builder.ProjectExtensio
> > nsDataBuilderImpl.buildAll(ProjectExtensionsDataBuilderImpl.groovy:50)
> >
> > What is IDEA version?
> >
> > Vladimir
>


Re: Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Danny Chan <yu...@gmail.com>.
Haisheng, upgrade to IDEA 2019.3 EAP solves the problem for me.

Best,
Danny Chan
在 2019年11月21日 +0800 AM9:24,Haisheng Yuan <h....@alibaba-inc.com>,写道:
> Hi Vladimir,
>
> I had the same error:
> Unable to load class 'org.gradle.api.internal.plugins.DefaultConvention'.
>
> IntelliJ IDEA 2018.3.4 (Community Edition)
> Build #IC-183.5429.30, built on January 28, 2019
> JRE: 1.8.0_152-release-1343-b26 x86_64
> JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
> macOS 10.14.4
>
> - Haisheng
>
> ------------------------------------------------------------------
> 发件人:Danny Chan<yu...@gmail.com>
> 日 期:2019年11月20日 17:31:18
> 收件人:<de...@calcite.apache.org>
> 主 题:Re: CALCITE-2905: Maven -> Gradle: any thoughts
>
> When I use the IDEA 2019.9 version, it works ~
>
> But the travis test is failing for the slow test: here is my log https://travis-ci.org/apache/calcite/jobs/614406384?utm_medium=notification&utm_source=github_status
>
> Best,
> Danny Chan
> 在 2019年11月20日 +0800 PM2:28,Vladimir Sitnikov <si...@gmail.com>,写道:
> > > Here is the stacktrace:
> > java.lang.NoClassDefFoundError: org/gradle/api/internal/plugin
> > s/DefaultConvention
> > at org.jetbrains.plugins.gradle.tooling.builder.ProjectExtensio
> > nsDataBuilderImpl.buildAll(ProjectExtensionsDataBuilderImpl.groovy:50)
> >
> > What is IDEA version?
> >
> > Vladimir
>

Re: Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Haisheng Yuan <h....@alibaba-inc.com>.
Hi Vladimir,

I had the same error:
Unable to load class 'org.gradle.api.internal.plugins.DefaultConvention'.

IntelliJ IDEA 2018.3.4 (Community Edition)
Build #IC-183.5429.30, built on January 28, 2019
JRE: 1.8.0_152-release-1343-b26 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.4

- Haisheng

------------------------------------------------------------------
发件人:Danny Chan<yu...@gmail.com>
日 期:2019年11月20日 17:31:18
收件人:<de...@calcite.apache.org>
主 题:Re: CALCITE-2905: Maven -> Gradle: any thoughts

When I use the IDEA 2019.9 version, it works ~

But the travis test is failing for the slow test: here is my log https://travis-ci.org/apache/calcite/jobs/614406384?utm_medium=notification&utm_source=github_status

Best,
Danny Chan
在 2019年11月20日 +0800 PM2:28,Vladimir Sitnikov <si...@gmail.com>,写道:
> > Here is the stacktrace:
> java.lang.NoClassDefFoundError: org/gradle/api/internal/plugin
> s/DefaultConvention
> at org.jetbrains.plugins.gradle.tooling.builder.ProjectExtensio
> nsDataBuilderImpl.buildAll(ProjectExtensionsDataBuilderImpl.groovy:50)
>
> What is IDEA version?
>
> Vladimir


Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Danny Chan <yu...@gmail.com>.
When I use the IDEA 2019.9 version, it works ~

But the travis test is failing for the slow test: here is my log https://travis-ci.org/apache/calcite/jobs/614406384?utm_medium=notification&utm_source=github_status

Best,
Danny Chan
在 2019年11月20日 +0800 PM2:28,Vladimir Sitnikov <si...@gmail.com>,写道:
> > Here is the stacktrace:
> java.lang.NoClassDefFoundError: org/gradle/api/internal/plugin
> s/DefaultConvention
> at org.jetbrains.plugins.gradle.tooling.builder.ProjectExtensio
> nsDataBuilderImpl.buildAll(ProjectExtensionsDataBuilderImpl.groovy:50)
>
> What is IDEA version?
>
> Vladimir

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Vladimir Sitnikov <si...@gmail.com>.
>Here is the stacktrace:
java.lang.NoClassDefFoundError: org/gradle/api/internal/plugin
s/DefaultConvention
 at org.jetbrains.plugins.gradle.tooling.builder.ProjectExtensio
nsDataBuilderImpl.buildAll(ProjectExtensionsDataBuilderImpl.groovy:50)

What is IDEA version?

Vladimir

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Danny Chan <yu...@gmail.com>.
I always failed with this exception in the IDEA gradle build:
java.lang.ClassNotFoundException: org.gradle.api.internal.plugins.DefaultConvention

My JDK version is 1.8_0_6
My gradle version is 6.0.1

Here is the stacktrace:
java.lang.NoClassDefFoundError: org/gradle/api/internal/plugins/DefaultConvention
 at org.jetbrains.plugins.gradle.tooling.builder.ProjectExtensionsDataBuilderImpl.buildAll(ProjectExtensionsDataBuilderImpl.groovy:50)
 at org.jetbrains.plugins.gradle.tooling.internal.ExtraModelBuilder.buildAll(ExtraModelBuilder.java:67)
 at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingToolingModelBuilder$1$1.create(DefaultToolingModelBuilderRegistry.java:104)
 at org.gradle.api.internal.project.DefaultProjectStateRegistry.withLenientState(DefaultProjectStateRegistry.java:134)
 at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingToolingModelBuilder$1.call(DefaultToolingModelBuilderRegistry.java:100)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
 at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
 at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingToolingModelBuilder.buildAll(DefaultToolingModelBuilderRegistry.java:97)
 at org.gradle.tooling.internal.provider.runner.DefaultBuildController.getModel(DefaultBuildController.java:82)
 at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter$2.getModel(InternalBuildActionAdapter.java:77)
 at org.gradle.tooling.internal.consumer.connection.BuildControllerAdapter.getModel(BuildControllerAdapter.java:62)
 at org.gradle.tooling.internal.consumer.connection.AbstractBuildController.findModel(AbstractBuildController.java:57)
 at org.gradle.tooling.internal.consumer.connection.AbstractBuildController.findModel(AbstractBuildController.java:44)
 at org.jetbrains.plugins.gradle.model.ProjectImportAction.addExtraProject(ProjectImportAction.java:143)
 at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:82)
 at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:40)
 at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter.execute(InternalBuildActionAdapter.java:80)
 at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner$ResultBuildingListener.buildResult(ClientProvidedBuildActionRunner.java:114)
 at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner$ResultBuildingListener.buildFinished(ClientProvidedBuildActionRunner.java:106)
 at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
 at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
 at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:382)
 at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:364)
 at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
 at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:352)
 at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:339)
 at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
 at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:231)
 at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:150)
 at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58)
 at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:325)
 at org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:235)
 at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:141)
 at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
 at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
 at com.sun.proxy.$Proxy14.buildFinished(Unknown Source)
 at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:171)
 at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:117)
 at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:86)
 at org.gradle.internal.invocation.GradleBuildController$3.create(GradleBuildController.java:78)
 at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:189)
 at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:40)
 at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:78)
 at org.gradle.internal.invocation.GradleBuildController.configure(GradleBuildController.java:67)
 at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:57)
 at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
 at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
 at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:63)
 at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
 at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:39)
 at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:51)
 at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:45)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
 at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
 at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
 at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
 at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:50)
 at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)
 at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:78)
 at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47)
 at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31)
 at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42)
 at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28)
 at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78)
 at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52)
 at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:59)
 at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:36)
 at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68)
 at org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:38)
 at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37)
 at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26)
 at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
 at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
 at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60)
 at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32)
 at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55)
 at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:41)
 at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48)
 at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32)
 at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:68)
 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
 at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
 at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:27)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
 at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
 at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
 at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
 at org.gradle.util.Swapper.swap(Swapper.java:38)
 at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
 at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
 at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
 at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82)
 at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
 at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
 at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
 at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
 at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
 at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
 at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.gradle.api.internal.plugins.DefaultConvention
 at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
 ... 121 more

Best,
Danny Chan
在 2019年11月20日 +0800 AM9:17,Xiening Dai <xn...@gmail.com>,写道:
> Also I am getting a build break on appveyor. It seems relate to puppycrawl check style. Any idea?
>
> https://ci.appveyor.com/project/ApacheSoftwareFoundation/calcite/builds/28981761/job/hd165mjr65gj0xal <https://ci.appveyor.com/project/ApacheSoftwareFoundation/calcite/builds/28981761/job/hd165mjr65gj0xal>
>
>
> > On Nov 19, 2019, at 4:07 PM, Xiening Dai <xn...@gmail.com> wrote:
> >
> > First want to thank you for woking on this. I try it today, and overall it looks great.
> >
> > I also notice this output at the end, is this a known issue?
> >
> > Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
> > Use '--warning-mode all' to show the individual deprecation warnings.
> > See https://docs.gradle.org/6.0.1/userguide/command_line_interface.html#sec:command_line_warnings
> >
> > Also is there an easy way to specify number of threads for build and test run?
> >
> >
> > > On Nov 19, 2019, at 5:43 AM, Danny Chan <yu...@gmail.com> wrote:
> > >
> > > Thanks, it is because I open an existing mvn project, re-open a new one
> > > works for me.
> > >
> > > Thanks so much again for the great work, I’m still learning gradle, it
> > > broadly looks pretty good!
> > >
> > > Vladimir Sitnikov <si...@gmail.com>于2019年11月19日 周二下午9:23写道:
> > >
> > > > > I have tried the build with new gradle facilities and it is much faster !
> > > >
> > > > Thank you.
> > > > I hope you would like that "wrong import order", "whitespace at the end of
> > > > the file", "wrong copyright", etc issues
> > > > are now reported in a diff-style, and they are auto-fixable.
> > > >
> > > > > Such as RelOptRulesTest, I run it in IDEA but it could not find the xml
> > > > resource file
> > > >
> > > > Oh, that's unfortunate.
> > > > Are you using your old project or have you re-created the project from
> > > > scratch?
> > > >
> > > > It cannot reproduce the issue though.
> > > >
> > > > Can you provide the stacktrace?
> > > > What's your IDEA version?
> > > >
> > > > For instance:
> > > > git clone --depth 100 https://github.com/apache/calcite.git calcite-t1
> > > > Open calcite-t1/build.gradle.kts in IDEA. Select "open as project".
> > > >
> > > > Navigate to RelOptRulesTest, run it. It runs for me.
> > > > Well, by default it uses Gradle to execute the tests, so it is expected to
> > > > work.
> > > > It is the default under "Build / Build Tools / Gradle -> Run tests using"
> > > > option.
> > > >
> > > > If I select "Run tests using" == "choose per test", right-click the test
> > > > class and run it with IDEA runner, then it executes just fine (with IDEA
> > > > runner).
> > > >
> > > > If I select "build and run with == IDEA", re-execute the test, then IDEA
> > > > creates out/... folder with classes, but the test still works.
> > > >
> > > > In other words, all execution modes in IDEA work for me. I'm using IDEA
> > > > 2019.3 EAP by the way.
> > > >
> > > > Vladimir
> > > >
> >
>

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Xiening Dai <xn...@gmail.com>.
Also I am getting a build break on appveyor. It seems relate to puppycrawl check style. Any idea?

https://ci.appveyor.com/project/ApacheSoftwareFoundation/calcite/builds/28981761/job/hd165mjr65gj0xal <https://ci.appveyor.com/project/ApacheSoftwareFoundation/calcite/builds/28981761/job/hd165mjr65gj0xal>
 

> On Nov 19, 2019, at 4:07 PM, Xiening Dai <xn...@gmail.com> wrote:
> 
> First want to thank you for woking on this. I try it today, and overall it looks great.
> 
> I also notice this output at the end, is this a known issue?
> 
> Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
> Use '--warning-mode all' to show the individual deprecation warnings.
> See https://docs.gradle.org/6.0.1/userguide/command_line_interface.html#sec:command_line_warnings
> 
> Also is there an easy way to specify number of threads for build and test run?
> 
> 
>> On Nov 19, 2019, at 5:43 AM, Danny Chan <yu...@gmail.com> wrote:
>> 
>> Thanks, it is because I open an existing mvn project, re-open a new one
>> works for me.
>> 
>> Thanks so much again for the great work, I’m still learning gradle, it
>> broadly looks pretty good!
>> 
>> Vladimir Sitnikov <si...@gmail.com>于2019年11月19日 周二下午9:23写道:
>> 
>>>> I have tried the build with new gradle facilities and it is much faster !
>>> 
>>> Thank you.
>>> I hope you would like that "wrong import order", "whitespace at the end of
>>> the file", "wrong copyright", etc issues
>>> are now reported in a diff-style, and they are auto-fixable.
>>> 
>>>> Such as RelOptRulesTest, I run it in IDEA but it could not find the xml
>>> resource file
>>> 
>>> Oh,  that's unfortunate.
>>> Are you using your old project or have you re-created the project from
>>> scratch?
>>> 
>>> It cannot reproduce the issue though.
>>> 
>>> Can you provide the stacktrace?
>>> What's your IDEA version?
>>> 
>>> For instance:
>>> git clone --depth 100 https://github.com/apache/calcite.git calcite-t1
>>> Open calcite-t1/build.gradle.kts in IDEA. Select "open as project".
>>> 
>>> Navigate to RelOptRulesTest, run it. It runs for me.
>>> Well, by default it uses Gradle to execute the tests, so it is expected to
>>> work.
>>> It is the default under "Build / Build Tools / Gradle -> Run tests using"
>>> option.
>>> 
>>> If I select "Run tests using" == "choose per test", right-click the test
>>> class and run it with IDEA runner, then it executes just fine (with IDEA
>>> runner).
>>> 
>>> If I select "build and run with == IDEA", re-execute the test, then IDEA
>>> creates out/... folder with classes, but the test still works.
>>> 
>>> In other words, all execution modes in IDEA work for me. I'm using IDEA
>>> 2019.3 EAP by the way.
>>> 
>>> Vladimir
>>> 
> 


Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Xiening Dai <xn...@gmail.com>.
First want to thank you for woking on this. I try it today, and overall it looks great.

I also notice this output at the end, is this a known issue?

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.0.1/userguide/command_line_interface.html#sec:command_line_warnings

Also is there an easy way to specify number of threads for build and test run?


> On Nov 19, 2019, at 5:43 AM, Danny Chan <yu...@gmail.com> wrote:
> 
> Thanks, it is because I open an existing mvn project, re-open a new one
> works for me.
> 
> Thanks so much again for the great work, I’m still learning gradle, it
> broadly looks pretty good!
> 
> Vladimir Sitnikov <si...@gmail.com>于2019年11月19日 周二下午9:23写道:
> 
>>> I have tried the build with new gradle facilities and it is much faster !
>> 
>> Thank you.
>> I hope you would like that "wrong import order", "whitespace at the end of
>> the file", "wrong copyright", etc issues
>> are now reported in a diff-style, and they are auto-fixable.
>> 
>>> Such as RelOptRulesTest, I run it in IDEA but it could not find the xml
>> resource file
>> 
>> Oh,  that's unfortunate.
>> Are you using your old project or have you re-created the project from
>> scratch?
>> 
>> It cannot reproduce the issue though.
>> 
>> Can you provide the stacktrace?
>> What's your IDEA version?
>> 
>> For instance:
>> git clone --depth 100 https://github.com/apache/calcite.git calcite-t1
>> Open calcite-t1/build.gradle.kts in IDEA. Select "open as project".
>> 
>> Navigate to RelOptRulesTest, run it. It runs for me.
>> Well, by default it uses Gradle to execute the tests, so it is expected to
>> work.
>> It is the default under "Build / Build Tools / Gradle -> Run tests using"
>> option.
>> 
>> If I select "Run tests using" == "choose per test", right-click the test
>> class and run it with IDEA runner, then it executes just fine (with IDEA
>> runner).
>> 
>> If I select "build and run with == IDEA", re-execute the test, then IDEA
>> creates out/... folder with classes, but the test still works.
>> 
>> In other words, all execution modes in IDEA work for me. I'm using IDEA
>> 2019.3 EAP by the way.
>> 
>> Vladimir
>> 


Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Rui Wang <am...@apache.org>.
I tested the gradle build but found a reproducible issue:

1. clone the master
2. change a line of code to a wrong indent
3. run ./gradlew style

I have been observing that at this moment, gradle will report a style check
failure but then is stuck and cannot exit without a ctrl-c (tried wait >20m
and not seeing command finishes by itself.)


-Rui

On Tue, Nov 19, 2019 at 5:43 AM Danny Chan <yu...@gmail.com> wrote:

> Thanks, it is because I open an existing mvn project, re-open a new one
> works for me.
>
> Thanks so much again for the great work, I’m still learning gradle, it
> broadly looks pretty good!
>
> Vladimir Sitnikov <si...@gmail.com>于2019年11月19日 周二下午9:23写道:
>
> > >I have tried the build with new gradle facilities and it is much faster
> !
> >
> > Thank you.
> > I hope you would like that "wrong import order", "whitespace at the end
> of
> > the file", "wrong copyright", etc issues
> > are now reported in a diff-style, and they are auto-fixable.
> >
> > >Such as RelOptRulesTest, I run it in IDEA but it could not find the xml
> > resource file
> >
> > Oh,  that's unfortunate.
> > Are you using your old project or have you re-created the project from
> > scratch?
> >
> > It cannot reproduce the issue though.
> >
> > Can you provide the stacktrace?
> > What's your IDEA version?
> >
> > For instance:
> > git clone --depth 100 https://github.com/apache/calcite.git calcite-t1
> > Open calcite-t1/build.gradle.kts in IDEA. Select "open as project".
> >
> > Navigate to RelOptRulesTest, run it. It runs for me.
> > Well, by default it uses Gradle to execute the tests, so it is expected
> to
> > work.
> > It is the default under "Build / Build Tools / Gradle -> Run tests using"
> > option.
> >
> > If I select "Run tests using" == "choose per test", right-click the test
> > class and run it with IDEA runner, then it executes just fine (with IDEA
> > runner).
> >
> > If I select "build and run with == IDEA", re-execute the test, then IDEA
> > creates out/... folder with classes, but the test still works.
> >
> > In other words, all execution modes in IDEA work for me. I'm using IDEA
> > 2019.3 EAP by the way.
> >
> > Vladimir
> >
>

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Danny Chan <yu...@gmail.com>.
Thanks, it is because I open an existing mvn project, re-open a new one
works for me.

Thanks so much again for the great work, I’m still learning gradle, it
broadly looks pretty good!

Vladimir Sitnikov <si...@gmail.com>于2019年11月19日 周二下午9:23写道:

> >I have tried the build with new gradle facilities and it is much faster !
>
> Thank you.
> I hope you would like that "wrong import order", "whitespace at the end of
> the file", "wrong copyright", etc issues
> are now reported in a diff-style, and they are auto-fixable.
>
> >Such as RelOptRulesTest, I run it in IDEA but it could not find the xml
> resource file
>
> Oh,  that's unfortunate.
> Are you using your old project or have you re-created the project from
> scratch?
>
> It cannot reproduce the issue though.
>
> Can you provide the stacktrace?
> What's your IDEA version?
>
> For instance:
> git clone --depth 100 https://github.com/apache/calcite.git calcite-t1
> Open calcite-t1/build.gradle.kts in IDEA. Select "open as project".
>
> Navigate to RelOptRulesTest, run it. It runs for me.
> Well, by default it uses Gradle to execute the tests, so it is expected to
> work.
> It is the default under "Build / Build Tools / Gradle -> Run tests using"
> option.
>
> If I select "Run tests using" == "choose per test", right-click the test
> class and run it with IDEA runner, then it executes just fine (with IDEA
> runner).
>
> If I select "build and run with == IDEA", re-execute the test, then IDEA
> creates out/... folder with classes, but the test still works.
>
> In other words, all execution modes in IDEA work for me. I'm using IDEA
> 2019.3 EAP by the way.
>
> Vladimir
>

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Vladimir Sitnikov <si...@gmail.com>.
>I have tried the build with new gradle facilities and it is much faster !

Thank you.
I hope you would like that "wrong import order", "whitespace at the end of
the file", "wrong copyright", etc issues
are now reported in a diff-style, and they are auto-fixable.

>Such as RelOptRulesTest, I run it in IDEA but it could not find the xml
resource file

Oh,  that's unfortunate.
Are you using your old project or have you re-created the project from
scratch?

It cannot reproduce the issue though.

Can you provide the stacktrace?
What's your IDEA version?

For instance:
git clone --depth 100 https://github.com/apache/calcite.git calcite-t1
Open calcite-t1/build.gradle.kts in IDEA. Select "open as project".

Navigate to RelOptRulesTest, run it. It runs for me.
Well, by default it uses Gradle to execute the tests, so it is expected to
work.
It is the default under "Build / Build Tools / Gradle -> Run tests using"
option.

If I select "Run tests using" == "choose per test", right-click the test
class and run it with IDEA runner, then it executes just fine (with IDEA
runner).

If I select "build and run with == IDEA", re-execute the test, then IDEA
creates out/... folder with classes, but the test still works.

In other words, all execution modes in IDEA work for me. I'm using IDEA
2019.3 EAP by the way.

Vladimir

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Danny Chan <yu...@gmail.com>.
Thanks for the great work Vladimir ~

I have tried the build with new gradle facilities and it is much faster !

Just have one question, how do I run the tests with diffRepository in the IDEA ? Such as RelOptRulesTest, I run it in IDEA but it could not find the xml resource file.

Best,
Danny Chan
在 2019年11月19日 +0800 PM6:25,Vladimir Sitnikov <si...@gmail.com>,写道:
> Thank you, everybody, for the review.
>
> I've merged the change, so the build is Gradle-based now. I hope I did not
> break too many workflows with that change.
>
> Just in case, the new build steps are on the website (
> https://calcite.apache.org/docs/howto.html#running-tests ).
> $ ./gradlew assemble # build the artifacts
> $ ./gradlew build -x test # build the artifacts, verify code style, skip
> tests
> $ ./gradlew check # verify code style, execute tests
> $ ./gradlew test # execute tests
> $ ./gradlew style # update code formatting (for auto-correctable cases) and
> verify style
> $ ./gradlew spotlessCheck checkstyleAll # report code style violations
>
> IDEs might remember that "the project was Maven-based", so the easiest way
> to migrate might be to remove project files and import
> Gradle build.
>
> Vladimir

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Vladimir Sitnikov <si...@gmail.com>.
Thank you, everybody, for the review.

I've merged the change, so the build is Gradle-based now. I hope I did not
break too many workflows with that change.

Just in case, the new build steps are on the website (
https://calcite.apache.org/docs/howto.html#running-tests ).
$ ./gradlew assemble # build the artifacts
$ ./gradlew build -x test # build the artifacts, verify code style, skip
tests
$ ./gradlew check # verify code style, execute tests
$ ./gradlew test # execute tests
$ ./gradlew style # update code formatting (for auto-correctable cases) and
verify style
$ ./gradlew spotlessCheck checkstyleAll # report code style violations

IDEs might remember that "the project was Maven-based", so the easiest way
to migrate might be to remove project files and import
Gradle build.

Vladimir

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Vladimir Sitnikov <si...@gmail.com>.
Update: the build script is ready, the documentation is updated, CI passes
(including a new CI check with "build Avatica from master => test with
Calcite".

The only missing bit is removal of pom.xml files.
Note: both Maven and Gradle scripts work at the same time from the same
commit, however, the intention is to remove pom.xml right with migration to
Gradle.

Vladimir

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Stamatis Zampetakis <za...@gmail.com>.
I am totally OK for doing the unification after the Gradle migration.

Other than that, I had a quick look and left some comments directly in the
PR. I will try to test it when I find some time.

On Thu, Nov 14, 2019 at 10:27 PM Vladimir Sitnikov <
sitnikov.vladimir@gmail.com> wrote:

> The Gradle build scripts are ready (
> https://github.com/apache/calcite/pull/1571 )
> There might be minor issues like "a resource file missing in one of the
> jars",
> however, I expect there will be no more major changes.
>
>
> Unfortunately, there are changes that prevent building with both Maven and
> Gradle from the same commit.
> For instance, Maven uses
> "core/src/main/resources/version/org-apache-calcite-jdbc.properties" for
> figuring out driver version.
> And Gradle build just generates CalciteDriverVersion.java
> I don't want to over-engineer pom.xml files, so I did not try to make
> pom.xml files buildable.
> However, pom.xml files will be removed right after Gradle script is merged.
>
> The other change is Druid migrated from JUnit4 to JUnit5 (to enable the use
> of Assumptions).
>
> I'm inclined to commit the change, so please feel free to review it.
>
> In case you missed, you can start playing with the build with the commands
> that are listed in the commit message:
>
> https://github.com/apache/calcite/pull/1571/commits/4bbf1cdeac6e09959e027eaa482a67937228bf9d
> "./gradlew tasks" could be a good start.
>
> The file movements/edits are minimal, so I hope it won't affect pending
> PRs.
>
>
> Note, as I said earlier, having both Avatica and Calcite in Gradle enables
> us to load both projects to the IDE at the same time.
> In the same way, one can test who Avatica fix impacts Calcite with a single
> command line. No changes to pom.xml needed!!!
>
> The procedure is to clone calcite-avatica and calcite side by side, and use
> -PlocalAvatica property.
>
> Vladimir
>

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Vladimir Sitnikov <si...@gmail.com>.
The Gradle build scripts are ready (
https://github.com/apache/calcite/pull/1571 )
There might be minor issues like "a resource file missing in one of the
jars",
however, I expect there will be no more major changes.


Unfortunately, there are changes that prevent building with both Maven and
Gradle from the same commit.
For instance, Maven uses
"core/src/main/resources/version/org-apache-calcite-jdbc.properties" for
figuring out driver version.
And Gradle build just generates CalciteDriverVersion.java
I don't want to over-engineer pom.xml files, so I did not try to make
pom.xml files buildable.
However, pom.xml files will be removed right after Gradle script is merged.

The other change is Druid migrated from JUnit4 to JUnit5 (to enable the use
of Assumptions).

I'm inclined to commit the change, so please feel free to review it.

In case you missed, you can start playing with the build with the commands
that are listed in the commit message:
https://github.com/apache/calcite/pull/1571/commits/4bbf1cdeac6e09959e027eaa482a67937228bf9d
"./gradlew tasks" could be a good start.

The file movements/edits are minimal, so I hope it won't affect pending PRs.


Note, as I said earlier, having both Avatica and Calcite in Gradle enables
us to load both projects to the IDE at the same time.
In the same way, one can test who Avatica fix impacts Calcite with a single
command line. No changes to pom.xml needed!!!

The procedure is to clone calcite-avatica and calcite side by side, and use
-PlocalAvatica property.

Vladimir

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Vladimir Sitnikov <si...@gmail.com>.
>Currently we have two ways of running/skipping a slow test

You wanted to say "at least two", did you?
There are properties like calcite.test.druid which target a single test
class.

>Does this make sense considering the ongoing work of moving to Gradle and
JUnit5?

The current Gradle-JUnit5 build uses **both** skipping options at the same
time, because I want minimal changes to the source code.
I'm not sure what is the better way, but I do like how JUnit5 enables to
have short tags and tag expressions to filter tests.

We could even tag tests with "@ExpectedDuration" and provide an option like
"run all tests that typically fit in 5sec"

>to unify the two by annotating all slow tests with the appropriate
annotation

I would suggest doing that after Gradle migration. WDYT?

Vladimir

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Stamatis Zampetakis <za...@gmail.com>.
Hi Vladimir,

Thanks for working on this.

I have a quick question regarding fast/slow tests.

Currently we have two ways of running/skipping a slow test:
* using the SlowTests annotation and using JUnit categories;
* using the system property calcite.test.slow.

I was planning (WIP in [1]) to unify the two by annotating all slow tests
with the appropriate annotation.
Does this make sense considering the ongoing work of moving to Gradle and
JUnit5?
Are you planning to keep/use these kind of annotations?

Best,
Stamatis

[1] https://github.com/apache/calcite/pull/1375




On Mon, Nov 11, 2019 at 11:30 PM Vladimir Sitnikov <
sitnikov.vladimir@gmail.com> wrote:

> As you might know, Avatica is already migrated to Gradle.
>
> On top of that, Calcite is almost there as well:
> https://github.com/apache/calcite/pull/1571
>
> The missing bit is probably the notion of tests "fast/slow/etc/etc".
> Unfortunately, there are tests that assert on folder layout like
> "target/test-classes".
> I'm going to ignore those tests for now, and fix them as pom.xml files are
> removed.
>
> I'm going to configure Gradle to use JUnit5 engine to run the tests.
>
> In the meantime, everybody's welcome to preview Gradle build.
>
> Vladimir
>

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Vladimir Sitnikov <si...@gmail.com>.
As you might know, Avatica is already migrated to Gradle.

On top of that, Calcite is almost there as well:
https://github.com/apache/calcite/pull/1571

The missing bit is probably the notion of tests "fast/slow/etc/etc".
Unfortunately, there are tests that assert on folder layout like
"target/test-classes".
I'm going to ignore those tests for now, and fix them as pom.xml files are
removed.

I'm going to configure Gradle to use JUnit5 engine to run the tests.

In the meantime, everybody's welcome to preview Gradle build.

Vladimir

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Francis Chuang <fr...@apache.org>.
Definitely +1 for trying it out in Avatica first. Avatica's release 
procedure looks quite similar to Calcite's with Avatica's being slightly 
simpler.

On 30/05/2019 10:34 pm, Vladimir Sitnikov wrote:
> Francis>using a bash script
> 
> Oh, that is a great amount of work.
> 
> I'm not sure if release procedures for Avatica and Calcite differ much,
> however it might be a good idea to migrate Avatica first.
> I guess the number of changes coming to Avatica is much less, and we can
> polish Gradle / release there.
> What do you think?
> 
> By the way, I like the way Gradle enables to release *without* committing
> changes.
> In other words:
> 
> 1)
> $ gw build
> ...
>> Configure project :
> Building JMeter 5.2.0-2ba449c-SNAPSHOT
> 
> 2)
> $ gw -Pnightly=false build
> ...
>> Configure project :
> Building JMeter 5.2.0-SNAPSHOT
> 
> 3)
> $ gw -Prelease build
> ...
>> Configure project :
> Building JMeter 5.2.0
> 
> Of course the version has to be updated after the release, however
> a) There's nothing to rollback in case of a failure which is supercool
> b) Everybody else can build exactly the same commit in "release mode" and
> verify if the produced SHAs match the ones published by a release manager.
> 
> Vladimir
> 

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Vladimir Sitnikov <si...@gmail.com>.
Francis>using a bash script

Oh, that is a great amount of work.

I'm not sure if release procedures for Avatica and Calcite differ much,
however it might be a good idea to migrate Avatica first.
I guess the number of changes coming to Avatica is much less, and we can
polish Gradle / release there.
What do you think?

By the way, I like the way Gradle enables to release *without* committing
changes.
In other words:

1)
$ gw build
...
> Configure project :
Building JMeter 5.2.0-2ba449c-SNAPSHOT

2)
$ gw -Pnightly=false build
...
> Configure project :
Building JMeter 5.2.0-SNAPSHOT

3)
$ gw -Prelease build
...
> Configure project :
Building JMeter 5.2.0

Of course the version has to be updated after the release, however
a) There's nothing to rollback in case of a failure which is supercool
b) Everybody else can build exactly the same commit in "release mode" and
verify if the produced SHAs match the ones published by a release manager.

Vladimir

Re: CALCITE-2905: Maven -> Gradle: any thoughts

Posted by Francis Chuang <fr...@apache.org>.
This is a good idea. For avatica-go, I've implemented something similar 
using a bash script and docker-compose [1] [2]. For avatica, I've also 
implemented a bash script and docker-compose for making releases [3] 
[4]. Hopefully, this is something we can do for avatica as well, then we 
can remove the bash script and use docker-compose to wrap around Gradle 
(for those who want to run the release build process in docker).

Currently I've the following steps automated (see avatica's HOWTO for 
more details [5]):
1. Build release.
2. Upload release to dev svn respoitory and generate vote email.
3. Tag final release and push and then move rc release to the release 
svn repository.

[1] https://github.com/apache/calcite-avatica-go/blob/master/docker.sh
[2] 
https://github.com/apache/calcite-avatica-go/blob/master/docker-compose.yml
[3] https://github.com/apache/calcite-avatica/blob/master/docker.sh
[4] https://github.com/apache/calcite-avatica/blob/master/docker-compose.yml
[5] 
https://calcite.apache.org/avatica/docs/howto.html#making-a-release-for-calcite-committers

On 30/05/2019 8:09 pm, Vladimir Sitnikov wrote:
> Update: I think Gradle-based build for JMeter is 99.42% complete, and I'm
> quite happy with that (the link is still
> https://github.com/apache/jmeter/pull/448 )
> I have commands like "./gradlew prepareVote" that builds artifacts, stages
> them to dist.apache.org / repository.apache.org, builds documentation
> preview, publishes it along with RAT report to a Git repository (e.g.
> GitHub pages preview), and prepares "[VOTE]" email.
> Note: I have stub implementations for Nexus, SVN (
> https://github.com/vlsi/asflike-release-environment ), so everybody can try
> that out with zero risks of updating apache.org servers.
> 
> I have "./gradlew runGui" that builds artifacts and launches the app
> automatically (== which would be very handy for our ./sqlline since we can
> delegate classpath build and cache to Gradle)
> 
> If you are feeling lucky/curious, please check out apache/jmeter/pull/448
> and try loading the project in IDE / executing some commands (there's a
> list in PR description)
> 
> The only "sad" point I found is Kotlin-based build scripts take a bit to
> compile (e.g. it might take 10-20 seconds to compile "10 build scripts"
> after modification of the core build file), however I think it is not a
> problem since we don't modify build files often. Subsequent executions are
> super-fast.
> 
> Vladimir
>