Doug Cutting wrote:
Patrick Hunt wrote:
1) I think we should have a
"contrib/recipes/{java/{main,test}/org/apache/zookeeper/... ,c/,...}"
hierarchy for contributions that implement recipes, including any
helper code
Are folks expected to be able to use this code as-is? Are these, in
effect, libraries? If so, you might make each a separate contrib
module, so they can be packaged as separate jars and folks can use them
ala carte.
When you say "module" do you mean a contrib directory as a sibling to
zookeeper/trunk in SVN?
http://svn.apache.org/repos/asf/hadoop/zookeeper/
my original intent was to have it as zookeeper/trunk/src/contrib/...
where this directory will have not only recipes but also other
contributions.
2) We should first document recipes on the wiki, then implement them
in the code
http://wiki.apache.org/hadoop/ZooKeeper/ZooKeeperRecipes
The code should fully document the api/implementation, and refer to
wiki page for protocol specifics.
The wiki should not be used long-term for code documentation. It's a
good documentation scratchpad, but for code that's released, the
documentation should be versioned and released as well, and thus should
live in subversion.
Agree, we should move the recipes from wiki to forrest.
3) What should we do relative to ZK releases. Are recipes included in
a release? Will bugs in recipes hold up a release?
My initial thought is that contrib is available through svn, but not
included in the release. If users want to access/use this code they
will be required to checkout/build themselves. (at least initially)
Won't recipes change as ZK API's change? If so, then recipes should be
versioned with releases. And if non-committers are expected to download
recipes, then, legally, they should be released through an official
release process. Stuff in svn isn't fully covered by the Apache
license. Apache only vouches for stuff that's gone through an official
release process. Subversion is for internal exchange by Apache of
works-in-progress, not for end users.
Hrm. :-)
What happens in this case then, you include them as part of ZK release
or you have a separate "contrib" release? It seems to me that this could
have a ripple effect - where contrib is causing regular releases to be
held up.
ZOOKEEPER-25 adds FUSE support, seems like we are going to have similar
issues to face there. Is this a separate "release" from recipes or are
all "contrib" considered to be a single release? What about when we add
REST & scripting support thru contrib....
Doug, is there any documentation that I could look at at Apache that
would help? Guidelines/bestpractice for "contrib"?
Patrick