Why cannot we mute (and file corresponding tickets) all test failures (including flaky) to some date and start initiative Green TC?
> On 24 May 2018, at 15:04, Vladimir Ozerov <voze...@gridgain.com> wrote: > > Dmitry, > > We cannot add this requirements, because we do have failures on TC. This > requirement implies that all development would stop until TC is green. > We never had old requirement work, neither we need to enforce it now. > > On Thu, May 24, 2018 at 2:59 PM, Dmitry Pavlov <dpavlov....@gmail.com> > wrote: > >> 3.c >> >> 1. All test suites *MUST* be run on TeamCity [3] before merge to master, >> there *MUST NOT* be any test failures >> >> >> 'New' word should be removed because we cant separate `new` and `non new` >> failures. >> >> Let's imagine example, we have 50 green runs in master. And PR Run-All >> contains this test failed. Is it new or not new? Actually we don't know. >> >> Existing requirement is about all TC must be green, so let's keep it as is. >> >> ср, 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 >>>>>>>>>>>> >>