I prefer imports to be organized in groups with the groups themselves ordered by decreasing order of "scope" where I consider java to have the widest scope and com.datatorrent the narrowest (roughly the way we have it now) with a single blank line separating groups. When "scope" is not clear we can default to lexicographic. I think this helps readability.
No major project does completely lexicographic ordering as far as I know. As a couple of data points : both Hadoop and Flink are doing roughly what I propose though they are not always consistent. Here are some examples: https://github.com/apache/flink/blob/master/flink-core/src/main/java/org/apache/flink/core/fs/FSDataOutputStream.java -- java imports come after org.apache https://github.com/apache/flink/blob/master/flink-core/src/main/java/org/apache/flink/core/fs/FileSystem.java -- java imports come before org.apache https://github.com/apache/flink/blob/master/flink-core/src/main/java/org/apache/flink/core/fs/local/LocalFileSystem.java -- org imports not alphabetic hadoop-2.7.2-src/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/service: AbstractService.java -- import groups not lexicographic: java comes before org but com comes after. Service.java -- java comes after org Ram On Wed, Apr 6, 2016 at 12:24 PM, David Yan <[email protected]> wrote: > I think the import order should be alphabetical or lexicographical, and no > blank lines are needed. > > The reason is this: > > 1) It's simple and future proof, and there will be no need to have this > discussion again in the future about what order it should be and where the > blank lines should be placed > 2) It's easy to follow, and there is no rule to remember other than it's > alphabetical > 3) It's easy to find where a particular import lines are because it's > alphabetical > > Whatever we come up with, we should make the change ASAP and fix all the > style violations once and for all. > > David > > > On Tue, Apr 5, 2016 at 5:12 PM, Chandni Singh <[email protected]> > wrote: > > > Hi, > > > > We need to include org.apache.apex in the import order that we have right > > now: > > > > *Current order:* > > java > > javax > > org > > org.apache > > io > > com > > com.datatorrent > > * > > all static imports > > > > *Proposed order:* > > java > > javax > > org > > org.apache > > io > > com > > com.datatorrent > > org.apache.apex > > * > > all static imports > > > > Thanks, > > Chandni > > >
