+1

On 21/10/16 1:36 pm, Jared Stewart wrote:
Fantastic, thanks for merging this in Mark.  For anyone with outstanding work 
on branches made before this change, your life may be made easier by 
cherry-picking feeb5c98402881156b34e222c58ce15c71a4fca7 (which added Spotless) 
into your branch and then running ‘gradlew spotlessApply’ on it before 
attempting to merge into develop.

— Jared
On Oct 21, 2016, at 1:33 PM, Mark Bretl <asf.mbr...@gmail.com> wrote:

Thanks Jared for the suggestion of Spotless and follow-up work.

This is now completed and checked into develop. As this does touch many
files, be prepared the next time you pull.

--Mark



On Fri, Oct 21, 2016 at 1:21 PM, Jared Stewart <jstew...@pivotal.io> wrote:

Done! :)

- Jared
On Oct 21, 2016, at 12:27 PM, Mark Bretl <asf.mbr...@gmail.com> wrote:

One more time! :)

Conflicting files
geode-core/src/test/java/org/apache/geode/disttx/PRDistTXDUnitTest.java
geode-core/src/test/java/org/apache/geode/disttx/
PRDistTXWithVersionsDUnitTest.java
geode-core/src/test/java/org/apache/geode/internal/cache/execute/
PRTransactionDUnitTest.java
--Mark

On Fri, Oct 21, 2016 at 12:08 PM, Jared Stewart <jstew...@pivotal.io>
wrote:
I just pulled and rebased onto develop, and force pushed into the
existing
pull request.  It should be clean to merge in now.

Thanks,
Jared
On Oct 21, 2016, at 11:57 AM, Mark Bretl <asf.mbr...@gmail.com> wrote:

I believe there is enough consensus here to check this into develop.

Jared, due to recent checkins into develop, can you update the pull
request
one more time? Trying to make this as clean as possible. I will check
into
develop after the update, unless someone else gets to it first.

All, can we hold checkins on develop until the new formatter is
applied?
Thanks,

--Mark

On Fri, Oct 21, 2016 at 9:03 AM, Kenneth Howe <kh...@pivotal.io>
wrote:
+1

On Oct 21, 2016, at 8:27 AM, Bruce Schuchardt <
bschucha...@pivotal.io>
wrote:
+1

Le 10/20/2016 à 5:13 PM, Udo Kohlmeyer a écrit :
+1


On 20/10/16 4:56 pm, Mark Bretl wrote:
+1 as well...

- Pulled changes
- Executed './gradlew clean build' and was successful.
- Modified a couple of random files to test
- Ran './gradlew clean build' again and failed expectedly
- Ran './gradlew spotlessApply', task was successful
- Ran './gradlew clean build' and succeeded

Great addition! As long as others are good with the formatter,
then I
am
good.

--Mark

On Thu, Oct 20, 2016 at 3:40 PM, Kirk Lund <kl...@apache.org>
wrote:
+1 I just added my approval to the PR (and again here)


On Thu, Oct 20, 2016 at 3:25 PM, Jared Stewart <
jstew...@pivotal.io
wrote:

I have opened a pull request here <https://github.com/apache/
incubator-geode/pull/268> to enable the Spotless plugin and to
switch to
the Google Java Style formatter templates.


On Oct 18, 2016, at 4:32 PM, Kirk Lund <kl...@pivotal.io>
wrote:
For reference TRAC #38741 was a bug with the summary
"EOFException
during
deserialize on client update with copy-on-read=true"

-Kirk


On Tue, Oct 18, 2016 at 4:27 PM, Jared Stewart <
jstew...@pivotal.io
wrote:
To give everyone an update, using the Google Java Style eclipse
template
there is an issue spotlessCheck where fails for
geode-core/src/test/java/org/apache/geode/cache30/
Bug38741DUnitTest.java
even if you run it directly after spotlessApply. This needs to
be
investigated and fixed before I can open a pull request to
enable
spotless.
On Oct 14, 2016, at 4:57 PM, Dan Smith <dsm...@pivotal.io>
wrote:
+1 - The formatting looks better now.

-Dan

