Maxim, I am not quite understand what is the problem with "many major enhancements per IEP" and terms such as "optimization" or so. The very goal of initial IEP process was to accumulate global ideas, so that one may quickly understand potentially hot areas around the product. This is about informing community, not about planning and linking to release notes.
Next, I fully agree that it is very good to have isolated IEP describing a single major change. However, please note that a lot of IEPs start as research activities. During this time we do not know what correct solution is, how many major changes would be needed, how many components will be affected, and how many tickets will be filed. All of this can change drastically during IEP lifetime. Which looks perfectly fine for me - we know what to improve, but do not know yet how exactly. If it is about real implementation or planning you can always create umbrella ticket or so. Moreover, it is also OK for IEPs to span multiple releases, e.g. this is how we do this with TDE - huge change, multiple phases, multiple releases. About names - again, ideally they should be concrete and non ambiguous. But currently most of immediate product goals are around stabilization and performance. This is really where we are. So if I, for example, investigated a set of potential optimizations in area X, why can't I name it "Optimize X"? If someone else will find more optimizations in the same are while the first IEP is still active, he can join this IEP. If he find them after first IEP is completed, then he can name it "Optimize X part 2", while "Optimize X" will be in archive directory. So who really cares? I do not see how enforcing any strict rules could help us here. +1 for the rest. On Wed, Nov 7, 2018 at 7:36 PM Maxim Muzafarov <[email protected]> wrote: > Igniters, > > I think, our community have accumulated enough experience with the process > of > Ignite Enhancement Proposal (IEP) of introducing the major changes > into the Apache > Ignite. Now we have to take one step forward and make every major change > and\or > improvement clear not only for community developers but also for the > Apache Ignite > users too. > > Currently, I've seen two different strategies with creating IEPs: > - Single IEP per single major improvement; > - Single IEP per unit of functionality (group a few major improvements); > > Both of them have different advantages and disadvantages. > > > Let's remove the ambiguity and build a convenient working process. For > example, > we may consider the best practices used in other open-source projects [2] > [3]. > > I propose to (and also propose to update the corresponding wiki page [1] > and our > community processes): > - use to "Single IEP per single major improvement" approach; > - do not group the major enhancements into the single IEP; > - avoid inaccurate proposal names (e.g. optimization, improvement, > stabilization of etc.); > - for any public API changes create the IEP; > - add a `compatibility\mirgration` section to IEP Template; > - add a `public API changes` section to the IEP Template; > - link each major release note with the corresponding IEP page (users > will have a > better understanding of each feature). > > Igniters, please, share your thoughts. > > > > [1] > https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Enhancement+Proposal > [2] > https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals > [3] > https://cwiki.apache.org/confluence/display/SAMZA/Samza+Enhancement+Proposal >
