It is the right direction to remove the trivial part of the coding. Just wondering why we change the max line length from 120 to 100.
Best, Yufei `This is not a contribution` On Fri, Jul 29, 2022 at 9:21 AM Austin Bennett <whatwouldausti...@gmail.com> wrote: > Probably worthwhile to really think about the long-term desired outcomes. > Even a large, one-time, disruption of the codebase for the sake of future > consistency could be quite valuable. Remember you'll also lose fidelity > with history/blame. At some point a 'breaking' ( in a different sense ) > change might be useful rather than anchoring on what exists. > > > > On Fri, Jul 29, 2022 at 8:59 AM Anton Okolnychyi > <aokolnyc...@apple.com.invalid> wrote: > >> On a side note, having automatic formatting was really nice. I think it >> is the right direction. If we only had a way to tweak a few rules like the >> max line length, one-line Javadoc and maybe consider using the Google >> format for 1.8 cause we are using the 1.7 format at the moment, which was >> not designed for lambdas. That way we may have all the benefits of >> automatic formatting with less disruption to the code. >> >> - Anton >> >> On Jul 28, 2022, at 7:35 PM, Anton Okolnychyi < >> aokolnyc...@apple.com.INVALID> wrote: >> >> I had a chance to rebase one of my PRs. It is really hard to justify the >> new max line length of 100 chars. I think the most unreadable code is >> usually around places when single statements are split into multiple lines. >> Since Java has explicit types and we prefer full and elaborate class/var >> names, the new line limit alone triggered so many changes and requires >> splitting a lot of statements that would previously fit on a single line. >> >> The max line length is one of the reasons why Palantir folks forked the >> Google format. >> >> https://github.com/palantir/palantir-java-format >> >> - Anton >> >> >> On Jul 28, 2022, at 7:42 AM, Eduard Tudenhoefner <edu...@tabular.io> >> wrote: >> >> Thanks for your honest feedback Anton, which I really appreciate. I agree >> with the points you brought up. >> >> I don't prefer the Google Java Format either, but it is at least >> something that produces consistent results across tools. >> If you ask me, I would love to customize the code format and have it as >> close as possible to what the Iceberg project had. But one of the reasons >> why the format isn't customizable is because it is difficult to support >> such customizations across tools. >> >> The problem with code format is that there is no single format that can >> satisfy the preferences of everybody. However, from my experience, once >> people start to use *any* code format that produces consistent results >> across *Eclipse/IntelliJ/cmd line*, people stop worrying about code >> format details. >> >> This is also one of the reasons why the creators of Go decided to have a >> code formatter built-in (https://go.dev/doc/effective_go#formatting). >> >> In the long run I think the decision to use Spotless + code formatting >> helps, especially for new people that want to contribute and don't want to >> feel frustrated due to review feedback around code style. >> >> Eduard >> >> On Thu, Jul 28, 2022 at 6:15 AM Anton Okolnychyi <aokolnyc...@apple.com> >> wrote: >> >>> I am late to the discussion, but I would like to express my opinion. >>> >>> As someone who deeply cares about the code consistency and leaves a lot >>> of style-related nits, I am definitely happy to see efforts to simplify the >>> life of the reviewers and automate the formatting process. Explaining the >>> code style to new contributors consumes a lot of time and results in more >>> iterations on PRs. Automating this would be great! >>> >>> However, I am concerned regarding the changes merged in PR #5312. >>> >>> - Many changes that went in that PR were against the original code style >>> of the project that we, committers and contributors, tried to maintain for >>> all these years. I think we had a lot of well-structured and consistent >>> places, which attracted devs to Iceberg. >>> - I feel the code quality dropped as some places were written in the old >>> style and now look really weird. If we followed the new style originally, >>> maybe, it would look much better as we would structure the code differently. >>> - As a someone whose team maintains an internal fork that is very close >>> to master (I know we are not the only ones), I feel such a massive change >>> will be a challenge to cherry-pick. I am not convinced introducing >>> automatic formatting had to be so radical. >>> >>> The first two points concern me the most. Since I am late to the >>> discussion, it would not be fair for me to request changes. However, I >>> strongly suggest the community to reconsider the approach we took while we >>> haven’t merged many changes on top of PR #5312. >>> >>> To sum up, I definitely support automating the formatting to simplify >>> reviews and help new contributors but I would try to come with a way to >>> make it less radical and follow whatever we had all these years. We did >>> discuss some of the formatting guidelines a few years ago and it is all >>> different now. >>> >>> - Anton >>> >>> On Jul 27, 2022, at 11:40 AM, Steven Wu <stevenz...@gmail.com> wrote: >>> >>> Eduard, thank you for driving this effort! Great work! >>> >>> On Wed, Jul 27, 2022 at 11:11 AM Eduard Tudenhoefner <edu...@tabular.io> >>> wrote: >>> >>>> Hey everyone, >>>> >>>> Google Java Format + Spotless integration have been merged as part of >>>> https://github.com/apache/iceberg/pull/5266. >>>> >>>> The big bang reformatting (aka *spotlessApply*) will happen as part of >>>> https://github.com/apache/iceberg/pull/5312 and once this PR is >>>> merged, please perform the following steps if you have open PRs: >>>> >>>> 1. Rebase your PR branch against the commit before the „Big Bang“ >>>> 2. Run `*./gradlew spotlessApply*` >>>> 3. Squash all commits >>>> 4. Rebase against the latest *HEAD* of the master branch >>>> 5. Force-push your branch >>>> >>>> This should hopefully produce a minimum of conflicts on PRs. >>>> >>>> Additionally, make sure to install the *google-java-format* plugin for >>>> your IDE as outlined in https://github.com/apache/iceberg-docs/pull/125 >>>> so that you can format code inside the IDE as well. >>>> >>>> Eduard >>>> >>>> On Fri, Jul 15, 2022 at 12:45 PM Eduard Tudenhoefner <edu...@tabular.io> >>>> wrote: >>>> >>>>> That's correct Ryan. The Google style is what can be applied across >>>>> tools and Spotless is the tool that we use to check and *apply* that >>>>> style (and also auto-apply the license header). The *apply* part is >>>>> the important piece that Checkstyle for example is missing (as it's >>>>> tedious >>>>> to manually apply what *checkstyle:check* complains about). >>>>> >>>>> Additionally, Spotless >>>>> <https://github.com/diffplug/spotless/tree/main/plugin-gradle> supports >>>>> a bunch of other languages, so it would even be possible to use it for >>>>> auto-formatting Gradle files (or Scala files using scalafmt) if we wanted >>>>> to, but for now I would probably focus on the Java codebase. >>>>> >>>>> Eduard >>>>> >>>>> On Thu, Jul 14, 2022 at 6:58 PM Ryan Blue <b...@tabular.io> wrote: >>>>> >>>>>> Okay, I understand. So it isn't that spotless is supported across >>>>>> tools, it is that google style is supported and we can use Spotless to >>>>>> both >>>>>> check and apply that style. Is that correct? >>>>>> >>>>>> On Thu, Jul 14, 2022 at 9:56 AM Eduard Tudenhoefner < >>>>>> edu...@tabular.io> wrote: >>>>>> >>>>>>> Yeah it's how Dmitri said, the Google style is most likely on >>>>>>> purpose not configurable, because otherwise it's getting more difficult >>>>>>> to >>>>>>> achieve the same formatting results across IDEs & CMD line. >>>>>>> >>>>>>> >>>>>>> On Wed, Jul 13, 2022 at 7:39 PM Dmitri Bourlatchkov < >>>>>>> dmitri.bourlatch...@dremio.com> wrote: >>>>>>> >>>>>>>> Yeah, the Google style has very specific wrapping limits and >>>>>>>> javadoc format. It is not configurable, if we go with it. >>>>>>>> >>>>>>>> From my POV, using another style would be fine. However, with a >>>>>>>> custom style it can be hard and tricky to ensure that all IDEs enforce >>>>>>>> it >>>>>>>> the same way as spotless. >>>>>>>> >>>>>>>> The Google style has a plugin at least for IntelliJ (and likely for >>>>>>>> Eclipse too) so it will behave the same way in IDE and cmd. line build. >>>>>>>> >>>>>>>> On Wed, Jul 13, 2022 at 1:28 PM Ryan Blue <b...@tabular.io> wrote: >>>>>>>> >>>>>>>>> Is there any value in trying to get Spotless to match the current >>>>>>>>> format as closely as possible? It would be great to have fewer >>>>>>>>> changes. >>>>>>>>> >>>>>>>>> For example, when I tested the apply, I see this: >>>>>>>>> >>>>>>>>> - /** >>>>>>>>> - * Returns an initialized {@link AliyunProperties} >>>>>>>>> - */ >>>>>>>>> + /** Returns an initialized {@link AliyunProperties} */ >>>>>>>>> >>>>>>>>> Changes like that don’t seem very valuable to me. Similarly, it >>>>>>>>> looks like a lot of text is wrapped at a different line length. If we >>>>>>>>> can >>>>>>>>> alter that, we could easily avoid a lot of changes. >>>>>>>>> >>>>>>>>> Ryan >>>>>>>>> >>>>>>>>> On Wed, Jul 13, 2022 at 7:41 AM Eduard Tudenhoefner < >>>>>>>>> edu...@tabular.io> wrote: >>>>>>>>> >>>>>>>>>> As a first step, I created >>>>>>>>>> https://github.com/apache/iceberg/pull/5266 which configures >>>>>>>>>> Spotless to use the Google Java Format and also apply the correct >>>>>>>>>> copyright >>>>>>>>>> header for Java files. >>>>>>>>>> >>>>>>>>>> Once this PR is merged, the next steps would be: >>>>>>>>>> >>>>>>>>>> - removing conflicting Checkstyle rules that are not in line >>>>>>>>>> with the Google format >>>>>>>>>> - formatting the entire code base via `*./gradlew >>>>>>>>>> spotlessApply*` >>>>>>>>>> - setting `*enforceCheck*` to `*true*` in >>>>>>>>>> >>>>>>>>>> https://github.com/apache/iceberg/blob/80318d8cfbeb0d96d0afc27c84bc3dbddde35344/baseline.gradle#L48 >>>>>>>>>> so that validation fails if code isn't properly formatted >>>>>>>>>> - updating docs around the current Formatter usage and how to >>>>>>>>>> configure Eclipse/IntelliJ >>>>>>>>>> >>>>>>>>>> The first 3 steps should be done together as part of the big bang. >>>>>>>>>> >>>>>>>>>> Eduard >>>>>>>>>> >>>>>>>>>> On Mon, Jul 11, 2022 at 10:54 PM Ryan Blue <b...@apache.org> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Okay, it sounds like there's mostly agreement for going with >>>>>>>>>>> spotless. Let's try that out. We'll work on some changes to add >>>>>>>>>>> spotless so >>>>>>>>>>> that `spotlessApply` works. Then we can do the big bang migration >>>>>>>>>>> (which I >>>>>>>>>>> also agree is the best option) just before the 1.0. >>>>>>>>>>> >>>>>>>>>>> Thanks, everyone! >>>>>>>>>>> >>>>>>>>>>> On Mon, Jul 11, 2022 at 11:50 AM Dmitri Bourlatchkov < >>>>>>>>>>> dmitri.bourlatch...@dremio.com> wrote: >>>>>>>>>>> >>>>>>>>>>>> My experience with the Google Code Style + Spotless was >>>>>>>>>>>> positive too. >>>>>>>>>>>> >>>>>>>>>>>> I'd be fine with another code style as long as it is >>>>>>>>>>>> "deterministic" (e.g. does not make changes on repeated execution) >>>>>>>>>>>> and >>>>>>>>>>>> works in IntelliJ IDEA / Eclipse / etc. >>>>>>>>>>>> >>>>>>>>>>>> Regarding cherry-picking into older branches, I think Robert's >>>>>>>>>>>> suggestion can be tweaked slightly to be helpful there too: >>>>>>>>>>>> >>>>>>>>>>>> 1. Checkout old branch >>>>>>>>>>>> 2. Apply the new style (run gradle ...) >>>>>>>>>>>> 3. Cherry-pick without committing >>>>>>>>>>>> 4. Manually revert to old style >>>>>>>>>>>> 5. Commit >>>>>>>>>>>> 6. Reset to original branch HEAD >>>>>>>>>>>> 7. Cherry pick commit 5 again >>>>>>>>>>>> >>>>>>>>>>>> It's a bit lengthy and may be a tedious process, but it should >>>>>>>>>>>> allow applying the git-level changes mostly automatically. >>>>>>>>>>>> >>>>>>>>>>>> Cheers, >>>>>>>>>>>> Dmitri. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On Fri, Jul 8, 2022 at 2:53 AM Robert Stupp <sn...@snazy.de> >>>>>>>>>>>> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> From my experience, it’s a big win to have automatic code >>>>>>>>>>>>> formatting. >>>>>>>>>>>>> >>>>>>>>>>>>> In projectnessie we use automatic code formatting for all >>>>>>>>>>>>> languages and haven’t serious issues with Spotless. It is just >>>>>>>>>>>>> nice to not >>>>>>>>>>>>> have to bike shed about whitespaces, line breaks, brackets, etc. >>>>>>>>>>>>> It was a >>>>>>>>>>>>> bit of discussion, because people had bad memories from past >>>>>>>>>>>>> experiences >>>>>>>>>>>>> with automatic code formatting breaking code and introducing >>>>>>>>>>>>> subtle bugs. >>>>>>>>>>>>> >>>>>>>>>>>>> I think that using code styles that „do not allow bike >>>>>>>>>>>>> shedding“ (Google Code Style) are a very good option. >>>>>>>>>>>>> >>>>>>>>>>>>> So far none of us has seen issues with any of the Spotless >>>>>>>>>>>>> code formatters that we use: XML, Kotlin/Gradle, Kotlin, Antlr4, >>>>>>>>>>>>> Java, >>>>>>>>>>>>> Scala - relying on the „standard“ settings w/o any >>>>>>>>>>>>> customizations. We use >>>>>>>>>>>>> this piece of code, externalized into an internal Gradle plugin: >>>>>>>>>>>>> https://github.com/projectnessie/gradle-build-plugins/blob/main/spotless/src/main/kotlin/org/projectnessie/buildtools/spotless/SpotlessHelperPlugin.kt >>>>>>>>>>>>> For >>>>>>>>>>>>> Iceberg, it would probably be nice to have some Groovy code >>>>>>>>>>>>> formatting for >>>>>>>>>>>>> the build scripts as well. >>>>>>>>>>>>> >>>>>>>>>>>>> Sure, the migration will add some pain. IMHO the best option >>>>>>>>>>>>> is a „big bang“ across the whole code base, because it happens >>>>>>>>>>>>> only once. >>>>>>>>>>>>> Migrating one module after another is a „repeated series of >>>>>>>>>>>>> pains“. >>>>>>>>>>>>> >>>>>>>>>>>>> Since the result of a `./gradlew spotlessApply` is >>>>>>>>>>>>> deterministic, people that have open PRs could: >>>>>>>>>>>>> 1. Rebase their PR branch against the commit before the „Big >>>>>>>>>>>>> Bang“ >>>>>>>>>>>>> 2. Include a commit with the necessary Gradle build change >>>>>>>>>>>>> (one the only contains the changes to add Spotless) >>>>>>>>>>>>> 3. Do the `./gradlew spotlessApply` >>>>>>>>>>>>> 4. Squash all commits in the PR-branch >>>>>>>>>>>>> 5. Rebase again - against the HEAD of the master branch >>>>>>>>>>>>> 6. Force-push PR-branch >>>>>>>>>>>>> Because git is „clever enough“ to eliminate the >>>>>>>>>>>>> „duplicated/unrelated changes“, the final result of the above >>>>>>>>>>>>> steps is just >>>>>>>>>>>>> the diff with the changes for the open PR. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> Am 08.07.2022 um 00:59 schrieb Ryan Blue <b...@tabular.io>: >>>>>>>>>>>>> >>>>>>>>>>>>> We were just talking about this proposal internally. I think >>>>>>>>>>>>> it would be great to have automatic code formatting, especially >>>>>>>>>>>>> since we >>>>>>>>>>>>> have to point out a lot of changes manually. The main question is >>>>>>>>>>>>> how to >>>>>>>>>>>>> get there without too much disruption. This came up in our >>>>>>>>>>>>> discussions >>>>>>>>>>>>> around the upcoming 1.0 release, since that may be a good >>>>>>>>>>>>> opportunity to >>>>>>>>>>>>> make all of the code changes. >>>>>>>>>>>>> >>>>>>>>>>>>> For background, the main concern about adding something like >>>>>>>>>>>>> this is applying all of the changes needed to get the existing >>>>>>>>>>>>> code to >>>>>>>>>>>>> conform to the new style. That is really disruptive because it >>>>>>>>>>>>> will cause >>>>>>>>>>>>> all of the PRs to need to be rebased and makes it really >>>>>>>>>>>>> difficult to >>>>>>>>>>>>> cherry-pick changes from after the code formatting happens to >>>>>>>>>>>>> branches that >>>>>>>>>>>>> were created before code formatting. The 1.0 release makes a good >>>>>>>>>>>>> opportunity because we are making other changes (removing >>>>>>>>>>>>> deprecations) and >>>>>>>>>>>>> will hopefully have people upgrading their branches to the new >>>>>>>>>>>>> major >>>>>>>>>>>>> version, rather than cherry picking. >>>>>>>>>>>>> >>>>>>>>>>>>> This is as good a time as any to add automatic code >>>>>>>>>>>>> formatting, but it's up to the community: so should we refromat >>>>>>>>>>>>> the project >>>>>>>>>>>>> and apply spotless code formatting everywhere? I'm interested to >>>>>>>>>>>>> hear >>>>>>>>>>>>> opinions! >>>>>>>>>>>>> >>>>>>>>>>>>> Ryan >>>>>>>>>>>>> >>>>>>>>>>>>> On Thu, Mar 10, 2022 at 3:00 AM Eduard Tudenhoefner < >>>>>>>>>>>>> edu...@dremio.com> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hello everyone, >>>>>>>>>>>>>> >>>>>>>>>>>>>> I would like to get the discussion started around automatic >>>>>>>>>>>>>> code formatting + enforcing and how we get there. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Currently we use Checkstyle *check* to enforce formatting. >>>>>>>>>>>>>> However, the problem with that is that you still have to >>>>>>>>>>>>>> manually do the >>>>>>>>>>>>>> actual formatting. >>>>>>>>>>>>>> >>>>>>>>>>>>>> What I would like to propose is the usage of *Spotless* ( >>>>>>>>>>>>>> https://github.com/diffplug/spotless) for *checking* and >>>>>>>>>>>>>> *enforcing* Java code style (it can also enforce code style >>>>>>>>>>>>>> for Scala, Markdown, ... btw). Spotless is being used by many >>>>>>>>>>>>>> projects ( >>>>>>>>>>>>>> https://github.com/search?l=gradle&q=spotless&type=Code) and >>>>>>>>>>>>>> comes essentially with two tasks: >>>>>>>>>>>>>> * *spotlessCheck*: Checks that sourcecode satisfies >>>>>>>>>>>>>> formatting steps >>>>>>>>>>>>>> * *spotlessApply*: Applies code formatting steps to >>>>>>>>>>>>>> sourcecode in-place >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> *Code format* >>>>>>>>>>>>>> >>>>>>>>>>>>>> The problem with code format is that there is no single >>>>>>>>>>>>>> format that can satisfy the preferences of everybody. However, >>>>>>>>>>>>>> from my >>>>>>>>>>>>>> experience, once people start to use *any* code format that >>>>>>>>>>>>>> produces consistent results across *Eclipse**/IntelliJ/cmd >>>>>>>>>>>>>> line*, people stop worrying about code format details. >>>>>>>>>>>>>> This is also one of the reasons why the creators of Go >>>>>>>>>>>>>> decided to have a code formatter built-in ( >>>>>>>>>>>>>> https://go.dev/doc/effective_go#formatting): >>>>>>>>>>>>>> >>>>>>>>>>>>>> *Formatting issues are the most contentious but the least >>>>>>>>>>>>>>> consequential. People can adapt to different formatting styles >>>>>>>>>>>>>>> but it's >>>>>>>>>>>>>>> better if they don't have to, and less time is devoted to the >>>>>>>>>>>>>>> topic if >>>>>>>>>>>>>>> everyone adheres to the same style. The problem is how to >>>>>>>>>>>>>>> approach this >>>>>>>>>>>>>>> Utopia without a long prescriptive style guide.* >>>>>>>>>>>>>>> *With Go we take an unusual approach and let the machine >>>>>>>>>>>>>>> take care of most formatting issues. The gofmt program (also >>>>>>>>>>>>>>> available as >>>>>>>>>>>>>>> go fmt, which operates at the package level rather than source >>>>>>>>>>>>>>> file level) >>>>>>>>>>>>>>> reads a Go program and emits the source in a standard style of >>>>>>>>>>>>>>> indentation >>>>>>>>>>>>>>> and vertical alignment, retaining and if necessary reformatting >>>>>>>>>>>>>>> comments.* >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> I would like to propose using the Google Java Format with >>>>>>>>>>>>>> Spotless. The reason for this format is essentially that this is >>>>>>>>>>>>>> a >>>>>>>>>>>>>> widely-adopted code format that is designed specifically for >>>>>>>>>>>>>> code reviews >>>>>>>>>>>>>> (since we're spending more time reviewing code than writing it). >>>>>>>>>>>>>> Additionally, it produces consistent formatting results >>>>>>>>>>>>>> across *Eclipse**/IntelliJ/cmd line*, which I think is >>>>>>>>>>>>>> another very important factor. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Thus, our initial Gradle spotless configuration could look >>>>>>>>>>>>>> similar to the above below: >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> *pluginManager.withPlugin('com.diffplug.spotless') { >>>>>>>>>>>>>> spotless { // don't run spotlessCheck during gradle check >>>>>>>>>>>>>> task during >>>>>>>>>>>>>> the transition phase enforceCheck = false java { >>>>>>>>>>>>>> target >>>>>>>>>>>>>> 'src/main/java/**/*.java', 'src/test/java/**/*.java', >>>>>>>>>>>>>> 'src/jmh/java/**/*.java' googleJavaFormat() } }}* >>>>>>>>>>>>>> >>>>>>>>>>>>>> We don't have to use Google Java Format. Spotless also >>>>>>>>>>>>>> supports formatting the code with other formats, but from >>>>>>>>>>>>>> previous >>>>>>>>>>>>>> experience the Google Java Format seemed to be really the only >>>>>>>>>>>>>> one to >>>>>>>>>>>>>> produce consistent results across *Eclipse**/IntelliJ/cmd >>>>>>>>>>>>>> line*. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> *How do we get to a point where the entire codebase is >>>>>>>>>>>>>> properly formatted (and enforceCheck = false can be removed)?* >>>>>>>>>>>>>> >>>>>>>>>>>>>> Now this is a difficult question. Obviously we don't want to >>>>>>>>>>>>>> have a single *format-everything* commit, as that would >>>>>>>>>>>>>> affect lots of in-flight PRs. >>>>>>>>>>>>>> >>>>>>>>>>>>>> There would have to be some form of gradual formatting, for >>>>>>>>>>>>>> example module by module. Spotless offers something called >>>>>>>>>>>>>> Ratched ( >>>>>>>>>>>>>> https://github.com/diffplug/spotless/tree/main/plugin-gradle#ratchet) >>>>>>>>>>>>>> that allows to enforce code format gradually (but I'm not sure >>>>>>>>>>>>>> this would >>>>>>>>>>>>>> be a good thing either). >>>>>>>>>>>>>> >>>>>>>>>>>>>> How exactly we'd like to approach this transitioning phase >>>>>>>>>>>>>> this is a completely separate discussion, but I feel like at >>>>>>>>>>>>>> least we could >>>>>>>>>>>>>> get the ball rolling so that we make it also easier for >>>>>>>>>>>>>> newcomers to >>>>>>>>>>>>>> contribute to the project, since it would be straightforward for >>>>>>>>>>>>>> them to >>>>>>>>>>>>>> make their PRs adhere to the code format and also save time >>>>>>>>>>>>>> during PR >>>>>>>>>>>>>> reviews. >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Eduard >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> -- >>>>>>>>>>>>> Ryan Blue >>>>>>>>>>>>> Tabular >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Ryan Blue >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Ryan Blue >>>>>>>>> Tabular >>>>>>>>> >>>>>>>> >>>>>> >>>>>> -- >>>>>> Ryan Blue >>>>>> Tabular >>>>>> >>>>> >>> >> >>