On Thu, Oct 13, 2016 at 11:06 AM, Jared Stewart <
jstew...@pivotal.io
wrote:
I agree that the formatter needs fixing up.  Our wiki <
https://cwiki.apache.org/confluence/display/GEODE/Code+
Style+Guide>
says
that we follow the Google Java Style guide, but that is not
actually
what’s
in our formatter templates.  I pushed a new branch <
https://github.com/
jaredjstewart/incubator-geode/tree/
spotlessPluginGoogleStyle>
that
points
spotless at the actual Google Java Style template, and I
think
it
makes
both of the examples you found look better.

On Oct 13, 2016, at 10:11 AM, Dan Smith <dsm...@pivotal.io>
wrote:
+1 for adding this to ./gradlew build

But I think we might want to fix up the formatter a bit
before
reformatting
the code. I tried running spotlessApply, and it did some
unfortunate
reformatting of code to make it less readable.

One problem is with method chaining. We have a few different
factory
APIs
that encourage method chaining, and it put all the method
calls
on
a
single
line. For example here's one change:

-        ClientCacheFactory ccf = new ClientCacheFactory()
-
.addPoolServer(NetworkUtils.getServerHostName(server1.
getHost()),
port)
- .set(SECURITY_CLIENT_AUTH_INIT,
UserPasswordAuthInit.class.getName() + ".create")
-            .set(SECURITY_PREFIX+"username", "root")
-            .set(SECURITY_PREFIX+"password", "root");
+        ClientCacheFactory ccf = new
ClientCacheFactory().addPoolServer(NetworkUtils.
getServerHostName(server1.getHost()),
port).set(SECURITY_CLIENT_AUTH_INIT,
UserPasswordAuthInit.class.
getName()
+
".create").set(SECURITY_PREFIX + "username",
"root").set(SECURITY_PREFIX
+
"password", "root");

I see a similar problem where it put array initialization
all
on a
single
line:

+  public void testMultiColOrderByWithIndexRe
sultWithProjection()
throws
Exception {
String queries[] = {
    // Test case No. IUMR021
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID > 10 order by ID desc, pkid desc ",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID > 10 order by ID asc, pkid asc ",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID > 10 and ID < 20 order by ID asc, pkid asc ",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID > 10 and ID < 20 order by ID desc , pkid desc",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID >= 10 and ID <= 20 order by ID desc, pkid asc ",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID >= 10 and ID <= 20 order by ID asc, pkid desc",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID != 10 order by ID asc , pkid desc",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID != 10 order by ID desc, pkid asc ",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID > 10 order by ID desc, pkid desc limit 5",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID > 10 order by ID asc, pkid asc limit 5",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID > 10 and ID < 20 order by ID asc, pkid desc limit 5
",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID > 10 and ID < 20 order by ID desc, pkid asc limit
5",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID >= 10 and ID <= 20 order by ID desc, pkid desc
limit
5",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID >= 10 and ID <= 20 order by ID asc, pkid asc limit
5",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID != 10 order by ID asc , pkid desc limit 10",
-        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID != 10 order by ID desc, pkid desc limit 10",
-
-       };
+        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID > 10 order by ID desc, pkid desc ", "SELECT   ID,
description,
createTime, pkid FROM /portfolio1 pf1 where ID > 10 order by
ID
asc,
pkid
asc ", "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID > 10 and ID < 20 order by ID asc, pkid asc ",
"SELECT
ID,
description, createTime, pkid FROM /portfolio1 pf1 where ID
10
and
ID <
20 order by ID desc , pkid desc", "SELECT   ID, description,
createTime,
pkid FROM /portfolio1 pf1 where ID >= 10 and ID <= 20 order
by
ID
desc,
pkid asc ", "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1 where ID >= 10 and ID <= 20 order by ID asc, pkid desc",
"SELECT
ID,
description, createTime, pkid FROM /portfolio1 pf1 where ID
!=
10
order
by
ID asc , pkid desc", "SELECT   ID, description, createTime,
pkid
FROM
/portfolio1 pf1 where ID != 10 order by ID desc, pkid asc ",
+        "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where ID > 10 order by ID desc, pkid desc limit 5", "SELECT
ID,
description, createTime, pkid FROM /portfolio1 pf1 where ID
10
order
by
ID asc, pkid asc limit 5", "SELECT   ID, description,
createTime,
pkid
FROM
/portfolio1 pf1 where ID > 10 and ID < 20 order by ID asc,
pkid
desc
limit
5 ", "SELECT   ID, description, createTime, pkid FROM
/portfolio1
pf1
where
ID > 10 and ID < 20 order by ID desc, pkid asc limit 5",
"SELECT
ID,
description, createTime, pkid FROM /portfolio1 pf1 where ID
=
10
and
ID
<=
20 order by ID desc, pkid desc limit 5", "SELECT   ID,
description,
createTime, pkid FROM /portfolio1 pf1 where ID >= 10 and ID
<=
20
order
by
ID asc, pkid asc limit 5", "SELECT   ID, description,
createTime,
pkid
FROM
/portfolio1 pf1 where ID != 10 order by ID asc , pkid desc
limit
10",
"SELECT   ID, description, createTime, pkid FROM /portfolio1
pf1
where
ID
!= 10 order by ID desc, pkid desc limit 10",
+
+    };





