Return-Path: X-Original-To: apmail-avro-dev-archive@www.apache.org Delivered-To: apmail-avro-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 288491815A for ; Mon, 16 Nov 2015 20:22:23 +0000 (UTC) Received: (qmail 59321 invoked by uid 500); 16 Nov 2015 20:22:18 -0000 Delivered-To: apmail-avro-dev-archive@avro.apache.org Received: (qmail 59256 invoked by uid 500); 16 Nov 2015 20:22:17 -0000 Mailing-List: contact dev-help@avro.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@avro.apache.org Delivered-To: mailing list dev@avro.apache.org Received: (qmail 59241 invoked by uid 99); 16 Nov 2015 20:22:17 -0000 Received: from Unknown (HELO spamd1-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 16 Nov 2015 20:22:17 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd1-us-west.apache.org (ASF Mail Server at spamd1-us-west.apache.org) with ESMTP id 18DC3C6AD6 for ; Mon, 16 Nov 2015 20:22:17 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd1-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0 X-Spam-Level: X-Spam-Status: No, score=0 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd1-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=cloudera_com.20150623.gappssmtp.com Received: from mx1-us-west.apache.org ([10.40.0.8]) by localhost (spamd1-us-west.apache.org [10.40.0.7]) (amavisd-new, port 10024) with ESMTP id fKgEEDM31DU0 for ; Mon, 16 Nov 2015 20:22:05 +0000 (UTC) Received: from mail-pa0-f51.google.com (mail-pa0-f51.google.com [209.85.220.51]) by mx1-us-west.apache.org (ASF Mail Server at mx1-us-west.apache.org) with ESMTPS id A7B3920751 for ; Mon, 16 Nov 2015 20:22:05 +0000 (UTC) Received: by pacej9 with SMTP id ej9so78662374pac.2 for ; Mon, 16 Nov 2015 12:22:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cloudera_com.20150623.gappssmtp.com; s=20150623; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-type:content-transfer-encoding; bh=fs145R5x4RbBmgUUP9jr2kvB0KHV9TuuF/1NumjRwTg=; b=101iqXwBPLWnInk7i8hDDy5p84CmNVnsuMO1oau4rNl87bKWc65Hrr23wlqB0bnnvU DFoW3olvhn34Gp3Ni4jWf/t/7mMp7YUlWWEQHNDvbI5BXWGN3gH2RpLO1ELKeG6Vluf2 AVQ7ze0WJ41aHDUbkhPCkFdQPINdgZqwZtqwVqpbNVBxIcvjrf+AXnVFCYvrMVAkrWu+ TQ3v/PVjPh8i6CEdM3jRkDAtsNQs9BfsFOebknqL3h4Nk6j9LXXo4REKp07UkuEWSEpR I8gk1nxdySrUMtv6fAyKPxgMq1EFUvVIg5IC7kriWooopZEPVeqzH7xvMLOxmSl3OSwv pNKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-type :content-transfer-encoding; bh=fs145R5x4RbBmgUUP9jr2kvB0KHV9TuuF/1NumjRwTg=; b=TDIZLl1lLU8gtuIPqFY2mYma+xKTOlC9CnYDw72HEWk8l7jNKMRdDQmO3QiXMEF1rp dqITHZ1MR1x2LpsKR0jMrBq89SIp8BKeBxTJrZQmqJ5UtoiB5So6zVmIAe6CSWY6RF6X qnsLjOlIBbOsLsD+A/M+lhcz2tpwbrY8tnnmmmZW3Sn4aCzC1Z2DZIuKnOQmdChSspS5 3G5cK5n1zuMm6DAWUrsz31w5NRyKmeK+JTrgrZih5UBOuRE+YuQRp+WD6K0Ll+dO2+k1 2EAS0ublnU/ZrXuFZ94iyn9fz+YT6pf5Q5NF/3TknB7c/TpfIM76WTZYZsceoFrYyNjK g6pw== X-Gm-Message-State: ALoCoQn+JKyIgSx0MM7HKF4CFLY8IvVHr5v8eaZWswzPA09aE9wx5035DQFnsXL0NFHCQCrQEbwv X-Received: by 10.68.235.3 with SMTP id ui3mr56236676pbc.168.1447705325364; Mon, 16 Nov 2015 12:22:05 -0800 (PST) Received: from [172.16.1.9] ([74.217.76.101]) by smtp.googlemail.com with ESMTPSA id nu5sm38185311pbb.65.2015.11.16.12.22.03 for (version=TLSv1/SSLv3 cipher=OTHER); Mon, 16 Nov 2015 12:22:04 -0800 (PST) Subject: Re: [DISCUSS] Release and code management To: dev@avro.apache.org References: <563254F7.30304@apache.org> <56326347.4030604@cloudera.com> <563265E4.6050107@cloudera.com> <56339CDA.5060200@cloudera.com> <563B954C.2050503@cloudera.com> <563BA3AD.3010403@cloudera.com> <5644CD9D.8090107@cloudera.com> <985793206.1965493.1447690214503.JavaMail.yahoo@mail.yahoo.com> From: Ryan Blue Message-ID: <564A3AEB.8050200@cloudera.com> Date: Mon, 16 Nov 2015 12:22:03 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: <985793206.1965493.1447690214503.JavaMail.yahoo@mail.yahoo.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 11/16/2015 08:10 AM, Sam Groth wrote: > So I have developed for a similar scenario where we had APIs in 3 different languages that needed to be kept in sync. The releases were split, and we only had some high level tests to verify compatibility and therefore had to be very careful what changes we made to avoid failures across many different use cases of our APIs. There were a few people who were required to review any changes to this API. I feel that in a project with as many implementations as Avro, it will be difficult to have this same level of review. If it's possible to write some linked tests for most of the implementations like Niels suggested, it should be ok to split the releases. We would still have to pay close attention to changes in these test cases. > > Sam I agree with the need to validate that files are to spec, but we currently have that problem regardless of whether we release components as a group or individually. Right now we don't do much cross-language testing at all so I think this should be a goal (an important one!), not a requirement for changing our releases. > On Saturday, November 14, 2015 7:54 AM, Niels Basjes wrote: > > > Hi, > > First of all a +1 from me to move to git. Sounds like we have consensus around moving to git, so at least we can get that started. > Regarding the "how many parts and the release cycle"; > > In general I'm in the "release often" camp. > Yet I understand the needless confusion if a certain language has not > changed. > > How about this idea: > > We create a separate project (avro-spec) with the specification/testcases > and such that guard the language specification. All language specific > implementations must reference this (perhaps by using the git feature of a > "linked submodule") and run the tests during the language specific deploy. > The version of this module therefor the version of the Avro format > specification. This is similar to what we do in Parquet: we have a parquet-format project that has meaningful versions for file compatibility. The version for this dependency doesn't necessarily determine the version of a file because the API can choose what underlying version it uses. > I think it would be good if these modules use a version that essentially is > - > > This way the libraries can have a separate release cycle and still clearly > indicate the supported Avro specifcation. I think this makes sense. Right now, while we have only one version of the file format, do we need to include the format version in all version numbers? We could put off that step when we have more than one format version to worry about. rb -- Ryan Blue Software Engineer Cloudera, Inc.