Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id EFB54200C4C for ; Tue, 21 Mar 2017 02:40:59 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id EE370160B8F; Tue, 21 Mar 2017 01:40:59 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 1B9BC160B76 for ; Tue, 21 Mar 2017 02:40:58 +0100 (CET) Received: (qmail 77903 invoked by uid 500); 21 Mar 2017 01:40:58 -0000 Mailing-List: contact dev-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list dev@hbase.apache.org Received: (qmail 77891 invoked by uid 99); 21 Mar 2017 01:40:57 -0000 Received: from pnap-us-west-generic-nat.apache.org (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Mar 2017 01:40:57 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id C8C7AC0B7C for ; Tue, 21 Mar 2017 01:40:56 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 2.13 X-Spam-Level: ** X-Spam-Status: No, score=2.13 tagged_above=-999 required=6.31 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, HTML_MESSAGE=2, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Authentication-Results: spamd4-us-west.apache.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com Received: from mx1-lw-us.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id 3SKaK3fQ9xYH for ; Tue, 21 Mar 2017 01:40:54 +0000 (UTC) Received: from mail-vk0-f42.google.com (mail-vk0-f42.google.com [209.85.213.42]) by mx1-lw-us.apache.org (ASF Mail Server at mx1-lw-us.apache.org) with ESMTPS id 73D715F238 for ; Tue, 21 Mar 2017 01:40:54 +0000 (UTC) Received: by mail-vk0-f42.google.com with SMTP id x75so80357965vke.2 for ; Mon, 20 Mar 2017 18:40:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=/ZY0EJPsV0b4UtBxbjdt1AZ8ux1/YPHXt6yNJ93XOO0=; b=Rha8hjE1trwCESTuoZ0MbCEpTjGvOS8RIeGXIncPWoVgm0WW0t8sfODSDfIKJhIho7 0XNzmw/OrIS6WtX8zUrybRq3zx/JRBVUPG9/e4Dyhp2D4q3a3U96xxp7PI0rWSxahmnd nQat179JrqhGsCVLehj0LFEfHtBSiQIVVhC0hCfkRgBX3eMiEAPlIosTmkmnSyaeTe3v W6uSNObNGyxlrp+9qfCYQGpqvBmsGkdx78t0Tk4E8LaiJeuopz4qLlINSJ5w9VpADD6U fUmAnw3HJ6jpNKFlaCBjd041LbcM8Rxiwg66Sy2ogqLaP/s+IIH8nAqWsW/uaabUvaWW kUYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=/ZY0EJPsV0b4UtBxbjdt1AZ8ux1/YPHXt6yNJ93XOO0=; b=rMmPv0VAbp+pGuZqlp1XLe0R6O7qqg3GsK8H0EcH+bQ19x4np3HE3qGGQhu0IiQJra YCFQB8ZVyL5oB3nv2Ro6ZG0p10chCbsdYEt30cpTfq5Cmxq3E8lPPm66/ef7WRR2eXFv mU7hkVWD3hErtPnRIKZ3Aw2Od5ttQpRYink1hVoOWev69tIMXcDNOI15wCX7S4KKspnF SzwDPHIKKelrPA6XctfH/DHL3X4+lkR37e5qLr7NiYZMWkXtnLK16unjM8TAGhExfNQQ aUX0b1GB3pkIooPxrEvhsgyuqYXUaTXKUJFYsuD9JEvVoHPJQE7093iRZcvMVIrENes2 Xljg== X-Gm-Message-State: AFeK/H36iu4vexeiAR0xWvlfbaePt1wEHEOPZlKmks+jlpwL1TXMp2uC3OFfWSppwr0zV6CprWn7J0pFss6SCQ== X-Received: by 10.176.83.75 with SMTP id y11mr12174033uay.94.1490056578244; Mon, 20 Mar 2017 17:36:18 -0700 (PDT) MIME-Version: 1.0 Received: by 10.159.40.193 with HTTP; Mon, 20 Mar 2017 17:36:17 -0700 (PDT) In-Reply-To: References: From: =?UTF-8?B?5byg6ZOOKER1byBaaGFuZyk=?= Date: Tue, 21 Mar 2017 08:36:17 +0800 Message-ID: Subject: Re: About the InterfaceStability annotation for public API To: dev@hbase.apache.org Content-Type: multipart/alternative; boundary=94eb2c191e9c0aa7f6054b32d5d1 archived-at: Tue, 21 Mar 2017 01:41:00 -0000 --94eb2c191e9c0aa7f6054b32d5d1 Content-Type: text/plain; charset=UTF-8 bq. If someone is comfortable with the risk of an API that can change in minor or maintenance releases, what's gained by calling it IA.Public + IS.Evolving or Unstable rather than just labeling it IA.Private or IA.LimitedPrivate? Indeed. We can not stop users use IA.Private classes if they are declared as public class. The users take the risk by themselves. Anyway, seems we all agree that at least we need to update our documentation. So let me open a issue first. We can continue the discussion there. Thanks. 2017-03-21 4:27 GMT+08:00 Jerry He : > Just to bring up an alternative idea. > The Spark InterfaceStability explicitly spells out what can or can not > change from major or minor releases. (I was onto it recently). > See [1] > > HBase is probably a more stable project that does not have to do the same. > But it is also possible that we may have new features (i.e. AsyncClient, > Backup, etc) that we want to evolve within a major release. > We should see if we want to provide such flexibility via the > InterfaceStability annotations and document it explicitly if yes. > > Thanks, > > Jerry > > > 1. https://github.com/apache/spark/blob/master/common/tags/ > src/main/java/org/apache/spark/annotation/InterfaceStability.java > > > > > On Mon, Mar 20, 2017 at 10:46 AM, Yu Li wrote: > > > +1 on removing InterfaceStability annotation for IA.Public. Even more, is > > it possible to forbid using these two annotations together in Yetus at > > code-level if we are migrating to it (as mentioned in another thread)? > > > > For IA.Private or IA.LimitedPrivate, personally I think > InterfaceStability > > is still a useful annotation. > > > > Best Regards, > > Yu > > > > On 20 March 2017 at 22:07, Sean Busbey wrote: > > > > > I really dislike having InterfaceStability markings on IA.Public > > > interfaces, because to me it reads like us essentially saying we > > > didn't invest enough time in deciding what something should look like > > > before declaring it safe for downstream folks. If someone is > > > comfortable with the risk of an API that can change in minor or > > > maintenance releases, what's gained by calling it IA.Public + > > > IS.Evolving or Unstable rather than just labeling it IA.Private or > > > IA.LimitedPrivate? > > > > > > So I'd be +1 on updating our docs to state that InterfaceStability is > > > just for IA.LimitedPrivate or even discontinuing our use of it > > > entirely. > > > > > > On Sun, Mar 19, 2017 at 11:28 PM, Duo Zhang > wrote: > > > > In the compatibility section of our refguide, the compatibility for > > patch > > > > version, minor version and major version is not related > > > > to InterfaceStability annotation. The only place we mention it is for > > > > Server-Side Limited API compatibility. > > > > > > > > And in the Developer Guidelines section, we say this > > > > @InterfaceStability.Evolving > > > > > > > > Public packages marked as evolving may be changed, but it is > > discouraged. > > > > I think this is a little confusing, esepecially that the comment > > > > of InterfaceStability also mentions the compatibility for patch, > minor > > > and > > > > major release. > > > > > > > > For me, I think only InterfaceStability.Unstable is useful for public > > > API. > > > > It means the API is still experimental and will not respect the > > > > compatibility rule. > > > > > > > > So here I suggest we just remove the InterfaceStability annoation for > > the > > > > classes which are marked as InterfaceAudience.Public, and change the > > > > comment of InterfaceStability and also the refguide to be more > > specific. > > > > > > > > Suggestions are welcomed. > > > > > > > > Thanks. > > > > > > --94eb2c191e9c0aa7f6054b32d5d1--