Hello Ray,

I saw on the original PR Jason (cc'ed) expressed a concern comparing
scalafmt with scalastyle: the latter will throw exceptions in the build
process to notify developers while the former will automatically reformat
the code that developers may not be aware of. So I think maybe Jason can
elaborate a bit more of your thoughts on this regard.

Personally I like this idea (scalafmt). As for cherry-picking burdens,
there may be always some unavoidable, and I think B4 seems less invasive
and hence preferable.


Guozhang




On Mon, Jul 30, 2018 at 1:20 PM, Ray Chiang <rchi...@apache.org> wrote:

> I had started on KAFKA-2423 (was Scalastyle, now Expand scalafmt to
> core).  As part of the cleanup, applying the "gradlew spotlessApply"
> command ended up affecting too many (435 out of 439) files.  Since this
> will affect every file, this sort of change does risk polluting the git
> logs.
>
> So, I'd like to get a discussion going to find some agreement on an
> approach.  Right now, I see two categories of options:
>
> A) Getting scalafmt working on the existing code
> B) Getting all the code conforming to scalafmt requirements
>
> For the first, I see a couple of approaches:
>
> A1) Do the minimum change that allows scalafmt to run on all the .scala
> files
> A2) Make the change so that scalafmt runs as-is (only on the streams code)
> and add a different task/options that allow running scalafmt on a subset of
> code.  (Reasons explained below)
>
> For the second, I can think of the following options:
>
> B1) Do one giant git commit of all cleaned code (no one seemed to like
> this)
> B2) Do git commits one file at a time (trunk or as a branch)
> B3) Do git commits one leaf subdirectory at a time (trunk or as a branch)
> B4) With each pull request on all patches, run option A2) on the affected
> files
>
> From what I can envision, options B2 and B3 require quite a bit of manual
> work if we want to cover multiple releases.  The "cleanest" option I can
> think of looks something like:
>
> C1) Contributor makes code modifications for their JIRA
> C2) Contributor runs option A2 to also apply scalafmt to their existing
> code
> C3) Committer does the regular review process
>
> At some point in the future, enough cleanup could be done that the final
> cleanup can be done as a much smaller set of MINOR commits.
>
> -Ray
>
>


-- 
-- Guozhang

Reply via email to