Return-Path: Delivered-To: apmail-hadoop-zookeeper-user-archive@minotaur.apache.org Received: (qmail 80463 invoked from network); 4 Feb 2009 19:25:01 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 4 Feb 2009 19:25:01 -0000 Received: (qmail 58448 invoked by uid 500); 4 Feb 2009 19:25:00 -0000 Delivered-To: apmail-hadoop-zookeeper-user-archive@hadoop.apache.org Received: (qmail 58426 invoked by uid 500); 4 Feb 2009 19:25:00 -0000 Mailing-List: contact zookeeper-user-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: zookeeper-user@hadoop.apache.org Delivered-To: mailing list zookeeper-user@hadoop.apache.org Received: (qmail 58415 invoked by uid 99); 4 Feb 2009 19:25:00 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Feb 2009 11:25:00 -0800 X-ASF-Spam-Status: No, hits=1.2 required=10.0 tests=SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [64.59.134.9] (HELO idcmail-mo2no.shaw.ca) (64.59.134.9) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Feb 2009 19:24:53 +0000 Received: from pd7ml1no-ssvc.prod.shaw.ca ([10.0.153.161]) by pd5mo1no-svcs.prod.shaw.ca with ESMTP; 04 Feb 2009 12:24:31 -0700 X-Cloudmark-SP-Filtered: true X-Cloudmark-SP-Result: v=1.0 c=0 a=mV9VRH-2AAAA:8 a=nYuX8yMWxhsgoUhdKKMA:9 a=-YgJlS4sfTNI4I44wVIrjFNnl7wA:4 Received: from s010600119555dbca.gv.shawcable.net (HELO [192.168.0.103]) ([24.69.66.226]) by pd7ml1no-dmz.prod.shaw.ca with ESMTP; 04 Feb 2009 12:24:31 -0700 Message-ID: <4989EC0B.9020400@pearsoncmg.com> Date: Wed, 04 Feb 2009 11:27:07 -0800 From: Chris Darroch Organization: Pearson CMG/CTG User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.19) Gecko/20081226 SeaMonkey/1.1.14 MIME-Version: 1.0 To: zookeeper-user@hadoop.apache.org Subject: ZooKeeper 3.1 and C API/ABI X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org Hi -- I notice that 3.1.0 is on its way and it includes ZOOKEEPER-255 which adds the Stat structure as a parameter to the zoo_set() C call. This is a valuable change and I don't want to hold it up. However, I thought I should point out that this kind of change breaks the API and ABI. For major Apache C projects like the APR, such breakage is allowed only with a major version number change: http://apr.apache.org/versioning.html#source Following such guidelines, I suppose, the old zoo_*set() functions would remain as-is until 4.0.0, and parallel zoo_*set2() or zoo_stat_*set() functions would add the new functionality. Now, fair do's, ZooKeeper may not care as much as APR or httpd, since it's mostly a Java project. At a minimum, though, it would be excellent if there was compile-time versioning information available so that external projects could check and, at a bare minimum, fail to compile if the API/ABI has changed. APR has some useful guidelines making compile-time constants (e.g., ZOO_MAJOR_VERSION) available: http://apr.apache.org/versioning.html#vsncheck Speaking personally, one really nice aspect of working with APR for me is the parallel installation framework. Again, this might be overkill for ZK, but I'll just point it out as well: http://apr.apache.org/versioning.html#parallel Chris. -- GPG Key ID: 366A375B GPG Key Fingerprint: 485E 5041 17E1 E2BB C263 E4DE C8E3 FA36 366A 375B