On Thu, Oct 13, 2016 at 9:51 AM, Jared Stewart <
jstew...@pivotal.io>
wrote:
The task is fully suppressible with -x spotlessCheck.
Also,
if
you
have
any formatter errors you can automatically fix them with
'gradle
spotlessApply’.

On Oct 13, 2016, at 9:40 AM, Kevin Duling <
kdul...@pivotal.io
wrote:
If we made formatting a warning, then people would
probably
quickly
ignore
it.
If we made formatting an error, we need to be sure we
don't
get
in
to
the
situation where <editor of choice>'s formatter is not in
agreement
with
the
build's checker.

I can live with an additional 17 seconds as well.  And
Jared's
already
reduced the build time locally by 50%.  But I still want
the
ability
to
suppress the check similar to -x javadoc.

On Wed, Oct 12, 2016 at 9:58 PM, William Markito <
wmark...@pivotal.io>
wrote:

This sounds really good to me as well.  +1

On Wed, Oct 12, 2016 at 4:13 PM, Jared Stewart <
jstew...@pivotal.io
wrote:

This is running locally on my laptop.  Since Spotless is
only
doing
code
formatting and not any other static analysis, it already
has 0
errors.
(Other than, of course, formatting not consistent with
the
template.)
On Oct 12, 2016, at 4:11 PM, Kenneth Howe <
kh...@pivotal.io>
wrote:
Agree with Mark, this has to work with 0 errors before
it
would
be
useful in precheckin. I think I could live with an
additional
17
seconds
most of the time for running the spotlessCheck as
suggested.
Jared, Is that 17 seconds running locally on your
laptop
or
on a
more
capable machine?
Ken

On Oct 12, 2016, at 3:39 PM, Jared Stewart <
jstew...@pivotal.io>
wrote:
If you want to try it out, I pushed a branch to my
Geode
repo
that
contains this change:
https://github.com/jaredjstewart/incubator-geode/
tree/spotlessPlugin
<
https://github.com/jaredjstewart/incubator-geode/
tree/spotlessPlugin
On Oct 12, 2016, at 2:27 PM, Darrel Schneider <
dschnei...@pivotal.io
wrote:
I like Dan's idea of catching formatting issues
earlier
but
I
think
adding
5-10 minutes to "build" would be too much. Currently
when
I'm
trying
to do
a quick build I use -xjavadoc. I'd probably do the
same
for
this
target if
it was part of build until I'm ready to do a
precheckin.
Mark, wouldn't running the formatter on all our java
files
and
checking
them in get these issues down to 0?

On Wed, Oct 12, 2016 at 12:53 PM, Udo Kohlmeyer <
ukohlme...@pivotal.io
wrote:

+1 - adding checkstyle to precheckin.

If the developer uses the provided templates (
eclipse +
intellij)
then
most of the formatting issues should be handled
before
precheckin.
Also, if
a developer has a questionable coding style, that
should
lessen
as
that
developer will have resolve the issues before being
able to
commit.
I also believe that this should not be an
overbearing
and
intrusive
process.

--Udo



On 13/10/16 6:36 am, Mark Bretl wrote:

