Hi Vladimir, I've replied in separate thread.
I would like to keep requirement of Green TC instead of separation to new/old test failures. Once you allow just one test failure, it would be more failures after some time. Sincererly, Dmitriy Pavlov ср, 23 мая 2018 г. в 17:02, Vladimir Ozerov <voze...@gridgain.com>: > Igniters, > > I created review checklist on WIKI [1] and also fixed related pages (e.g. > "How To Contribute"). Please let me know if you have any comments before I > go with public announce. > > Vladimir. > > [1] https://cwiki.apache.org/confluence/display/IGNITE/Review+Checklist > > On Thu, May 10, 2018 at 5:10 PM, Vladimir Ozerov <voze...@gridgain.com> > wrote: > > > Ilya, > > > > We define that exception messages *SHOULD* have clear explanation on what > > is wrong. *SHOULD* mean that the rule should be followed unless there is > a > > reason not to follow. In your case you refer to some unexpected behavior. > > I.e. an exceptional situation developer is not aware of. In this case for > > sure we cannot force contributor to explain what is wrong, because, well, > > we don't know. This is why we relaxed the rule from *MUST* to *SHOULD*. > > > > On Thu, May 10, 2018 at 3:50 PM, Ilya Kasnacheev < > > ilya.kasnach...@gmail.com> wrote: > > > >> I don't think I quite understand how exception explanations should work. > >> > >> Imagine we have the following exception: > >> > >> // At least RuntimeException can be thrown by the code above when > >> GridCacheContext is cleaned and there is > >> // an attempt to use cleaned resources. > >> U.error(log, "Unexpected exception during cache update", e); > >> > >> I mean, we genuinely don't know what happened here. > >> > >> Under new rules, what kind of "workaround" would that exception suggest? > >> "Try turning it off and then back on"? > >> What explanation how to resolve this exception can we offer? "Please > write > >> to d...@apache.ignite.org or to Apache JIRA, and then wait for a release > >> with fix?" > >> > >> I'm really confused how we can implement 1.6 and 1.7 when dealing with > >> messy real-world code. > >> > >> Regards, > >> > >> > >> -- > >> Ilya Kasnacheev > >> > >> 2018-05-10 11:39 GMT+03:00 Vladimir Ozerov <voze...@gridgain.com>: > >> > >> > Andrey, Anton, Alex > >> > > >> > Agree, *SHOULD* is more appropriate here. > >> > > >> > Please see latest version below. Does anyone want to add or change > >> > something? Let's wait for several days for more feedback and then > >> publish > >> > and announce this list. Note that it would not be carved in stone and > we > >> > will be able to change it at any time if needed. > >> > > >> > 1) API > >> > 1.1) API compatibility *MUST* be maintained between minor releases. Do > >> not > >> > remove existing methods or change their signatures, deprecate them > >> instead > >> > 1.2) Default behaviour "SHOULD NOT* be changed between minor releases, > >> > unless absolutely needed. If change is made, it *MUST* be described in > >> > "Migration Guide" > >> > 1.3) New operation *MUST* be well-documented in code (javadoc, > >> dotnetdoc): > >> > documentation must contain method's purpose, description of parameters > >> and > >> > how their values affect the outcome, description of return value and > >> it's > >> > default, behavior in negative cases, interaction with other operations > >> and > >> > components > >> > 1.4) API parity between Java and .NET platforms *SHOULD* be maintained > >> when > >> > operation makes sense on both platforms. If method cannot be > >> implemented in > >> > a platform immediately, new JIRA ticket *MUST* be created and linked > to > >> > current ticket > >> > 1.5) API parity between thin clients (Java, .NET) *SHOULD* be > maintained > >> > when operation makes sense on several clients. If method cannot be > >> > implemented in a client immediately, new JIRA ticket *MUST* be created > >> and > >> > linked to current ticket > >> > 1.6) All exceptions thrown to a user **SHOULD** have explanation how > to > >> > resolve, workaround or debug an error > >> > > >> > 2) Compatibility > >> > 2.1) Persistence backward compatibility *MUST* be maintained between > >> minor > >> > releases. It should be possible to start newer version on data files > >> > created by the previous version > >> > 2.2) Thin client forward and backward compatibility *SHOULD* be > >> maintained > >> > between two consecutive minor releases. If compatibility cannot be > >> > maintained it *MUST* be described in "Migration Guide" > >> > 2.3) JDBC and ODBC forward and backward compatibility *SHOULD* be > >> > maintained between two consecutive minor releases. If compatibility > >> cannot > >> > be maintained it *MUST* be described in "Migration Guide" > >> > > >> > 3) Tests > >> > 3.1) New functionality *MUST* be covered with unit tests for both > >> positive > >> > and negative use cases > >> > 3.2) All test suites *MUST* be run before merge to master..There > *MUST* > >> be > >> > no new test failures > >> > > >> > 4) Code style *MUST* be followed as per Ignite's Coding Guidelines > >> > > >> > Vladimir. > >> > > >> > > >> > On Tue, May 8, 2018 at 1:05 PM, Andrey Kuznetsov <stku...@gmail.com> > >> > wrote: > >> > > >> > > Anton, > >> > > > >> > > I agree, *MUST* for exception reasons and *SHOULD* for ways of > >> resolution > >> > > sound clearer. > >> > > > >> > > 2018-05-08 12:56 GMT+03:00 Anton Vinogradov <a...@apache.org>: > >> > > > >> > > > Andrey, > >> > > > > >> > > > How about > >> > > > 1.6) All exceptions thrown to a user *MUST* have explanation of > >> > > workaround > >> > > > and contain original error. > >> > > > All exceptions thrown to a user *SHOULD* have explanation how to > >> > resolve > >> > > if > >> > > > possible. > >> > > > ? > >> > > > > >> > > > вт, 8 мая 2018 г. в 12:26, Andrey Kuznetsov <stku...@gmail.com>: > >> > > > > >> > > > > Vladimir, checklist looks pleasant enough for me. > >> > > > > > >> > > > > I'd like to suggest one minor change. In 1.6 *MUST* seems to be > >> too > >> > > > strict, > >> > > > > *SHOULD* would be enough. It can be frustrating for API user if > I > >> > > explain > >> > > > > how to fix NPEs in a trivial way, for example. > >> > > > > > >> > > > > 2018-05-08 11:34 GMT+03:00 Anton Vinogradov <a...@apache.org>: > >> > > > > > >> > > > > > Alex, > >> > > > > > > >> > > > > > It is not sounds like that, obviously. > >> > > > > > > >> > > > > > Tests should cover all negative and positive cases. > >> > > > > > You should add enough tests to cover all cases. > >> > > > > > > >> > > > > > Sometimes one test can cover more than one case, so two tests > >> *CAN* > >> > > > > > partially check same things. > >> > > > > > In case some cases already covered you should not create > >> > duplicates. > >> > > > > > > >> > > > > > вт, 8 мая 2018 г. в 10:19, Александр Меньшиков < > >> > sharple...@gmail.com > >> > > >: > >> > > > > > > >> > > > > > > Vladimir, the 3.1 is a bit unclear for me. Which code > >> coverage is > >> > > > > > > acceptable? Now it sounds like two tests are enough (one for > >> > > positive > >> > > > > and > >> > > > > > > one for negative cases). > >> > > > > > > > >> > > > > > > 2018-05-07 23:09 GMT+03:00 Dmitriy Setrakyan < > >> > > dsetrak...@apache.org > >> > > > >: > >> > > > > > > > >> > > > > > > > Is this list on the Wiki? > >> > > > > > > > > >> > > > > > > > On Mon, May 7, 2018 at 7:26 AM, Vladimir Ozerov < > >> > > > > voze...@gridgain.com> > >> > > > > > > > wrote: > >> > > > > > > > > >> > > > > > > > > Igniters, > >> > > > > > > > > > >> > > > > > > > > This is the checklist I have at the moment. Please let > me > >> > know > >> > > if > >> > > > > you > >> > > > > > > > have > >> > > > > > > > > any comments on existing items, or want to add or remove > >> > > > anything. > >> > > > > It > >> > > > > > > > looks > >> > > > > > > > > like we may have not only strict rules, but *nice to > have* > >> > > points > >> > > > > > here > >> > > > > > > as > >> > > > > > > > > well with help of *MUST*, *SHOULD* and *MAY* words as > per > >> > > RFC2119 > >> > > > > > [1]. > >> > > > > > > So > >> > > > > > > > > please feel free to suggest optional items as well. > >> > > > > > > > > > >> > > > > > > > > 1) API > >> > > > > > > > > 1.1) API compatibility *MUST* be maintained between > minor > >> > > > releases. > >> > > > > > Do > >> > > > > > > > not > >> > > > > > > > > remove existing methods or change their signatures, > >> deprecate > >> > > > them > >> > > > > > > > instead > >> > > > > > > > > 1.2) Default behaviour "SHOULD NOT* be changed between > >> minor > >> > > > > > releases, > >> > > > > > > > > unless absolutely needed. If change is made, it *MUST* > be > >> > > > described > >> > > > > > in > >> > > > > > > > > "Migration Guide" > >> > > > > > > > > 1.3) New operation *MUST* be well-documented in code > >> > (javadoc, > >> > > > > > > > dotnetdoc): > >> > > > > > > > > documentation must contain method's purpose, description > >> of > >> > > > > > parameters > >> > > > > > > > and > >> > > > > > > > > how their values affect the outcome, description of > return > >> > > value > >> > > > > and > >> > > > > > > it's > >> > > > > > > > > default, behavior in negative cases, interaction with > >> other > >> > > > > > operations > >> > > > > > > > and > >> > > > > > > > > components > >> > > > > > > > > 1.4) API parity between Java and .NET platforms *SHOULD* > >> be > >> > > > > > maintained > >> > > > > > > > when > >> > > > > > > > > operation makes sense on both platforms. If method > cannot > >> be > >> > > > > > > implemented > >> > > > > > > > in > >> > > > > > > > > a platform immediately, new JIRA ticket *MUST* be > created > >> and > >> > > > > linked > >> > > > > > to > >> > > > > > > > > current ticket > >> > > > > > > > > 1.5) API parity between thin clients (Java, .NET) > >> *SHOULD* be > >> > > > > > > maintained > >> > > > > > > > > when operation makes sense on several clients. If method > >> > cannot > >> > > > be > >> > > > > > > > > implemented in a client immediately, new JIRA ticket > >> *MUST* > >> > be > >> > > > > > created > >> > > > > > > > and > >> > > > > > > > > linked to current ticket > >> > > > > > > > > 1.6) All exceptions thrown to a user *MUST* have > >> explanation > >> > > how > >> > > > to > >> > > > > > > > > resolve, workaround or debug an error > >> > > > > > > > > > >> > > > > > > > > 2) Compatibility > >> > > > > > > > > 2.1) Persistence backward compatibility *MUST* be > >> maintained > >> > > > > between > >> > > > > > > > minor > >> > > > > > > > > releases. It should be possible to start newer version > on > >> > data > >> > > > > files > >> > > > > > > > > created by the previous version > >> > > > > > > > > 2.2) Thin client forward and backward compatibility > >> *SHOULD* > >> > be > >> > > > > > > > maintained > >> > > > > > > > > between two consecutive minor releases. If compatibility > >> > cannot > >> > > > be > >> > > > > > > > > maintained it *MUST* be described in "Migration Guide" > >> > > > > > > > > 2.3) JDBC and ODBC forward and backward compatibility > >> > *SHOULD* > >> > > be > >> > > > > > > > > maintained between two consecutive minor releases. If > >> > > > compatibility > >> > > > > > > > cannot > >> > > > > > > > > be maintained it *MUST* be described in "Migration > Guide" > >> > > > > > > > > > >> > > > > > > > > 3) Tests > >> > > > > > > > > 3.1) New functionality *MUST* be covered with unit tests > >> for > >> > > both > >> > > > > > > > positive > >> > > > > > > > > and negative use cases > >> > > > > > > > > 3.2) All test suites *MUST* be run before merge to > >> > > master..There > >> > > > > > *MUST* > >> > > > > > > > be > >> > > > > > > > > no new test failures > >> > > > > > > > > > >> > > > > > > > > 4) Code style *MUST* be followed as per Ignite's Coding > >> > > > Guidelines > >> > > > > > > > > > >> > > > > > > > > Vladimir. > >> > > > > > > > > > >> > > > > > > > > [1] https://www.ietf.org/rfc/rfc2119.txt > >> > > > > > > > > > >> > > > > > > > > On Fri, May 4, 2018 at 4:33 PM, Vladimir Ozerov < > >> > > > > > voze...@gridgain.com> > >> > > > > > > > > wrote: > >> > > > > > > > > > >> > > > > > > > > > Hi Dmitry, > >> > > > > > > > > > > >> > > > > > > > > > Yes, I'll do that in the nearest days. > >> > > > > > > > > > > >> > > > > > > > > > On Wed, Apr 25, 2018 at 8:24 PM, Dmitry Pavlov < > >> > > > > > > dpavlov....@gmail.com> > >> > > > > > > > > > wrote: > >> > > > > > > > > > > >> > > > > > > > > >> Igniters, the idea was related to small refactorings > >> > > > co-located > >> > > > > > with > >> > > > > > > > > main > >> > > > > > > > > >> change. > >> > > > > > > > > >> > >> > > > > > > > > >> Main change itself indicates that existing code did > not > >> > meet > >> > > > the > >> > > > > > > > > criteria > >> > > > > > > > > >> of practice. Approving of standalone refactorings > >> instead > >> > > > > > > contradicts > >> > > > > > > > > with > >> > > > > > > > > >> principle don't touch if it works. So I still like > >> idea of > >> > > > > > > co-located > >> > > > > > > > > >> changes improving code, javadocs, style, etc. > >> > > > > > > > > >> > >> > > > > > > > > >> But let's not argue about this point now, let's > >> summarize > >> > > the > >> > > > > > > > undisputed > >> > > > > > > > > >> points and add it to the wiki. Vladimir, would you > >> please > >> > do > >> > > > it? > >> > > > > > > > > >> > >> > > > > > > > > >> > >> > > > > > > > > >> ср, 25 апр. 2018 г. в 16:42, Nikolay Izhikov < > >> > > > > nizhi...@apache.org > >> > > > > > >: > >> > > > > > > > > >> > >> > > > > > > > > >> > Igniters, > >> > > > > > > > > >> > > >> > > > > > > > > >> > I agree with Vova. > >> > > > > > > > > >> > > >> > > > > > > > > >> > Don't fix if it works! > >> > > > > > > > > >> > > >> > > > > > > > > >> > If you 100% sure then it a useful addition to the > >> > product > >> > > - > >> > > > > just > >> > > > > > > > make > >> > > > > > > > > a > >> > > > > > > > > >> > separate ticket. > >> > > > > > > > > >> > > >> > > > > > > > > >> > В Ср, 25/04/2018 в 11:44 +0300, Vladimir Ozerov > >> пишет: > >> > > > > > > > > >> > > Guys, > >> > > > > > > > > >> > > > >> > > > > > > > > >> > > The problem with in-place refactorings is that > you > >> > > > increase > >> > > > > > > > affected > >> > > > > > > > > >> > scope. > >> > > > > > > > > >> > > It is not uncommon to break compatibility or > public > >> > > > > contracts > >> > > > > > > with > >> > > > > > > > > >> even > >> > > > > > > > > >> > > minor things. E.g. recently we decided drop > >> org.jsr166 > >> > > > > package > >> > > > > > > in > >> > > > > > > > > >> favor > >> > > > > > > > > >> > of > >> > > > > > > > > >> > > Java 8 classes. Innocent change. Result - broken > >> > > storage. > >> > > > > > > Another > >> > > > > > > > > >> problem > >> > > > > > > > > >> > > is conflicts. It is not uncommon to have > long-lived > >> > > > branches > >> > > > > > > which > >> > > > > > > > > we > >> > > > > > > > > >> > need > >> > > > > > > > > >> > > to merge with master over and over again. And a > >> lot of > >> > > > > > > > refactorings > >> > > > > > > > > >> cause > >> > > > > > > > > >> > > conflicts. It is much easier to resolve them if > you > >> > know > >> > > > > that > >> > > > > > > > logic > >> > > > > > > > > >> was > >> > > > > > > > > >> > not > >> > > > > > > > > >> > > affected as opposed to cases when you need to > >> resolve > >> > > both > >> > > > > > > renames > >> > > > > > > > > and > >> > > > > > > > > >> > > method extractions along with business-logic > >> changes. > >> > > > > > > > > >> > > > >> > > > > > > > > >> > > I'd like to repeat - if you have a time for > >> > refactoring > >> > > > then > >> > > > > > you > >> > > > > > > > > >> > definitely > >> > > > > > > > > >> > > have a time to extract these changes to separate > PR > >> > and > >> > > > > > submit a > >> > > > > > > > > >> separate > >> > > > > > > > > >> > > ticket. I am quite understand what "low priority" > >> do > >> > you > >> > > > > mean > >> > > > > > if > >> > > > > > > > you > >> > > > > > > > > >> do > >> > > > > > > > > >> > > refactorings on your own. > >> > > > > > > > > >> > > > >> > > > > > > > > >> > > On Tue, Apr 24, 2018 at 10:52 PM, Andrey > Kuznetsov > >> < > >> > > > > > > > > stku...@gmail.com > >> > > > > > > > > >> > > >> > > > > > > > > >> > > wrote: > >> > > > > > > > > >> > > > >> > > > > > > > > >> > > > +1. > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > Once again, I beg for "small refactoring > >> permission" > >> > > in > >> > > > a > >> > > > > > > > > checklist. > >> > > > > > > > > >> > As of > >> > > > > > > > > >> > > > today, separate tickets for small refactorings > >> has > >> > > > lowest > >> > > > > > > > > priority, > >> > > > > > > > > >> > since > >> > > > > > > > > >> > > > they neither fix any flaw nor add new > >> functionality. > >> > > > Also, > >> > > > > > the > >> > > > > > > > > >> > attempts to > >> > > > > > > > > >> > > > make issue-related code safer / cleaner / more > >> > > readable > >> > > > in > >> > > > > > > > "real" > >> > > > > > > > > >> pull > >> > > > > > > > > >> > > > requests are typically rejected, since they > >> > contradict > >> > > > our > >> > > > > > > > current > >> > > > > > > > > >> > > > guidelines. > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > I understand this will require a bit more > effort > >> > from > >> > > > > > > > > >> > committer/maintainer, > >> > > > > > > > > >> > > > but otherwise we will get constantly degrading > >> code > >> > > > > quality. > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > 2018-04-24 18:52 GMT+03:00 Eduard Shangareev < > >> > > > > > > > > >> > eduard.shangar...@gmail.com > >> > > > > > > > > >> > > > > : > >> > > > > > > > > >> > > > > Vladimir, > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > I am not talking about massive/sophisticated > >> > > > > refactoring. > >> > > > > > > But > >> > > > > > > > I > >> > > > > > > > > >> > believe > >> > > > > > > > > >> > > > > that ask to extract some methods should be OK > >> to > >> > do > >> > > > > > without > >> > > > > > > an > >> > > > > > > > > >> extra > >> > > > > > > > > >> > > > > ticket. > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > A checklist shouldn't be necessarily a set of > >> > > certain > >> > > > > > rules > >> > > > > > > > but > >> > > > > > > > > >> also > >> > > > > > > > > >> > it > >> > > > > > > > > >> > > > > could include suggestion and reminders. > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > On Tue, Apr 24, 2018 at 6:39 PM, Vladimir > >> Ozerov < > >> > > > > > > > > >> > voze...@gridgain.com> > >> > > > > > > > > >> > > > > wrote: > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > > Ed, > >> > > > > > > > > >> > > > > > > >> > > > > > > > > >> > > > > > Refactoring is a separate task. If you > would > >> > like > >> > > to > >> > > > > > > rework > >> > > > > > > > > >> > exchange > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > future > >> > > > > > > > > >> > > > > > - please do this in a ticket "Refactor > >> exchange > >> > > > task", > >> > > > > > > > nobody > >> > > > > > > > > >> would > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > against > >> > > > > > > > > >> > > > > > this. This is just a matter of creating > >> separate > >> > > > > ticket > >> > > > > > > and > >> > > > > > > > > >> > separate > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > PR. > >> > > > > > > > > >> > > > > If > >> > > > > > > > > >> > > > > > one have a time for refactoring, it should > >> not > >> > be > >> > > a > >> > > > > > > problem > >> > > > > > > > > for > >> > > > > > > > > >> > him to > >> > > > > > > > > >> > > > > > spend several minutes on JIRA and GitHub. > >> > > > > > > > > >> > > > > > > >> > > > > > > > > >> > > > > > As far as documentation - what you describe > >> is > >> > > > normal > >> > > > > > > review > >> > > > > > > > > >> > process, > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > when > >> > > > > > > > > >> > > > > > reviewer might want to ask contributor to > fix > >> > > > > something. > >> > > > > > > > > >> Checklist > >> > > > > > > > > >> > is a > >> > > > > > > > > >> > > > > > different thing - this is a set of rules > >> which > >> > > must > >> > > > be > >> > > > > > > > > followed > >> > > > > > > > > >> by > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > anyone. > >> > > > > > > > > >> > > > > > I do not understand how you can define > >> > > documentation > >> > > > > in > >> > > > > > > this > >> > > > > > > > > >> > checklist. > >> > > > > > > > > >> > > > > > Same problem with logging - what is > "enough"? > >> > > > > > > > > >> > > > > > > >> > > > > > > > > >> > > > > > On Tue, Apr 24, 2018 at 4:51 PM, Eduard > >> > > Shangareev < > >> > > > > > > > > >> > > > > > eduard.shangar...@gmail.com> wrote: > >> > > > > > > > > >> > > > > > > >> > > > > > > > > >> > > > > > > Igniters, > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > I don't understand why you are so against > >> > > > > refactoring. > >> > > > > > > > > >> > > > > > > Code already smells like hell. Methods > 200+ > >> > line > >> > > > is > >> > > > > > > > normal. > >> > > > > > > > > >> > Exchange > >> > > > > > > > > >> > > > > > > >> > > > > > > > > >> > > > > > future > >> > > > > > > > > >> > > > > > > is asking to be separated on several one. > >> > > > > Transaction > >> > > > > > > code > >> > > > > > > > > >> could > >> > > > > > > > > >> > > > > > > >> > > > > > > > > >> > > > > > understand > >> > > > > > > > > >> > > > > > > few people. > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > If we separate refactoring from > >> development it > >> > > > would > >> > > > > > > mean > >> > > > > > > > > that > >> > > > > > > > > >> > no one > >> > > > > > > > > >> > > > > > > >> > > > > > > > > >> > > > > > will > >> > > > > > > > > >> > > > > > > do it. > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > 2) Documentation. > >> > > > > > > > > >> > > > > > > Everything which was asked by reviewers > to > >> > > clarify > >> > > > > > idea > >> > > > > > > > > >> should be > >> > > > > > > > > >> > > > > > > >> > > > > > > > > >> > > > > > reflected > >> > > > > > > > > >> > > > > > > in the code. > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > 3) Logging. > >> > > > > > > > > >> > > > > > > Logging should be enough to troubleshoot > >> the > >> > > > problem > >> > > > > > if > >> > > > > > > > > >> someone > >> > > > > > > > > >> > comes > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > to > >> > > > > > > > > >> > > > > > > user-list with an issue in the code. > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > On Fri, Apr 20, 2018 at 7:06 PM, Dmitry > >> > Pavlov < > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > dpavlov....@gmail.com> > >> > > > > > > > > >> > > > > > > wrote: > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > > Hi Igniters, > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > +1 to idea of checklist. > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > +1 to refactoring and documenting code > >> > related > >> > > > to > >> > > > > > > ticket > >> > > > > > > > > in > >> > > > > > > > > >> > +/-20 > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > LOC > >> > > > > > > > > >> > > > > > at > >> > > > > > > > > >> > > > > > > > least. > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > If we start to do it as part of our > >> regular > >> > > > > > > > contribution, > >> > > > > > > > > >> code > >> > > > > > > > > >> > will > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > be > >> > > > > > > > > >> > > > > > > > better, it would became common practice > >> and > >> > > part > >> > > > > of > >> > > > > > > > Apache > >> > > > > > > > > >> > Ignite > >> > > > > > > > > >> > > > > > > > development culure. > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > If we will hope we will have free time > to > >> > > submit > >> > > > > > > > separate > >> > > > > > > > > >> patch > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > someday > >> > > > > > > > > >> > > > > > > and > >> > > > > > > > > >> > > > > > > > have patience to complete > >> patch-submission > >> > > > > process, > >> > > > > > > code > >> > > > > > > > > >> will > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > remain > >> > > > > > > > > >> > > > > > > > undocumented and poor-readable. > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > Sincerely, > >> > > > > > > > > >> > > > > > > > Dmitriy Pavlov > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > пт, 20 апр. 2018 г. в 18:56, Александр > >> > > > Меньшиков < > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > sharple...@gmail.com > >> > > > > > > > > >> > > > > > > : > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > 4) Metrics. > >> > > > > > > > > >> > > > > > > > > partially +1 > >> > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > It makes sense to have some minimal > >> code > >> > > > > coverage > >> > > > > > > for > >> > > > > > > > > new > >> > > > > > > > > >> > code in > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > PR. > >> > > > > > > > > >> > > > > > > > IMHO. > >> > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > Also, we can limit the cyclomatic > >> > complexity > >> > > > of > >> > > > > > the > >> > > > > > > > new > >> > > > > > > > > >> code > >> > > > > > > > > >> > in > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > PR > >> > > > > > > > > >> > > > > > too. > >> > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > 6) Refactoring > >> > > > > > > > > >> > > > > > > > > -1 > >> > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > I understand why people want to > >> refactor > >> > old > >> > > > > code. > >> > > > > > > > > >> > > > > > > > > But I think refactoring should be > >> always a > >> > > > > > separate > >> > > > > > > > > task. > >> > > > > > > > > >> > > > > > > > > And it's better to remove all > >> refactoring > >> > > from > >> > > > > PR, > >> > > > > > > if > >> > > > > > > > > it's > >> > > > > > > > > >> > not > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > the > >> > > > > > > > > >> > > > > > > sense > >> > > > > > > > > >> > > > > > > > of > >> > > > > > > > > >> > > > > > > > > the issue. > >> > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > 2018-04-20 16:54 GMT+03:00 Andrey > >> > Kuznetsov > >> > > < > >> > > > > > > > > >> > stku...@gmail.com>: > >> > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > What about adding the following > item > >> to > >> > > the > >> > > > > > > > checklist: > >> > > > > > > > > >> > when the > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > change > >> > > > > > > > > >> > > > > > > > > adds > >> > > > > > > > > >> > > > > > > > > > new functionality, then unit tests > >> > should > >> > > > also > >> > > > > > be > >> > > > > > > > > >> > provided, if > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > it's > >> > > > > > > > > >> > > > > > > > > > technically possible? > >> > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > As for refactorings, in fact they > are > >> > > > strongly > >> > > > > > > > > >> discouraged > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > today > >> > > > > > > > > >> > > > > > for > >> > > > > > > > > >> > > > > > > > some > >> > > > > > > > > >> > > > > > > > > > unclear reason. Let's permit to > make > >> > > > > > refactorings > >> > > > > > > in > >> > > > > > > > > the > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > checklist > >> > > > > > > > > >> > > > > > > > being > >> > > > > > > > > >> > > > > > > > > > discussed. (Of cource, refactoring > >> > should > >> > > > > relate > >> > > > > > > to > >> > > > > > > > > >> problem > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > being > >> > > > > > > > > >> > > > > > > > > solved.) > >> > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > 2018-04-20 16:16 GMT+03:00 Vladimir > >> > > Ozerov < > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > voze...@gridgain.com > >> > > > > > > > > >> > > > > > : > >> > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > Hi Ed, > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > Unfortunately some of these > points > >> are > >> > > not > >> > > > > > good > >> > > > > > > > > >> > candidates > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > for > >> > > > > > > > > >> > > > > > the > >> > > > > > > > > >> > > > > > > > > > > checklist because of these: > >> > > > > > > > > >> > > > > > > > > > > - It must be clear and disallow > >> > > *multiple > >> > > > > > > > > >> > interpretations* > >> > > > > > > > > >> > > > > > > > > > > - It must be *lightweight*, > >> otherwise > >> > > > Ignite > >> > > > > > > > > >> development > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > would > >> > > > > > > > > >> > > > > > > > become a > >> > > > > > > > > >> > > > > > > > > > > nightmare > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > We cannot have "nice to have" > >> points > >> > > here. > >> > > > > > > > Checklist > >> > > > > > > > > >> > should > >> > > > > > > > > >> > > > > > > >> > > > > > > > > >> > > > > > answer > >> > > > > > > > > >> > > > > > > > the > >> > > > > > > > > >> > > > > > > > > > > question "is ticket eligible to > be > >> > > > merged?" > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > 1) Code style. > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > +1 > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > 2) Documentation > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > -1, it is impossible to define > >> what is > >> > > > > > > > > >> > "well-documented". A > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > piece > >> > > > > > > > > >> > > > > > > of > >> > > > > > > > > >> > > > > > > > > code > >> > > > > > > > > >> > > > > > > > > > > could be obvious for one > >> contributor, > >> > > and > >> > > > > > > > > non-obvious > >> > > > > > > > > >> for > >> > > > > > > > > >> > > > > > > >> > > > > > > > > >> > > > > > another. > >> > > > > > > > > >> > > > > > > In > >> > > > > > > > > >> > > > > > > > > any > >> > > > > > > > > >> > > > > > > > > > > case this is not a blocker for > >> merge. > >> > > > > Instead, > >> > > > > > > > > during > >> > > > > > > > > >> > review > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > one > >> > > > > > > > > >> > > > > > > can > >> > > > > > > > > >> > > > > > > > > ask > >> > > > > > > > > >> > > > > > > > > > > implementer to add more docs, but > >> it > >> > > > cannot > >> > > > > be > >> > > > > > > > > forced. > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > 3) Logging > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > -1, same problem - what is > "enough > >> > > > > logging?". > >> > > > > > > > Enough > >> > > > > > > > > >> for > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > whom? > >> > > > > > > > > >> > > > > > How > >> > > > > > > > > >> > > > > > > to > >> > > > > > > > > >> > > > > > > > > > > understand whether it is enough > or > >> > not? > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > 4) Metrics > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > -1, no clear boundaries, and > >> decision > >> > on > >> > > > > > whether > >> > > > > > > > > >> metrics > >> > > > > > > > > >> > are > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > to > >> > > > > > > > > >> > > > > > be > >> > > > > > > > > >> > > > > > > > > added > >> > > > > > > > > >> > > > > > > > > > or > >> > > > > > > > > >> > > > > > > > > > > not should be performed during > >> design > >> > > > phase. > >> > > > > > As > >> > > > > > > > > >> before, > >> > > > > > > > > >> > it is > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > perfectly > >> > > > > > > > > >> > > > > > > > > > > valid to ask contributor to add > >> > metrics > >> > > > with > >> > > > > > > clear > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > explanation > >> > > > > > > > > >> > > > > > why, > >> > > > > > > > > >> > > > > > > > but > >> > > > > > > > > >> > > > > > > > > > > this is not part of the > checklist. > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > 5) TC status > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > +1, already mentioned > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > 6) Refactoring > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > Strong -1. OOP is a slippery > slope, > >> > > there > >> > > > > are > >> > > > > > no > >> > > > > > > > > good > >> > > > > > > > > >> > and bad > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > receipts > >> > > > > > > > > >> > > > > > > > > > for > >> > > > > > > > > >> > > > > > > > > > > all cases, hence it cannot be > used > >> in > >> > a > >> > > > > > > checklist. > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > We can borrow useful rules from > >> p.2, > >> > p.3 > >> > > > and > >> > > > > > p.4 > >> > > > > > > > if > >> > > > > > > > > >> you > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > provide > >> > > > > > > > > >> > > > > > > clear > >> > > > > > > > > >> > > > > > > > > > > definitions on how to measure > them. > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > Vladimir. > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > On Fri, Apr 20, 2018 at 3:50 PM, > >> > Eduard > >> > > > > > > > Shangareev < > >> > > > > > > > > >> > > > > > > > > > > eduard.shangar...@gmail.com> > >> wrote: > >> > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > Also, I want to add some > >> technical > >> > > > > > > requirement. > >> > > > > > > > > >> Let's > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > discuss > >> > > > > > > > > >> > > > > > > them. > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > 1) Code style. > >> > > > > > > > > >> > > > > > > > > > > > The code needs to be formatted > >> > > according > >> > > > > to > >> > > > > > > > coding > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > guidelines > >> > > > > > > > > >> > > > > > > > > > > > < > >> > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > https://cwiki.apache.org/ > >> > > > > > confluence/display/IGNITE/ > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > Coding+Guidelines > >> > > > > > > > > >> > > > > > > > > > > . > >> > > > > > > > > >> > > > > > > > > > > > The > >> > > > > > > > > >> > > > > > > > > > > > code must not contain TODOs > >> without > >> > a > >> > > > > ticket > >> > > > > > > > > >> reference. > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > It is highly recommended to > make > >> > major > >> > > > > > > > formatting > >> > > > > > > > > >> > changes > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > in > >> > > > > > > > > >> > > > > > > > existing > >> > > > > > > > > >> > > > > > > > > > > code > >> > > > > > > > > >> > > > > > > > > > > > as a separate commit, to make > >> review > >> > > > > process > >> > > > > > > > more > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > practical. > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > 2) Documentation. > >> > > > > > > > > >> > > > > > > > > > > > Added code should be > >> > well-documented. > >> > > > Any > >> > > > > > > > methods > >> > > > > > > > > >> that > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > raise > >> > > > > > > > > >> > > > > > > > > questions > >> > > > > > > > > >> > > > > > > > > > > > regarding their code flow, > >> > invariants, > >> > > > > > > > > >> synchronization, > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > etc., > >> > > > > > > > > >> > > > > > > must > >> > > > > > > > > >> > > > > > > > be > >> > > > > > > > > >> > > > > > > > > > > > documented with comprehensive > >> > javadoc. > >> > > > Any > >> > > > > > > > > reviewer > >> > > > > > > > > >> can > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > request > >> > > > > > > > > >> > > > > > > > that > >> > > > > > > > > >> > > > > > > > > a > >> > > > > > > > > >> > > > > > > > > > > > particular added method be > >> > documented. > >> > > > > Also, > >> > > > > > > it > >> > > > > > > > > is a > >> > > > > > > > > >> > good > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > practice > >> > > > > > > > > >> > > > > > > > to > >> > > > > > > > > >> > > > > > > > > > > > document old code in a 10-20 > >> lines > >> > > > region > >> > > > > > > around > >> > > > > > > > > >> > changed > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > code. > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > 3) Logging. > >> > > > > > > > > >> > > > > > > > > > > > Make sure that there are enough > >> > > logging > >> > > > > > added > >> > > > > > > in > >> > > > > > > > > >> every > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > category > >> > > > > > > > > >> > > > > > > for > >> > > > > > > > > >> > > > > > > > > > > > possible diagnostic in field. > >> Check > >> > > that > >> > > > > > > logging > >> > > > > > > > > >> > messages > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > are > >> > > > > > > > > >> > > > > > > > > properly > >> > > > > > > > > >> > > > > > > > > > > > spelled. > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > 4) Metrics. > >> > > > > > > > > >> > > > > > > > > > > > Are there any metrics that need > >> to > >> > be > >> > > > > > exposed > >> > > > > > > to > >> > > > > > > > > >> user? > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > 5) TC status. > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > Recheck that there are no new > >> > failing > >> > > > > tests > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > 6) Refactoring. > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > The code should be better than > >> > before: > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > - extract method from big > one; > >> > > > > > > > > >> > > > > > > > > > > > - do anything else to make > >> code > >> > > > clearer > >> > > > > > > > (don't > >> > > > > > > > > >> > forget > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > about > >> > > > > > > > > >> > > > > > > some > >> > > > > > > > > >> > > > > > > > > > > > OOP-practise, replace > if-else > >> > hell > >> > > > with > >> > > > > > > > > >> inheritance > >> > > > > > > > > >> > > > > > > > > > > > - split refactoring > (renaming, > >> > code > >> > > > > > format) > >> > > > > > > > > from > >> > > > > > > > > >> > actual > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > changes > >> > > > > > > > > >> > > > > > > > by > >> > > > > > > > > >> > > > > > > > > > > > separate commit > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > On Fri, Apr 20, 2018 at 3:23 > PM, > >> > > Eduard > >> > > > > > > > > Shangareev < > >> > > > > > > > > >> > > > > > > > > > > > eduard.shangar...@gmail.com> > >> wrote: > >> > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > Hi, guys. > >> > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > I believe that we should > update > >> > > > > > maintainers > >> > > > > > > > list > >> > > > > > > > > >> > before > >> > > > > > > > > >> > > > > > > >> > > > > > > > > >> > > > > > adding > >> > > > > > > > > >> > > > > > > > this > >> > > > > > > > > >> > > > > > > > > > > > review > >> > > > > > > > > >> > > > > > > > > > > > > requirement. > >> > > > > > > > > >> > > > > > > > > > > > > There should not be the > >> situation > >> > > when > >> > > > > > there > >> > > > > > > > is > >> > > > > > > > > >> only > >> > > > > > > > > >> > one > >> > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > contributor > >> > > > > > > > > >> > > > > > > > > > > who > >> > > > > > > > > >> > > > > > > > > > > > > is responsible for a > component. > >> > > > > > > > > >> > > > > > > > > > > > > We already have issues with > >> review > >> > > > speed > >> > > > > > and > >> > > > > > > > > >> response > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > time. > >> > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > On Fri, Apr 20, 2018 at 2:17 > >> PM, > >> > > Anton > >> > > > > > > > > Vinogradov > >> > > > > > > > > >> < > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > a...@apache.org > >> > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > wrote: > >> > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > Vova, > >> > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > Everything you described > >> sound > >> > > good > >> > > > to > >> > > > > > me. > >> > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > I'd like to propose to > create > >> > > > special > >> > > > > > page > >> > > > > > > > at > >> > > > > > > > > AI > >> > > > > > > > > >> > Wiki > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > and > >> > > > > > > > > >> > > > > to > >> > > > > > > > > >> > > > > > > > > > describe > >> > > > > > > > > >> > > > > > > > > > > > > > checklist. > >> > > > > > > > > >> > > > > > > > > > > > > > In case we'll find > something > >> > > should > >> > > > be > >> > > > > > > > > >> > changed/improved > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > it > >> > > > > > > > > >> > > > > > > will > >> > > > > > > > > >> > > > > > > > be > >> > > > > > > > > >> > > > > > > > > > > easy > >> > > > > > > > > >> > > > > > > > > > > > to > >> > > > > > > > > >> > > > > > > > > > > > > > update the page. > >> > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > 2018-04-20 0:53 GMT+03:00 > >> > Nikolay > >> > > > > > Izhikov > >> > > > > > > < > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > nizhi...@apache.org > >> > > > > > > > > >> > > > > > > > > : > >> > > > > > > > > >> > > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > Hello, Vladimir. > >> > > > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > Thank you for seting up > >> this > >> > > > > > discussion. > >> > > > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > As we discussed, I think > an > >> > > > > important > >> > > > > > > part > >> > > > > > > > > of > >> > > > > > > > > >> > this > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > check > >> > > > > > > > > >> > > > > > > list > >> > > > > > > > > >> > > > > > > > is > >> > > > > > > > > >> > > > > > > > > > > > > > > compatibility rules. > >> > > > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > * What should be backward > >> > > > > compatible? > >> > > > > > > > > >> > > > > > > > > > > > > > > * How should we maintain > >> it? > >> > > > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > > 3) If ticket changes > >> public > >> > > API > >> > > > or > >> > > > > > > > > existing > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > behavior, > >> > > > > > > > > >> > > > > at > >> > > > > > > > > >> > > > > > > > least > >> > > > > > > > > >> > > > > > > > > > two > >> > > > > > > > > >> > > > > > > > > > > > > > > commiters should approve > >> the > >> > > > changes > >> > > > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > We can learn from other > >> open > >> > > > source > >> > > > > > > > project > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > experience. > >> > > > > > > > > >> > > > > > > > > > > > > > > Apache Kafka [1], for > >> example, > >> > > > > > requires > >> > > > > > > > > >> KIP(kafka > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > improvement > >> > > > > > > > > >> > > > > > > > > > > > proposal) > >> > > > > > > > > >> > > > > > > > > > > > > > > for *every* major change. > >> > > > > > > > > >> > > > > > > > > > > > > > > Major change definition > >> > includes > >> > > > > > public > >> > > > > > > > API. > >> > > > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > [1] > >> https://cwiki.apache.org/ > >> > > > > > > > > >> > > > > >> > > > > > > > > >> > > > confluence/display/KAFKA/ > >> > > > > > > > > >> > > > > > > > > > > > > > > > Kafka+Improvement+Proposals > >> > > > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > В Чт, 19/04/2018 в 23:00 > >> > +0300, > >> > > > > > Vladimir > >> > > > > > > > > >> Ozerov > >> > > > > > > > > >> > пишет: > >> > > > > > > > > >> > > > > > > > > > > > > > > > Hi Igniters, > >> > > > > > > > > >> > > > > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > > It's glad to see our > >> > community > >> > > > > > becomes > >> > > > > > > > > >> larger > >> > > > > > > > > >> > every > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > day. > >> > > > > > > > > >> > > > > > > But > >> > > > > > > > > >> > > > > > > > > as > >> > > > > > > > > >> > > > > > > > > > it > >> > > > > > > > > >> > > > > > > > > > > > > > grows > >> > > > > > > > > >> > > > > > > > > > > > > > > it > >> > > > > > > > > >> > > > > > > > > > > > > > > > becomes more and more > >> > > difficult > >> > > > to > >> > > > > > > > manage > >> > > > > > > > > >> > review and > >> > > > > > > > > >> > > > > > > >> > > > > > > > > >> > > > > > merge > >> > > > > > > > > >> > > > > > > > > > > processes > >> > > > > > > > > >> > > > > > > > > > > > > > and > >> > > > > > > > > >> > > > > > > > > > > > > > > > keep quality of our > >> > decisions > >> > > at > >> > > > > the > >> > > > > > > > > proper > >> > > > > > > > > >> > level. > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > More > >> > > > > > > > > >> > > > > > > > > > > > contributors, > >> > > > > > > > > >> > > > > > > > > > > > > > > more > >> > > > > > > > > >> > > > > > > > > > > > > > > > commits, more > components > >> > > > > interlinked > >> > > > > > > > with > >> > > > > > > > > >> each > >> > > > > > > > > >> > other > >> > > > > > > > > >> > > > > > >> > > > > > > > > >> > > > > in > >> > > > > > > > > >> > > > > > > > subtle > >> > > > > > > > > >> > > > > > > > > > > ways. > >> > > > > > > > > >> > > > > > > > > > > > > > > > > >> > > > > > > > > >> > > > > > > > > > > > > > > > I would like to propose > >> to > >> > > > setup a > >> > > > > > > > formal > >> > > > > > > > > >> > review > >> > > > > > > > > >> > > > > > > > >> > > > > > > > > >> > > > > > > checklist. > >> > > > > > > > > >> > > > > > > > > This > >> > > > > > > > > >> > > > > > > > > > > > would > >> > > > > > > > > >> > > > > > > > > > > > > > > be a > >> > > > > > > > > >> > > > > > > > > > > > > > > > set of actions every > >> > reviewer > >> > > > > needs > >> > > > > > to > >> > > > > > > > > check > >> > > > > > > > > >> > before > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > approving > >> > > > > > > > > >> > > > > > > > > > > merge > >> > > > > > > > > >> > > > > > > > > > > > > > of a > >> > > > > > > > > >> > > > > > > > > > > > > > > > certain feature. > Passing > >> the > >> > > > > > checklist > >> > > > > > > > > >> would be > >> > > > > > > > > >> > > > > > > >> > > > > > > > > >> > > > > > *necessary > >> > > > > > > > > >> > > > > > > > but > >> > > > > > > > > >> > > > > > > > > > not > >> > > > > > > > > >> > > > > > > > > > > > > > > > sufficient* phase > before > >> > > commit > >> > > > > > could > >> > > > > > > be > >> > > > > > > > > >> added > >> > > > > > > > > >> > to > >> > > > > > > >