Sounds reasonable.
I've satrted Data Structures suite hang investigation [1].

Igniters, especially commiters,
I know, you're busy, but it will be a great help to the project in case you
fix at least one hang per person.

[1] https://issues.apache.org/jira/browse/IGNITE-8783

пн, 9 июл. 2018 г. в 19:24, Maxim Muzafarov <maxmu...@gmail.com>:

> Hi Igniters,
>
> Let's back to discussion of review checklist. Can we add more clarification
> about running all suites on TeamCity?
>
> My suggestion is: “All test suites MUST be run on TeamCity [3] before merge
> to master, there MUST NOT be any test failures * and any tests\suites with
> “execution timeouts” *. Not important test failures should be muted and
> handled according to [4] process.”
>
> As you can see we have stable “Execution timeouts” for
> “Activate\Deactiveate Cluster” test suite since 16-th June. How can we be
> sure in this case that new changes would not break up old functionality?
>
> From my point, all new changes MUST NOT be merged to master util we will
> fix all execution timeouts for suites. Even if current changes are not
> related to these timeouts.
>
> [1]
>
> https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_ActivateDeactivateCluster&tab=buildTypeHistoryList&branch_IgniteTests24Java8=%3Cdefault%3E
>
>
> пн, 4 июн. 2018 г. в 15:56, Dmitry Pavlov <dpavlov....@gmail.com>:
>
> > Requirement of green TC for each PR is community rule, not my.
> >
> > I'll answer ro another question, what should we do with test failure:
> > "Ideally - fix, but at least mute test and create ticket. "
> >
> > May be it's time to formalize Make TC Green Again process in details, so
> > let me share my draft.
> >
> > If Igniter see test failure (in master, in release bracnh, etc), he
> should
> > consider following steps:
> >
> >    - If your changes can led to this failure(s), please create issue with
> >    label MakeTeamCityGreenAgain and assign it to you.
> >       - If you have fix, please set ticket to PA state and write to dev
> >       list fix is ready.
> >       - For case fix will require some time please mute test and set
> label
> >       Muted_Test to issue
> >    - If you know which change caused failure please contact change author
> >    directly.
> >    - If you don't know which change caused failure please send message to
> >    dev list to find out
> >
> >
> >
> >
> > пн, 4 июн. 2018 г. в 15:27, Vladimir Ozerov <voze...@gridgain.com>:
> >
> > > Dmitry,
> > >
> > > My question was how to proceed with your rules. Could you please
> clarify?
> > >
> > > On Mon, Jun 4, 2018 at 2:52 PM, Dmitry Pavlov <dpavlov....@gmail.com>
> > > wrote:
> > >
> > > > Vladimir, I mean strict definition, how much previous runs should
> > > > contributor consider? What if test was failed by infrastructure
> reason
> > in
> > > > master previously, how can contributor be sure test failure != broken
> > > code
> > > > in PR? In this case it should be double checked by
> > contributor/reviewer.
> > > > I'm sure nobody can give strict definition of 'new' failure.
> > > >
> > > > Flaky tests detected by TC may be taken into account in check-list,
> > > because
> > > > contributor can check if failure is flaky. But again, not all tests
> > with
> > > > floating failure is detected by TC as flaky.
> > > >
> > > > I don't understand what problem will be solved if we soften current
> > > > requirement with 'new' test? Everybody will continue to complain they
> > > PR's
> > > > test failures is not `new`. So let's keep it as is.
> > > >
> > > > пн, 4 июн. 2018 г. в 14:46, Vladimir Ozerov <voze...@gridgain.com>:
> > > >
> > > > > Dmitry,
> > > > >
> > > > > New failure is a failure hasn't happened on previous runs. If it do
> > > > > happened, then contributor should see if it is a flaky or not
> through
> > > > local
> > > > > and TC runs. The same works for timeout suites.
> > > > > Current statement in "Review Checklist" that there are should be no
> > > > failed
> > > > > tests is not applicable to real word. Almost every patch is pushed
> to
> > > > > repository with test failures.
> > > > >
> > > > > On Mon, Jun 4, 2018 at 2:22 PM, Dmitry Pavlov <
> dpavlov....@gmail.com
> > >
> > > > > wrote:
> > > > >
> > > > > > Hi Vladimir, could you provide definition what is new failure?
> how
> > do
> > > > you
> > > > > > know it is new or not?
> > > > > >
> > > > > > And please forget for a moment you're Ignite expert & veteran,
> > > imagine
> > > > > you
> > > > > > are newcomer.
> > > > > >
> > > > > > I can't find any criteria that can be used by newbie to come to
> the
> > > > > > conclusion that test is new. Patch is accepted by reviewer, so it
> > > > should
> > > > > be
> > > > > > up to him to correctly register failures in tickets with
> > > > > > MakeTeamCityGreenAgain label and mute unimportant tests.
> > > > > >
> > > > > > пн, 4 июн. 2018 г. в 11:32, Vladimir Ozerov <
> voze...@gridgain.com
> > >:
> > > > > >
> > > > > > > Dmitry,
> > > > > > >
> > > > > > > I still do not see how new patches could be accepted with this
> > > > > > requirement
> > > > > > > in place. Consider the following case: I created a patch and
> run
> > it
> > > > on
> > > > > > TC,
> > > > > > > observed N failures, verified through TC history that none if
> > them
> > > > are
> > > > > > new.
> > > > > > > Am I eligible to push the commit?
> > > > > > >
> > > > > > > On Thu, May 24, 2018 at 3:11 PM, Dmitry Pavlov <
> > > > dpavlov....@gmail.com>
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Petr, good point. It is more intuitive, we should mark test
> we
> > > can
> > > > > > ignore
> > > > > > > > by mute.
> > > > > > > >
> > > > > > > > So Vladimir, you or other Ignite veteran can mute test, if
> can
> > > say
> > > > it
> > > > > > is
> > > > > > > > not important.
> > > > > > > >
> > > > > > > > чт, 24 мая 2018 г. в 15:07, Petr Ivanov <mr.wei...@gmail.com
> >:
> > > > > > > >
> > > > > > > > > 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
> > > > > > > > > >>>>>>>>>>>>>>>>>>>>>>>
> > > > > > > > > >>>>>>>>>>>>>>>>>>>>

Reply via email to