Hi Nikolay, Thanks, it is rather interesting.
Do we all agree that using different conventions for different code packages does not break "consistency"? Or did I get something wrong? 2021-06-17 7:12 GMT+03:00, Николай Ижиков <nizhi...@apache.org>: > Hello, Ivan. > > We can create checkstyle rule to enforce usage of abbreviations. > Internal/public code differs by package. > > PoC of rule [1] > > [1] https://github.com/apache/ignite/pull/9153 > >> 17 июня 2021 г., в 07:01, Ivan Pavlukhin <vololo...@gmail.com> >> написал(а): >> >> Nikita, >> >> Do you have a plan in your mind how to make Ignite codebase consistent? >> >> AFAIR, we had it intentionally inconsistent for a long time at least >> for one sake: for internal code we used special conventions (e.g. >> abbreviations, shorten getters) and common Java conventions for public >> API and examples (e.g. no abbreviations and usual getters). >> >> 2021-06-16 23:37 GMT+03:00, Nikita Ivanov <niva...@gridgain.com>: >>> Consistency is what makes it easier to contribute to the project and >>> attract new members. Consistency implies strong, well defined and >>> universally enforced rules. Just because we have some individuals who >>> are lazy or inexperienced - it does not mean that the entire project >>> should relax the basic-level engineering discipline. >>> >>> On a personal node - nothing screams "immaturity" louder that a code >>> that uses inconsistent naming, commenting, code style & organization, >>> etc. >>> -- >>> Nikita Ivanov >>> >>>> On Wed, Jun 16, 2021 at 5:56 AM Andrey Gura <ag...@apache.org> wrote: >>>> >>>> Hi, >>>> >>>> I understand that this rule seems too strict or may be weird. But >>>> removing the rule could lead to review comments like "use future >>>> instead of fut". So my proposal is to change rule from "required" to >>>> "recommended". >>>> >>>> On Wed, Jun 16, 2021 at 2:49 PM Valentin Kulichenko >>>> <valentin.kuliche...@gmail.com> wrote: >>>>> >>>>> Konstantin, thanks for chiming in. >>>>> >>>>> That's exactly my concern. Overformalization is generally not a good >>>>> thing. >>>>> Someone used "mess" to abbreviate "message"? That is surely not a good >>>>> coding style, but that's what code reviews are for. I believe that our >>>>> committers are more than capable of identifying such issues. >>>>> >>>>> At the same time, with the current rules, we are *forced* to use >>>>> abbreviations like "locAddrGrpMgr", whether we like it or not. All it >>>>> does >>>>> is makes it harder to contribute to Ignite, without providing any >>>>> clear >>>>> value. >>>>> >>>>> -Val >>>>> >>>>> On Thu, Jun 10, 2021 at 9:46 AM Konstantin Orlov <kor...@gridgain.com> >>>>> wrote: >>>>> >>>>>> +1 for making this optional >>>>>> >>>>>> Common abbreviation rules is good for sure, but sometimes I getting >>>>>> sick >>>>>> of all those locAddrGrpMgr. >>>>>> >>>>>> >>>>>> -- >>>>>> Regards, >>>>>> Konstantin Orlov >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>> On 7 Jun 2021, at 14:31, Nikolay Izhikov <nizhi...@apache.org> >>>>>>> wrote: >>>>>>> >>>>>>> Hello, Anton, Alexei. >>>>>>> >>>>>>> Thanks for the feedback. >>>>>>> >>>>>>> Personally, I’m pretty happy current abbreviation rules too. >>>>>>> Let see what we can do to make our codebase even more consistent. >>>>>>> >>>>>>>> 7 июня 2021 г., в 13:23, Alexei Scherbakov < >>>>>> alexey.scherbak...@gmail.com> написал(а): >>>>>>>> >>>>>>>> -1 >>>>>>>> Common abbrevs add quality to the code. >>>>>>>> >>>>>>>> пн, 7 июн. 2021 г. в 12:38, Anton Vinogradov <a...@apache.org>: >>>>>>>> >>>>>>>>> -1 here. >>>>>>>>> We can fix the code and set up the rule. >>>>>>>>> >>>>>>>>> This will help to prevent having a weird abbreviation like "mess" >>>>>>>>> (from >>>>>>>>> "message") or "ign" (from "Ignite"). >>>>>>>>> Also, the abbreviations list (hardcoded at IDEA plugin) allows to >>>>>>>>> have >>>>>> same >>>>>>>>> names across the whole code, this should simplify the reading. >>>>>>>>> >>>>>>>>> On Sat, Jun 5, 2021 at 10:49 PM Valentin Kulichenko < >>>>>>>>> valentin.kuliche...@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> I also support removing this requirement. It’s not the first >>>>>>>>>> time >>>>>> someone >>>>>>>>>> brings this up, and so far we haven’t been able to fix it. Not >>>>>>>>>> worth >>>>>> it >>>>>>>>> in >>>>>>>>>> my view. >>>>>>>>>> >>>>>>>>>> -Val >>>>>>>>>> >>>>>>>>>> On Sat, Jun 5, 2021 at 11:54 AM Nikolay Izhikov >>>>>>>>>> <nizhi...@apache.org> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> Hello, guys. >>>>>>>>>>> >>>>>>>>>>> Thanks for the feedback. >>>>>>>>>>> >>>>>>>>>>> Dmitry, >>>>>>>>>>> >>>>>>>>>>>> Manual rule enforcement saves a couple of symbols in code >>>>>>>>>>> >>>>>>>>>>> I’m talking about automatic check. >>>>>>>>>>> We can implement it easily. >>>>>>>>>>> So, if we decide to keep this rule all we need is to fix >>>>>>>>>>> current >>>>>>>>>>> violations (several thousand!). >>>>>>>>>>> After it, checkstyle will automatically enforce this rule. >>>>>>>>>>> As you may know, currently, any PR checked according to our >>>>>> checkstyle >>>>>>>>>>> rules. >>>>>>>>>>> Please, take a look at little green check sign after PR name. >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>>> 5 июня 2021 г., в 00:57, Dmitry Pavlov <dpav...@apache.org> >>>>>>>>>> написал(а): >>>>>>>>>>>> >>>>>>>>>>>> +1 for removal. Cnt and count both seem to be fine. >>>>>>>>>>>> >>>>>>>>>>>> Manual rule enforcement saves a couple of symbols in code, but >>>>>>>>> requires >>>>>>>>>>> some time from both contributor and reviewer. >>>>>>>>>>>> >>>>>>>>>>>> Sincerely, >>>>>>>>>>>> Dmitriy Pavlov >>>>>>>>>>>> >>>>>>>>>>>> On 2021/06/04 19:18:37, Pavel Tupitsyn <ptupit...@apache.org> >>>>>> wrote: >>>>>>>>>>>>> In my opinion, we should remove this rule. >>>>>>>>>>>>> Looks like a waste of time. freq or frequency, cnt or count, >>>>>>>>>>>>> it is >>>>>>>>>> fine >>>>>>>>>>>>> either way. >>>>>>>>>>>>> >>>>>>>>>>>>> On Fri, Jun 4, 2021 at 7:39 PM Nikolay Izhikov < >>>>>> nizhi...@apache.org >>>>>>>>>> >>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Hello, Igniters. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Right now, we have the rule to use some predefined list of >>>>>>>>>> abbrevation >>>>>>>>>>> for >>>>>>>>>>>>>> variable names [1]. >>>>>>>>>>>>>> Some of the reviewers ask to follow this rule strictly. >>>>>>>>>>>>>> >>>>>>>>>>>>>>> It is required to use abbreviated form for code >>>>>>>>>>>>>>> consistency. >>>>>>>>>>>>>> >>>>>>>>>>>>>> I tried to implement this rule in form of checkstyle check >>>>>>>>>>>>>> [2] and >>>>>>>>> it >>>>>>>>>>>>>> seems like many of use doesn’t follow this requirement. >>>>>>>>>>>>>> My check found 4124 violation in core module. >>>>>>>>>>>>>> >>>>>>>>>>>>>> Should we make this rule optional in documentation or should >>>>>>>>>>>>>> we >>>>>>>>>> remove >>>>>>>>>>> it >>>>>>>>>>>>>> completely? >>>>>>>>>>>>>> Or should someone proceed and fix all the violations? >>>>>>>>>>>>>> >>>>>>>>>>>>>> WDYT? >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> Example of output: >>>>>>>>>>>>>> ``` >>>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWithTtlTest.java:94: >>>>>>>>>>>>>> Abbrevation should be used for CACHE_NAME_LOCAL_ATOMIC! >>>>>>>>>>>>>> Please, >>>>>> use >>>>>>>>>>> loc, >>>>>>>>>>>>>> instead of LOCAL [IgniteAbbrevationsRule] >>>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWithTtlTest.java:97: >>>>>>>>>>>>>> Abbrevation should be used for CACHE_NAME_LOCAL_TX! Please, >>>>>>>>>>>>>> use >>>>>>>>> loc, >>>>>>>>>>>>>> instead of LOCAL [IgniteAbbrevationsRule] >>>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWithTtlTest.java:264: >>>>>>>>>>>>>> Abbrevation should be used for checkpointManager! Please, use >>>>>>>>>>>>>> mgr, >>>>>>>>>>> instead >>>>>>>>>>>>>> of Manager [IgniteAbbrevationsRule] >>>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsPartitionPreloadTest.java:63: >>>>>>>>>>>>>> Abbrevation should be used for DEFAULT_REGION! Please, use >>>>>>>>>>>>>> dflt, >>>>>>>>>>> instead of >>>>>>>>>>>>>> DEFAULT [IgniteAbbrevationsRule] >>>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsWholeClusterRestartTest.java:47: >>>>>>>>>>>>>> Abbrevation should be used for ENTRIES_COUNT! Please, use >>>>>>>>>>>>>> cnt, >>>>>>>>>> instead >>>>>>>>>>> of >>>>>>>>>>>>>> COUNT [IgniteAbbrevationsRule] >>>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsRebalancingOnNotStableTopologyTest.java:49: >>>>>>>>>>>>>> Abbrevation should be used for CHECKPOINT_FREQUENCY! Please, >>>>>>>>>>>>>> use >>>>>>>>>> freq, >>>>>>>>>>>>>> instead of FREQUENCY [IgniteAbbrevationsRule] >>>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsTransactionsHangTest.java:75: >>>>>>>>>>>>>> Abbrevation should be used for MAX_KEY_COUNT! Please, use >>>>>>>>>>>>>> cnt, >>>>>>>>>> instead >>>>>>>>>>> of >>>>>>>>>>>>>> COUNT [IgniteAbbrevationsRule] >>>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgnitePdsTransactionsHangTest.java:78: >>>>>>>>>>>>>> Abbrevation should be used for CHECKPOINT_FREQUENCY! Please, >>>>>>>>>>>>>> use >>>>>>>>>> freq, >>>>>>>>>>>>>> instead of FREQUENCY [IgniteAbbrevationsRule] >>>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/SlowHistoricalRebalanceSmallHistoryTest.java:57: >>>>>>>>>>>>>> Abbrevation should be used for SUPPLY_MESSAGE_LATCH! Please, >>>>>>>>>>>>>> use >>>>>>>>> msg, >>>>>>>>>>>>>> instead of MESSAGE [IgniteAbbrevationsRule] >>>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteLogicalRecoveryTest.java:74: >>>>>>>>>>>>>> Abbrevation should be used for SHARED_GROUP_NAME! Please, use >>>>>>>>>>>>>> grp, >>>>>>>>>>> instead >>>>>>>>>>>>>> of GROUP [IgniteAbbrevationsRule] >>>>>>>>>>>>>> [ERROR] >>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> /Users/sbt-izhikov-nv/work/ignite/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/IgniteLogicalRecoveryTest.java:200: >>>>>>>>>>>>>> Abbrevation should be used for cacheLoader! Please, use ldr, >>>>>>>>> instead >>>>>>>>>> of >>>>>>>>>>>>>> Loader [IgniteAbbrevationsRule] >>>>>>>>>>>>>> ``` >>>>>>>>>>>>>> >>>>>>>>>>>>>> [1] >>>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>> https://cwiki.apache.org/confluence/display/IGNITE/Abbreviation+Rules#AbbreviationRules-VariableAbbreviation >>>>>>>>>>>>>> [2] https://github.com/apache/ignite/pull/9153 >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>>> Best regards, >>>>>>>> Alexei Scherbakov >>>>>>> >>>>>> >>>>>> >>> >> >> >> -- >> >> Best regards, >> Ivan Pavlukhin > -- Best regards, Ivan Pavlukhin