Dan,

There is some extra amount of time, 5-10 minutes
extra
for
the
entire
project (depending on your CPU). I think the real
issue to
adding
it
to
the
precheckin target and have it be 'effective' is it
needs
to
run
successfully, otherwise it would turn into noise
most
of
the
time
I
think.
We need to get the issues down to 0 or manage to
set
a
new
baseline
(not
the best idea), which is a lot of work, to make it
run
successfully.
Right
now, if you run the target, it will fail every time
since
there
outstanding
issues in the code and very hard to tell what
issues
were
introduced.
--Mark

On Wed, Oct 12, 2016 at 11:34 AM, Dan Smith <
dsm...@pivotal.io>
wrote:
Seems like it should run as part of the build
target.
The
only
reason to
make it part of precheckin is if it takes a long
time,
otherwise
people
should get fast feedback they need to change their
code
before
they
push.
-Dan

On Wed, Oct 12, 2016 at 11:24 AM, Jared Stewart <
jstew...@pivotal.io>
wrote:

+1 to running during the precheckin target as well
as
Travis
CI
On Oct 12, 2016 11:20 AM, "Darrel Schneider" <
dschnei...@pivotal.io>
wrote:

If Travis CI is only run on pull requests then
that
is
not
enough
because
committers do not submit pull requests. Having it
run
during
the
gradle
build or precheckin target is also needed. In
addition
to
that
I
also
wanted PRs to be checked.


On Wed, Oct 12, 2016 at 11:12 AM, Jared Stewart
<
jstew...@pivotal.io>
wrote:

It would certainly be necessary to make sure
that
the
code
style
to
be
enforced is sensible, e.g. doe not use wildcard
imports.
We
would
also
want to make one large commit to format all
existing
code
before
turning
this on.
Mark - Thank you for the information about the
existing
setup.
Mark, Darrel, Kevin - Given all of your
comments, I
think
it
might
make
more sense to add the flag to enable it in Travis
CI
rather
than
as
part
of  the build.  This way your build pass
regardless
of
whitespace,
but
the
CI job would fail on PRs if they did not adhere
to
the
standard
formatting.

Anthony - It doesn’t seem to me that turning
this
on
would
have
the
effect

of combining reformatting commits and logic
changes.
Rather,
since
all
code would already be formatted, there would no
longer
be
any
reformatting

commits except for single large commits when
the
code
style
file
was
updated.

On Oct 12, 2016, at 11:01 AM, Bruce Schuchardt
<
bschucha...@pivotal.io
wrote:
I like the idea of doing this but I don't
think
Checkstyle
should
be
enabled until all of the code is reformatted.
Also, last time I checked there was still a
problem
with
the
IntelliJ
auto-format settings.  It still used wildcard
imports,
which I
believe
we

don't allow.  I've manually changed my settings
in
Editor->Code
Style->Java

to "Use single class import" to correct that
problem.  I
couldn't see
how
to get Gradle to do it.
Le 10/12/2016 à 10:28 AM, Anthony Baker a
écrit
:
Source code with a consistent look-and-feel
makes it
easier
for
people
to join the project community and contribute.
Let’s continue to keep reformatting commits
separate
from
logic
changes—otherwise it’s too hard to review.
Anthony
On Oct 12, 2016, at 10:06 AM, Dan Smith <
dsm...@pivotal.io>
wrote:
+1
This might be a good time to reformat the
code
since
I
don't
think
there
are too many long lived feature branches
outstanding.
-Dan

On Wed, Oct 12, 2016 at 10:00 AM, Jared
Stewart
<
jstew...@pivotal.io
wrote:
I would like to advocate for adding a
Checkstyle <
http://checkstyle
.

sourceforge.net/> or Spotless <
https://github.com/diffplug/
spotless
gradle task to our build process to ensure that
all
code
checked
in
meets
the formatting standards described on the
wiki <
https://cwiki.apache.org/
confluence/display/GEODE/Code+Style+Guide>
(and
in
the
intellij/eclipse
formatter xml files in our repository). This
will
alleviate
difficulties
reviewing code when whitespace or formatting
has
changed
since
all
code
checked in will already comply with standards.
--

~/William





Reply via email to