There was also …

- create a flink style (for example, leaving indentation as +1 tab rather than 
+2 spaces as in google's style)

- create a flink style but optional and unenforced (but recommended for new 
contributions)

Flink currently has a reasonably consistent code style. I expect that adopting 
a radically different code style module-by-module will also result in 
contributions with a mix of old an new styles. If we’re not willing to re-style 
flink-core today, under what circumstances will this change? With a punctuated 
refactoring there would be a singular event for developers to remember (as with 
the initial commits).

Greg


> On Feb 27, 2017, at 3:40 PM, Dawid Wysakowicz <wysakowicz.da...@gmail.com> 
> wrote:
> 
> So to sum up all the comments so far we have two alternatives.
> We either:
> 1) introduce unified checkstyle (with enforcing) and corresponding code
> style, both based on some established ones like google code style for java
> [1] <https://github.com/google/google-java-format> and scalastyle for scala
> [2] <http://www.scalastyle.org/> . We would introduce it module by module
> for a longer period of time
> or
> 2) leave it as it is, and end this discussion for a longer (possibly
> infinite :) ) period of time
> 
> Not sure how we should proceed with the decision on it. Is it possible to
> do some voting or so?
> 
> 2017-02-27 20:54 GMT+01:00 Stavros Kontopoulos <st.kontopou...@gmail.com>:
> 
>> +1 to provide and enforcing a unified code style for both java and scala.
>> Unification should apply when it makes sense like comments though.
>> 
>> Eventually code base should be re-factored. I would vote for the one at a
>> time module fix apporoach.
>> Style guide should be part of any PR review.
>> 
>> We could also have a look at the spark style guide:
>> https://github.com/databricks/scala-style-guide
>> 
>> The style code and general guidelines help keep code more readable and keep
>> things simple
>> with many contributors and different styles of code writing + language
>> features.
>> 
>> 
>> On Mon, Feb 27, 2017 at 8:01 PM, Stephan Ewen <se...@apache.org> wrote:
>> 
>>> I agree, reformatting 90% of the code base is tough.
>>> 
>>> There are two main issues:
>>>  (1) Incompatible merges. This is hard, especially for the folks that
>> have
>>> to merge the pull requests ;-)
>>> 
>>>  (2) Author history: This is less of an issue, I think. "git log
>>> <filename>" and "git show <revision> -- <filename>" will still work and
>> one
>>> may have to go one commit back to find out why something was changed
>>> 
>>> 
>>> What I could image is to do this incrementally. Define the code style in
>>> "flink-parent" but do not activate it.
>>> Then start with some projects (new projects, plus some others):
>>> merge/reject PRs, reformat, activate code style.
>>> 
>>> Piece by piece. This is realistically going to take a long time until it
>> is
>>> pulled through all components, but that's okay, I guess.
>>> 
>>> Stephan
>>> 
>>> 
>>> On Mon, Feb 27, 2017 at 1:53 PM, Aljoscha Krettek <aljos...@apache.org>
>>> wrote:
>>> 
>>>> Just for a bit of context, this is the output of running cloc on the
>>> Flink
>>>> codebase:
>>>> ------------------------------------------------------------
>>>> -----------------------
>>>> Language                         files          blank        comment
>>>>    code
>>>> ------------------------------------------------------------
>>>> -----------------------
>>>> Java                              4609         126825         185428
>>>>  519096
>>>> 
>>>> => 704,524 lines of code + comments/javadoc
>>>> 
>>>> When I apply the google style to the Flink code base using
>>>> https://github.com/google/google-java-format I get these commit
>>>> statistics:
>>>> 
>>>> 4577 files changed, 647645 insertions(+), 622663 deletions(-)
>>>> 
>>>> That is, a change to the Google Code Style would touch roughly over 90%
>>> of
>>>> all code/comment lines.
>>>> 
>>>> I would like to have a well defined code style, such as the Google Code
>>>> style, that has nice tooling and support but I don't think we will ever
>>>> convince enough people to do this kind of massive change. Even I think
>>> it's
>>>> a bit crazy to change 90% of the code base in one commit.
>>>> 
>>>> On Mon, 27 Feb 2017 at 11:10 Till Rohrmann <trohrm...@apache.org>
>> wrote:
>>>> 
>>>>> No, I think that's exactly what people mean when saying "losing the
>>>> commit
>>>>> history". With the reformatting you would have to go manually through
>>> all
>>>>> past commits until you find the commit which changed a given line
>>> before
>>>>> the reformatting.
>>>>> 
>>>>> Cheers,
>>>>> Till
>>>>> 
>>>>> On Sun, Feb 26, 2017 at 6:32 PM, Alexander Alexandrov <
>>>>> alexander.s.alexand...@gmail.com> wrote:
>>>>> 
>>>>>> Just to clarify - by "losing the commit history" you actually mean
>>>>> "losing
>>>>>> the ability to annotate each line in a file with its last commit",
>>>> right?
>>>>>> 
>>>>>> Or is there some other sense in which something is lost after
>>> applying
>>>>> bulk
>>>>>> re-format?
>>>>>> 
>>>>>> Cheers,
>>>>>> A.
>>>>>> 
>>>>>> On Sat, Feb 25, 2017 at 7:10 AM Henry Saputra <
>>> henry.sapu...@gmail.com
>>>>> 
>>>>>> wrote:
>>>>>> 
>>>>>>> Just want to clarify what unify code style here.
>>>>>>> 
>>>>>>> Is the intention to have IDE and Maven plugins to have the same
>>> check
>>>>>> style
>>>>>>> rules?
>>>>>>> 
>>>>>>> Or are we talking about having ONE code style for both Java and
>>>> Scala?
>>>>>>> 
>>>>>>> - Henry
>>>>>>> 
>>>>>>> On Fri, Feb 24, 2017 at 8:08 AM, Greg Hogan <c...@greghogan.com>
>>>>> wrote:
>>>>>>> 
>>>>>>>> I agree wholeheartedly with Ufuk. We cannot reformat the
>>> codebase,
>>>>>> cannot
>>>>>>>> pause while flushing the PR queue, and won't find a consensus
>>> code
>>>>>> style.
>>>>>>>> 
>>>>>>>> I think we can create a baseline code style for new and
>> existing
>>>>>>>> contributors for which reformatting on changed files will be
>>>>> acceptable
>>>>>>> for
>>>>>>>> PR reviews.
>>>>>>>> 
>>>>>>>> On Fri, Feb 24, 2017 at 5:01 AM, Dawid Wysakowicz <
>>>>>>>> wysakowicz.da...@gmail.com> wrote:
>>>>>>>> 
>>>>>>>>> The problem with code style when it is not enforced is that
>> it
>>>> will
>>>>>> be
>>>>>>> a
>>>>>>>>> matter of luck to what parts of files / new files will it be
>>>>> applied.
>>>>>>>> When
>>>>>>>>> the code style is not applied to whole file, it is pretty
>> much
>>>>>> useless
>>>>>>>>> anyway. You would need to manually select just the fragments
>>> one
>>>> is
>>>>>>>>> changing. The benefits of having code style and enforcing it
>> I
>>>> see
>>>>>> are:
>>>>>>>>> - being able to apply autoformatter, which speeds up writing
>>>> code
>>>>>>>>> - it would make reviewing PRs easier as e.g. there would be
>>> line
>>>>>>> length
>>>>>>>>> limit applied etc. which will make line breaking more reader
>>>>>> friendly.
>>>>>>>>> 
>>>>>>>>> Though I think if a consensus is not reachable it would be
>> good
>>>> to
>>>>>> once
>>>>>>>> and
>>>>>>>>> forever decide that we don't want a code style and
>> checkstyle.
>>>>>>>>> 
>>>>>>>>> 2017-02-24 10:51 GMT+01:00 Ufuk Celebi <u...@apache.org>:
>>>>>>>>> 
>>>>>>>>>> On Fri, Feb 24, 2017 at 10:46 AM, Fabian Hueske <
>>>>> fhue...@gmail.com
>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>>>> I agree with Till that encouraging a code style without
>>>>> enforcing
>>>>>>> it
>>>>>>>>> does
>>>>>>>>>>> not make a lot of sense.
>>>>>>>>>>> If we enforce it, we need to touch all files and PRs.
>>>>>>>>>> 
>>>>>>>>>> I think it makes sense for new contributors to have a
>>> starting
>>>>>> point
>>>>>>>>>> without enforcing anything (I do agree that we are past the
>>>> point
>>>>>> to
>>>>>>>>>> reach consensus on a style and enforcement ;-)).
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 

Reply via email to