I merged the stricter checkstyle for flink-streaming-java today. (Sans checking 
for right curly braces)

> On 18. Apr 2017, at 22:17, Chesnay Schepler <ches...@apache.org> wrote:
> 
> +1 to use earth rotation as the new standard time unit. Maybe more 
> importantly, I'm absolutely in favor of merging it.
> 
> On 18.04.2017 20:39, Aljoscha Krettek wrote:
>> I rebased the PR [1] on current master. Is there any strong objection 
>> against merging this (minus the two last commits which introduce 
>> curly-brace-style checking). If not, I would like to merge this after two 
>> earth rotations, i.e. after all the time zones have had some time to react.
>> 
>> The complete set of checks has been listed by Chesnay (via Greg) before but 
>> the gist of it is that we only add common-sense checks that most people 
>> should be able to agree upon so that we avoid edit wars (especially when it 
>> comes to whitespace, import order and Javadoc paragraph styling).
>> 
>> [1] https://github.com/apache/flink/pull/3567
>>> On 5. Apr 2017, at 23:54, Chesnay Schepler <ches...@apache.org> wrote:
>>> 
>>> I agree to just allow both. While I definitely prefer 1) i can see why 
>>> someone might prefer 2).
>>> 
>>> Wouldn't want to delay this anymore; can't find to add this to 
>>> flink-metrics and flink-python...
>>> 
>>> On 03.04.2017 18:33, Aljoscha Krettek wrote:
>>>> I think enough people did already look at the checkstyle rules proposed in 
>>>> the PR.
>>>> 
>>>> On most of the rules reaching consensus is easy so I propose to enable all 
>>>> rules except those regarding placement of curly braces and control flow 
>>>> formatting. The two styles in the Flink code base are:
>>>> 
>>>> 1)
>>>> if () {
>>>> } else {
>>>> }
>>>> 
>>>> try {
>>>> } catch () {
>>>> }
>>>> 
>>>> and
>>>> 
>>>> 2)
>>>> 
>>>> if () {
>>>> }
>>>> else {
>>>> }
>>>> 
>>>> try {
>>>> }
>>>> catch () {
>>>> }
>>>> 
>>>> I think it’s hard to reach consensus on these so I suggest to keep 
>>>> allowing both styles.
>>>> 
>>>> Any comments very welcome! :-)
>>>> 
>>>> Best,
>>>> Aljoscha
>>>>> On 19. Mar 2017, at 17:09, Aljoscha Krettek <aljos...@apache.org> wrote:
>>>>> 
>>>>> I played around with this over the week end and it turns out that the 
>>>>> required changes in flink-streaming-java are not that big. I created a PR 
>>>>> with a proposed checkstyle.xml and the required code changes: 
>>>>> https://github.com/apache/flink/pull/3567 
>>>>> <https://github.com/apache/flink/pull/3567>. There’s a longer description 
>>>>> of the style in the PR. The commits add continuously more invasive 
>>>>> changes so we can start with the more lightweight changes if we want to.
>>>>> 
>>>>> If we want to go forward with this I would also encourage other people to 
>>>>> use this for different modules and see how it turns out.
>>>>> 
>>>>> Best,
>>>>> Aljoscha
>>>>> 
>>>>>> On 18 Mar 2017, at 08:00, Aljoscha Krettek <aljos...@apache.org 
>>>>>> <mailto:aljos...@apache.org>> wrote:
>>>>>> 
>>>>>> I added an issue for adding a custom checkstyle.xml for 
>>>>>> flink-streaming-java so that we can gradually add checks: 
>>>>>> https://issues.apache.org/jira/browse/FLINK-6107 
>>>>>> <https://issues.apache.org/jira/browse/FLINK-6107>. I outlined the 
>>>>>> procedure in the Jira. We can use this as a pilot project and see how it 
>>>>>> goes and then gradually also apply to other modules.
>>>>>> 
>>>>>> What do you think?
>>>>>> 
>>>>>>> On 6 Mar 2017, at 12:42, Stephan Ewen <se...@apache.org 
>>>>>>> <mailto:se...@apache.org>> wrote:
>>>>>>> 
>>>>>>> A singular "all reformat in one instant" will cause immense damage to 
>>>>>>> the
>>>>>>> project, in my opinion.
>>>>>>> 
>>>>>>> - There are so many pull requests that we are having a hard time keeping
>>>>>>> up, and merging will a lot more time intensive.
>>>>>>> - I personally have many forked branches with WIP features that will
>>>>>>> probably never go in if the branches become unmergeable. I expect that 
>>>>>>> to
>>>>>>> be true for many other committers and contributors.
>>>>>>> - Some companies have Flink forks and are rebasing patches onto master
>>>>>>> regularly. They will be completely screwed by a full reformat.
>>>>>>> 
>>>>>>> If we do something, the only thing that really is possible is:
>>>>>>> 
>>>>>>> (1) Define a style. Ideally not too far away from Flink's style.
>>>>>>> (2) Apply it to new projects/modules
>>>>>>> (3) Coordinate carefully to pull it into existing modules, module by
>>>>>>> module. Leaving time to adopt pull requests bit by bit, and allowing 
>>>>>>> forks
>>>>>>> to go through minor merges, rather than total conflict.
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> On Wed, Mar 1, 2017 at 5:57 PM, Henry Saputra <henry.sapu...@gmail.com 
>>>>>>> <mailto:henry.sapu...@gmail.com>>
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> It is actually Databricks Scala guide to help contributions to Apache 
>>>>>>>> Spark
>>>>>>>> so not really official Spark Scala guide.
>>>>>>>> The style guide feels bit more like asking people to write Scala in 
>>>>>>>> Java
>>>>>>>> mode so I am -1 to follow the style for Apache Flink Scala if that 
>>>>>>>> what you
>>>>>>>> are recommending.
>>>>>>>> 
>>>>>>>> If the "unification" means ONE style guide for both Java and Scala I 
>>>>>>>> would
>>>>>>>> vote -1 to it because both languages have different semantics and 
>>>>>>>> styles to
>>>>>>>> make them readable and understandable.
>>>>>>>> 
>>>>>>>> We could start with improving the Scala maven style guide to follow 
>>>>>>>> more
>>>>>>>> Scala official style guide [1] and add IntelliJ Idea or Eclipse plugin
>>>>>>>> style to follow suit.
>>>>>>>> 
>>>>>>>> Java side has bit more strict style check but we could make it tighter 
>>>>>>>> but
>>>>>>>> embracing more Google Java guide closely with minor exceptions
>>>>>>>> 
>>>>>>>> - Henry
>>>>>>>> 
>>>>>>>> [1] http://docs.scala-lang.org/style/ 
>>>>>>>> <http://docs.scala-lang.org/style/>
>>>>>>>> 
>>>>>>>> On Mon, Feb 27, 2017 at 11:54 AM, Stavros Kontopoulos <
>>>>>>>> st.kontopou...@gmail.com <mailto:st.kontopou...@gmail.com>> wrote:
>>>>>>>> 
>>>>>>>>> +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 
>>>>>>>>> <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 
>>>>>>>>> <mailto: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 <mailto: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 
>>>>>>>>>>> <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 
>>>>>>>>>>> <mailto: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 
>>>>>>>>>>>> <mailto: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 <mailto: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 <mailto: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 <mailto: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 
>>>>>>>>>>>>>>>> <mailto:u...@apache.org>>:
>>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>>>> On Fri, Feb 24, 2017 at 10:46 AM, Fabian Hueske <
>>>>>>>>>>>> fhue...@gmail.com <mailto: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