Put up a PR for discussion, I think it's helpful to see some code before we decide whether we want to try releasing storm-kafka-client independently or not https://github.com/apache/storm/pull/2653.
2018-04-28 18:49 GMT+02:00 Alexandre Vermeerbergen <avermeerber...@gmail.com >: > Hello Stig, > > +1 for your proposal (non-binding). > > No problem to drop Java 7 support from my perspective (next Java Long > Term Support is Java 11, Java 8 end of support is in Jan 2019, so who > cares about Java 7?) > > And kudos for your proposed item: "Update the storm-kafka-client docs > with a compatibility matrix showing > which versions of Storm the connector is compatible with" - I'm still > blocked with Kafka libs 0.10.2.0 for consuming our Kafka 1.0.1 Brokers > using Storm Kafka Client 1.2.0, I had very unstable behavior when > trying to use Kafka 1.0.0 libs for consuming our brokers (which were > at Kafka 1.0.0 version). I hope to find time to resume tests and to > provide feedbacks to clarify this. > > Best regards, > Alexandre Vermeerbergen > > > 2018-04-28 15:06 GMT+02:00 Stig Rohde Døssing <stigdoess...@gmail.com>: > > Sorry about the necro, but I think this is still relevant. > > > > Would everyone be okay with trying out the following for > storm-kafka-client > > (to start)? > > * Detach storm-kafka-client's release process from Storm's release > process, > > so we can release it separately, but keep the code in the Storm repo. We > > can probably do this by making some changes to the poms, e.g. by skipping > > release for storm-kafka-client unless a specific profile is set. > > * Make the code on the master branch the new storm-kafka-client baseline. > > This would drop support for Java 7. I doubt this will be an issue since > > Java 7 has been out of date for a while now, but if we're not sure about > > this we could open a poll on the mailing list to see if there's a need to > > stay on Java 7. > > * Update the storm-kafka-client docs with a compatibility matrix showing > > which versions of Storm the connector is compatible with. > > * Bump the storm-kafka-client version to e.g. 2.0.0(?) for the first > > release using this method. > > > > I'm not sure if we should create a branch just for storm-kafka-client, or > > if we can get away with just having development for it happen on master. > > > > As Taylor mentioned this should allow us to get some experience with > > releasing an external component separately, without making it too hard to > > roll back if we decide that releasing separately doesn't work well. > > > > If no one objects, I'll open an issue to make these changes. > > > > > > 2018-02-09 16:51 GMT+01:00 Xin Wang <data.xinw...@gmail.com>: > > > >> I agree with Jungtaek. The same case has happened again on RocketMQ.( > >> https://github.com/apache/storm/pull/2518) > >> The following is my advice. > >> > >> 1. Now storm has too many connectors, we can separate the first class > >> connectors from others. > >> The following is a possible list including all existing connectors. > >> > >> First class: > >> > >> - Kafka, > >> - HDFS, > >> - HBase, > >> - Hive, > >> - Redis, > >> - JDBC, > >> - JMS > >> > >> > >> > >> Others: > >> > >> - Solr, > >> - Cassandra, > >> - Elasticsearch, > >> - Event Hubs > >> - RocketMQ > >> - MongoDB > >> - OpenTSDB > >> - Kinesis > >> - Druid > >> - MQTT, > >> - PMML > >> > >> > >> 2. For first class connectors we can leave the code as it is, but > release > >> them independently; > >> for other connectors, I prefer to move them to Bahir like the way of > >> Spark/Flink. > >> We can have a communication with the Bahir community, and request to > create > >> a https://github.com/apache/bahir-storm.git repo. > >> > >> > >> > >> 2018-02-01 9:10 GMT+08:00 P. Taylor Goetz <ptgo...@gmail.com>: > >> > >> > I’d start with Storm-Kafka-client as an experiment, and if that goes > >> well, > >> > move all connectors to the same model. > >> > > >> > Some connectors are bound to a stable protocol (e.g. JMS, MQTT), some > are > >> > bound to frequently changing APIs (e.g. Apache Kafka, cassandra, ES, > >> etc.). > >> > The former tend to be stable in terms of usage patterns and use cases, > >> the > >> > latter case case not so much. For example, consider hdfs integration. > >> It’s > >> > changed a lot in response to different usage patterns. Kafka due to > >> > new/changing APIs. JMS hasn’t changed much at all since it’s tied to a > >> > stable API. > >> > > >> > There’s also the fact that a high percentage of connectors integrate > with > >> > the most stable Storm APIs (spout, bolt, trident). The volatile (using > >> the > >> > term loosely) parts of our API affect projects like Mesos and > >> streamparse, > >> > but not the connectors we sponsor. > >> > > >> > -Taylor > >> > > >> > > On Jan 31, 2018, at 7:07 PM, Roshan Naik <ros...@hortonworks.com> > >> wrote: > >> > > > >> > > I was thinking if the any connector is released more frequently, > their > >> > quality would be more mature and typically have lower impact on a > Storm > >> > release (compared to now) … if we decide to bundle them in Storm as > well. > >> > > -roshan > >> > > > >> > > > >> > > On 1/31/18, 4:02 PM, "P. Taylor Goetz" <ptgo...@gmail.com> wrote: > >> > > > >> > > I think we all agree that releasing connectors as part of a Storm > >> > release hinders the frequency of the release cycle for both Storm > proper, > >> > as well as connectors. > >> > > > >> > > If that’s the case, then the question is how to proceed. > >> > > > >> > > -Taylor > >> > > > >> > >> On Jan 31, 2018, at 6:46 PM, Roshan Naik <ros...@hortonworks.com> > >> > wrote: > >> > >> > >> > >> One thought is to … > >> > >> - do a frequent separate release > >> > >> - *and also* include the latest stuff along with each Storm > release. > >> > >> > >> > >> -roshan > >> > >> > >> > >> > >> > >> On 1/31/18, 10:43 AM, "generalbas....@gmail.com on behalf of Stig > >> > Rohde Døssing" <generalbas....@gmail.com on behalf of > >> > stigdoess...@gmail.com> wrote: > >> > >> > >> > >> Hugo, > >> > >> It's not my impression that anyone is complaining that > >> > storm-kafka-client > >> > >> has been exceptionally buggy, or that we haven't been fixing the > >> > issues as > >> > >> they crop up. The problem is that we're sitting on the fixes for > way > >> > longer > >> > >> than is reasonable, and even if we release Storm more often, > users > >> > have to > >> > >> go out of their way to know that they should really be using the > >> > latest > >> > >> storm-kafka-client rather than the one that ships with their > Storm > >> > >> installation, because the version number of storm-kafka-client > >> > happens to > >> > >> not mean anything regarding compatibility with Storm. > >> > >> > >> > >> Everyone, > >> > >> > >> > >> Most of what I've written here has already been said, but I've > >> already > >> > >> written it so... > >> > >> > >> > >> I really don't see the point in going through the effort of > >> separating > >> > >> connectors out to another repository if we're just going to make > the > >> > other > >> > >> repository the second class citizen connector graveyard. > >> > >> > >> > >> The point to separating storm-kafka-client out is so it can get a > >> > release > >> > >> cycle different from Storm, so we can avoid the situation we're > in > >> > now in > >> > >> the future. There's obviously a flaw in our process when we have > to > >> > choose > >> > >> between breaking semantic versioning and releasing broken > software. > >> > >> > >> > >> I agree that it would be good to release Storm a little more > often, > >> > but I > >> > >> don't think that fully addresses my concerns. Are we willing to > >> > increment > >> > >> Storm's major version number if a connector needs to break its > API > >> > (e.g. as > >> > >> I want to do in https://github.com/apache/storm/pull/2300)? > >> > >> > >> > >> I think a key observation is that Storm's core API is extremely > >> > stable. > >> > >> Storm and the connectors aren't usually tightly coupled in the > sense > >> > that > >> > >> e.g. version 1.0.2 of storm-kafka-client would only work with > Storm > >> > 1.0.2 > >> > >> and not 1.0.0, so in many cases there's no reason you wouldn't > use > >> the > >> > >> latest connector version instead of the one that happens to ship > >> with > >> > the > >> > >> version of Storm you're using. I think it would be attractive if > we > >> > could > >> > >> reduce the number of branches of connectors we need to maintain, > and > >> > >> instead keep a compatibility matrix between Storm and the > connector > >> > in each > >> > >> README, for the rare occasions when the Storm core API changes. > >> > >> > >> > >> +1 for trying out storm-kafka-client with its own release cycle > and > >> > >> branches/subrepo/whichever way we want to separate the code, but > >> > still part > >> > >> of the main Storm project JIRA and mailing list. Worst case we > merge > >> > it > >> > >> back in after a while. We may want to think about how to do that > >> > before we > >> > >> separate out, just so we don't release e.g. storm-kafka-client > 2.3.1 > >> > and > >> > >> then have to merge back to Storm which is still on 2.0.0. > >> > >> > >> > >> 2018-01-31 3:36 GMT+01:00 Jungtaek Lim <kabh...@gmail.com>: > >> > >> > >> > >>> Agreed for this topic: this is not related to current release > >> > candidate and > >> > >>> verifying release candidate is higher priority. > >> > >>> For me I didn't start verifying 1.1.2 / 1.0.6 RC2 because the > other > >> > topic I > >> > >>> initiated could affect the current release. I'll post a short > notice > >> in > >> > >>> that discussion thread. > >> > >>> > >> > >>> -Jungtaek Lim (HeartSaVioR) > >> > >>> > >> > >>> 2018년 1월 31일 (수) 오전 10:58, P. Taylor Goetz <ptgo...@gmail.com>님이 > 작성: > >> > >>> > >> > >>>> Hit send on that too soon... > >> > >>>> > >> > >>>> This is an important discussion topic, but has no effect on the > >> > current > >> > >>>> RCs. Id recommend focusing on the current releases and come back > to > >> > this > >> > >>>> after getting releases out. > >> > >>>> > >> > >>>> -Taylor > >> > >>>> > >> > >>>>> On Jan 30, 2018, at 8:51 PM, P. Taylor Goetz <ptgo...@gmail.com > > > >> > >>> wrote: > >> > >>>>> > >> > >>>>> Also, in the interest of getting releases out, we have 3 open RC > >> > cycles > >> > >>>> in flight. > >> > >>>>> > >> > >>>>> Discussion energy might be better focused on that. > >> > >>>>> > >> > >>>>> -Taylor > >> > >>>>> > >> > >>>>>> On Jan 30, 2018, at 7:52 PM, P. Taylor Goetz < > ptgo...@gmail.com> > >> > >>> wrote: > >> > >>>>>> > >> > >>>>>> > >> > >>>>>> > >> > >>>>>>> On Jan 30, 2018, at 7:31 PM, Harsha <st...@harsha.io> wrote: > >> > >>>>>>> > >> > >>>>>>> Hi, > >> > >>>>>>> In general connectors are independent of Storm run-time > >> for > >> > >>>> most parts. I.e if the APIs are not changed (storm-core or > trident > >> > >>> haven't > >> > >>>> changed in years except the package re-name). You can take the > >> latest > >> > >>>> connector and run in storm 1.0 or higher. So the users doesn't > need > >> to > >> > >>>> upgrade their storm cluster just to get a latest connector > upgrade. > >> > Which > >> > >>>> they might be doing it but by making the release separate and > >> stating > >> > the > >> > >>>> minimum supported storm version for the connectors will help the > >> > users. > >> > >>>>>>> This makes it easier for the connectors to be released > >> > independently > >> > >>>> of the core/run-time and makes it easy for them to be fixed and > >> > released > >> > >>>> more often. But moving them to Bahir or other external project > will > >> > make > >> > >>> it > >> > >>>> detached from Storm itself that it might not see any > co-ordination > >> as > >> > >>>> reviewers from storm will need to be aware of an external > project. > >> > >>>>>>> My proposal would be > >> > >>>>>>> 1. Can we create a sub-project in git under Storm so we can > move > >> > the > >> > >>>> connectors there and everything else related Storm applies there. > >> > >>>>>>> 2. Can we keep maintaining storm connectors within same repo > but > >> > >>>> different release module for it . > >> > >>>>>> > >> > >>>>>> +1 That’s exactly my point. Just jettisoning connectors to > Bahir > >> > >>>> without commitments from the Storm community would be a mistake. > >> > >>>>>> > >> > >>>>>> Releasing connectors independently can be handled easily at the > >> > Maven > >> > >>>> level. No need for a separate repo initiaially. > >> > >>>>>> > >> > >>>>>> > >> > >>>>>>> > >> > >>>>>>> This is a separate topic but can improve the release > timelines if > >> > we > >> > >>>> have multiple release managers that are handling the maint > release > >> and > >> > >>> also > >> > >>>> main release versions. Its good to have rotation of release > managers > >> > from > >> > >>>> PMC so that everyone will understand the process and can spread > the > >> > >>>> responsibilities. There are threads started before but don't > think > >> > they > >> > >>> are > >> > >>>> addressed or any action item is taken. We should start another > >> thread > >> > to > >> > >>>> discuss this process as well. > >> > >>>>>> > >> > >>>>>> Breaking up external modules into separately released versions > >> would > >> > >>> be > >> > >>>> a great way to indoctrinate those new to the license grooming and > >> > release > >> > >>>> process. Everyone could participate. > >> > >>>>>> > >> > >>>>>> > >> > >>>>>>> > >> > >>>>>>> Thanks, > >> > >>>>>>> Harsha > >> > >>>>>> > >> > >>>>>> -Taylor > >> > >>>>>> > >> > >>>>>>> > >> > >>>>>>>> On Tue, Jan 30, 2018, at 9:49 AM, Hugo Da Cruz Louro wrote: > >> > >>>>>>>> I think that the bahir approach makes sense for connectors > that > >> > >>> don’t > >> > >>>>>>>> fall into the "first class support” category. I am in favor > of > >> > >>> moving > >> > >>>>>>>> such lower adoption connectors and have the interested > >> communities > >> > >>>>>>>> support them with the most suitable release cycle. Connectors > >> that > >> > >>> are > >> > >>>>>>>> idle, such as some examples that Jungtaek gave, we should > >> consider > >> > >>>>>>>> removing them altogether, especially if they are so outdated > >> that > >> > >>> they > >> > >>>>>>>> may not even work. > >> > >>>>>>>> > >> > >>>>>>>> Mainstream connectors such as storm-kafka-client should be > kept > >> in > >> > >>> the > >> > >>>>>>>> Storm repo. For example, Flink keeps > flink-connector-kafka-0.x > >> in > >> > >>> the > >> > >>>>>>>> Flink repo. > >> > >>>>>>>> > >> > >>>>>>>> I am in agreement with Jungtaek when he says: "fixing > critical > >> > bugs > >> > >>> in > >> > >>>>>>>> storm-kafka-client should trigger release, instead of waiting > >> for > >> > >>>> Storm > >> > >>>>>>>> core to have some fixes to be worth to release”. Storm’s > release > >> > >>>> cadence > >> > >>>>>>>> is currently not very high and one can argue that Storm > entirely > >> > >>> could > >> > >>>>>>>> benefit from more frequent releases. If it is sto > >> rm-kafka-client > >> > >>>>>>>> triggering those releases, so be it. Moving forward I do not > >> > expect > >> > >>>> the > >> > >>>>>>>> storm-kafka-client connector to be subject to so many changes > >> that > >> > >>> it > >> > >>>>>>>> would warrant its own release cycle. > >> > >>>>>>>> > >> > >>>>>>>> I also would like to highlight that although > storm-kafka-client > >> > has > >> > >>>> been > >> > >>>>>>>> the center of this discussion, as it was mentioned in this > >> > >>>>>>>> thread<https://goo.gl/VY7QTG>, storm-kafka-client has had a > >> much > >> > >>> less > >> > >>>>>>>> rocky road to stability compared to for example storm-kafka. > >> > >>> Therefore > >> > >>>>>>>> it’s worth evaluating if the challenges that we have faced > with > >> > >>> storm- > >> > >>>>>>>> kafka-client have been out of norm for such an important and > >> > complex > >> > >>>>>>>> feature, and if they warrant significant changes in how we do > >> > >>> things. > >> > >>>>>>>> > >> > >>>>>>>> Thanks, > >> > >>>>>>>> Hugo > >> > >>>>>>>> > >> > >>>>>>>> On Jan 29, 2018, at 9:18 PM, Jungtaek Lim > >> > >>>>>>>> <kabh...@gmail.com<mailto:kabh...@gmail.com>> wrote: > >> > >>>>>>>> > >> > >>>>>>>> Let me add a proof of my opinion: major patch of > storm-eventhubs > >> > >>>> hasn't > >> > >>>>>>>> been getting even a comment over 4 months. > >> > >>>>>>>> https://github.com/apache/storm/pull/2322 > >> > >>>>>>>> > >> > >>>>>>>> I'd rather want to discuss regarding discontinue supporting > >> > >>>> officially if > >> > >>>>>>>> we no longer interest of, or we don't have resource to > support, > >> or > >> > >>> any > >> > >>>>>>>> valid reasons. If we agree on discontinue supporting > officially, > >> > we > >> > >>>> can > >> > >>>>>>>> move out to other repo. and let it self maintained. It may be > >> able > >> > >>> to > >> > >>>> get > >> > >>>>>>>> attention and have enough contributors so that we feel > better to > >> > get > >> > >>>> to > >> > >>>>>>>> Storm core Repository again, or it can be silently > forgotten. It > >> > >>>> shouldn't > >> > >>>>>>>> affect Storm core repository at any case. > >> > >>>>>>>> > >> > >>>>>>>> 2018년 1월 30일 (화) 오후 2:03, Jungtaek Lim <kabh...@gmail.com>님이 > >> 작성: > >> > >>>>>>>> > >> > >>>>>>>> If we worry about breaking somethings along with our > >> > >>>>>>>> users/consumers/distributors, picking one of less > used/updated > >> > >>>> connector as > >> > >>>>>>>> experiment makes more sense to me. It's OK if we want to pick > >> one > >> > of > >> > >>>> most > >> > >>>>>>>> active and widely used connector intentionally to accelerate > >> > >>>> experiment. > >> > >>>>>>>> > >> > >>>>>>>> Decoupling connectors and moving to other repo. like Bahir > will > >> > make > >> > >>>> it > >> > >>>>>>>> clear who are having interest of which connectors. > >> storm-eventhubs > >> > >>> for > >> > >>>>>>>> example, major code contributions were done from MS > developers. > >> > Now > >> > >>>> they > >> > >>>>>>>> are gone, and I don't know even storm-eventhubs are > compatible > >> > with > >> > >>>> recent > >> > >>>>>>>> Azure Eventhub. That's just a one of them. I've seen many > >> > connectors > >> > >>>> in > >> > >>>>>>>> same, or similar, or possible (say truck number 1) situation. > >> > >>>>>>>> > >> > >>>>>>>> -Jungtaek Lim (HeartSaVioR) > >> > >>>>>>>> > >> > >>>>>>>> 2018년 1월 30일 (화) 오후 1:30, P. Taylor Goetz <ptgo...@gmail.com > >님이 > >> > 작성: > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> On Jan 29, 2018, at 8:03 PM, Jungtaek Lim <kabh...@gmail.com > > > >> > >>> wrote: > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> - Do we ensure they're all maintained? > >> > >>>>>>>> -- Did we exclude inactive committers/PMCs for connector's > >> > committer > >> > >>>>>>>> > >> > >>>>>>>> sponsors, and do they have enough committer sponsors after > that? > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> Good point. We’ve had some sponsors go silent recently. Maybe > >> ping > >> > >>>>>>>> sponsors and ask if they wish to maintain sponsorship? > >> > >>>>>>>> > >> > >>>>>>>> As a sponsor for a number of connectors, I’ll check on the > ones > >> > I’ve > >> > >>>>>>>> sponsored. > >> > >>>>>>>> > >> > >>>>>>>> - Do they all worth to keep maintaining in Storm main > >> repository? > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> Again, that’s a question of whether there is user/dev > interest. > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> -- Should we trigger release if we find and resolve > >> > critical/blocker > >> > >>>> issue > >> > >>>>>>>> from them? If not, why we allow to leave the thing which is > in > >> > main > >> > >>>>>>>> repository as inconsistent state? > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> Some are tied to fairly well established protocols, some > target > >> > >>> really > >> > >>>>>>>> volatile APIs. Bug reports and mailing list activity may not > be > >> a > >> > >>> good > >> > >>>>>>>> status indicator. > >> > >>>>>>>> > >> > >>>>>>>> Storm’s Kafka integration was the initial model for the > >> “batteries > >> > >>>>>>>> included” impetus behind `external`. If we want to evolve how > >> that > >> > >>>> works, > >> > >>>>>>>> why not start there, see what works/doesn’t work, and adapt. > >> > >>>>>>>> > >> > >>>>>>>> I don’t want to shock our users/consumers/distributors. > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> -Taylor > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>>>>>> > >> > >>>> > >> > >>> > >> > >> > >> > >> > >> > > > >> > > > >> > > > >> > > >> > >> > >> > >> -- > >> Thanks, > >> Xin > >> >