Hello Tim, Thank you for expressing interest in contributing this code! We have a wiki page that describes the contribution process [1]. We track all work using JIRA, so the first step would be to create a JIRA describing what you are proposing to contribute.
I think we'll need to decide how your work relates to the existing native CLI already in the ZooKeeper codebase [2]. Would you consider adapting your work onto that existing CLI, or do you think it would have to be essentially a rewrite? If the latter, then we'd probably need to give some consideration to the switch to C++. The current native CLI is C. I don't think there is existing precedent for C++ in ZooKeeper, except for contrib modules. I think we'll want to avoid a situation where there are multiple native CLIs shipping in ZooKeeper, in addition to the Java one. The first step is definitely a JIRA though. Technical details like this would get discussed there, and the JIRA would serve as a record of the community's decisions. [1] https://wiki.apache.org/hadoop/ZooKeeper/HowToContribute [2] https://github.com/apache/zookeeper/blob/trunk/src/c/src/cli.c --Chris Nauroth On 12/8/15, 6:58 PM, "Crowder Tim" <[email protected]> wrote: >Tangentially related question... > >I have a C++ cli for zookeeper modeled after unix shell. >It has ls (with lots of options including recursive, long, and ACL >listing), >cp, touch, cat, etc. And command/filename completion and history. > >I've secured permission from work (Yahoo) to contribute it. >How do I go about submitting it? > >Thanks! > >.timrc > >-------------------------------------------- >On Tue, 12/8/15, Chris Nauroth <[email protected]> wrote: > > Subject: Re: Adding a new API to ZooKeeper 3.4? >(ZOOKEEPER-1962/ZOOKEEPER-2260) > To: "[email protected]" <[email protected]> > Date: Tuesday, December 8, 2015, 4:24 PM > > Thanks for the response, > Patrick. Considering that, it sounds like > recursive ls is a non-starter for 3.4, but we > can focus on shipping it in > 3.5. I'll > focus on that in the code reviews. > > --Chris Nauroth > > > > > On > 12/8/15, 4:12 PM, "Patrick Hunt" <[email protected]> > wrote: > > >On Tue, Dec 8, > 2015 at 3:01 PM, Chris Nauroth <[email protected]> > >wrote: > >> Do we have > any kind of policy regarding adding new public APIs in > the > >>3.4 stable maintenance > release? Adding a new API won't harm > >>backwards-compatibility, but it does > mean that an upgraded client can't > >>use the new API until the server side > gets upgraded too. I'd expect > >>adding a new API is overall OK, subject > to standard risk assessment for > >>any > patch going into a stable maintenance line. > >> > > > >Hi Chris. It's always been the case > that we only allow fixes in fix > >releases. Things like API changes are > always introduced in minor > >releases, and > they need to be backward compatible. Major releases are > >for cases where we need to break b/w compat > (which hasn't happened > >since we > moved to Apache). > > > >Patrick > > > >> ZOOKEEPER-1962 proposes enhancing the > CLI to support recursively > >>listing > children. However, running this on a large tree would > risk > >>hitting the jute.maxBuffer > threshold, consuming a lot of memory, and > >>consuming a thread for a long time to > process the request. I'd like to > >>propose that ZOOKEEPER-2260 (paginated > getChildren) be a pre-requisite > >>for > the CLI enhancement, so that we can avoid these problems. > However, > >>I'd also like us to try > to ship the feature in a future 3.4 release, > >>because it's very useful for > operators. This is the main motivation for > >>my policy question about adding new > APIs in a stable line. > >> > >> --Chris Nauroth > > >
